181a07b4aSKevin Cernekee* Broadcom cable/DSL/settop platforms 281a07b4aSKevin Cernekee 381a07b4aSKevin CernekeeRequired properties: 481a07b4aSKevin Cernekee 54bac0e2aSÁlvaro Fernández Rojas- compatible: "brcm,bcm3368", "brcm,bcm3384", "brcm,bcm33843" 681a07b4aSKevin Cernekee "brcm,bcm3384-viper", "brcm,bcm33843-viper" 78e385a66SÁlvaro Fernández Rojas "brcm,bcm6328", "brcm,bcm6358", "brcm,bcm6362", "brcm,bcm6368", 83652acd2SÁlvaro Fernández Rojas "brcm,bcm63168", "brcm,bcm63268", 981a07b4aSKevin Cernekee "brcm,bcm7125", "brcm,bcm7346", "brcm,bcm7358", "brcm,bcm7360", 1081a07b4aSKevin Cernekee "brcm,bcm7362", "brcm,bcm7420", "brcm,bcm7425" 1181a07b4aSKevin Cernekee 1281a07b4aSKevin CernekeeThe experimental -viper variants are for running Linux on the 3384's 1381a07b4aSKevin CernekeeBMIPS4355 cable modem CPU instead of the BMIPS5000 application processor. 14dedcf233SFlorian Fainelli 15dedcf233SFlorian FainelliPower management 16dedcf233SFlorian Fainelli---------------- 17dedcf233SFlorian Fainelli 18dedcf233SFlorian FainelliFor power management (particularly, S2/S3/S5 system suspend), the following SoC 19dedcf233SFlorian Fainellicomponents are needed: 20dedcf233SFlorian Fainelli 21dedcf233SFlorian Fainelli= Always-On control block (AON CTRL) 22dedcf233SFlorian Fainelli 23dedcf233SFlorian FainelliThis hardware provides control registers for the "always-on" (even in low-power 24dedcf233SFlorian Fainellimodes) hardware, such as the Power Management State Machine (PMSM). 25dedcf233SFlorian Fainelli 26dedcf233SFlorian FainelliRequired properties: 27dedcf233SFlorian Fainelli- compatible : should be one of 28dedcf233SFlorian Fainelli "brcm,bcm7425-aon-ctrl" 29dedcf233SFlorian Fainelli "brcm,bcm7429-aon-ctrl" 30dedcf233SFlorian Fainelli "brcm,bcm7435-aon-ctrl" and 31dedcf233SFlorian Fainelli "brcm,brcmstb-aon-ctrl" 32dedcf233SFlorian Fainelli- reg : the register start and length for the AON CTRL block 33dedcf233SFlorian Fainelli 34dedcf233SFlorian FainelliExample: 35dedcf233SFlorian Fainelli 36dedcf233SFlorian Fainellisyscon@410000 { 37dedcf233SFlorian Fainelli compatible = "brcm,bcm7425-aon-ctrl", "brcm,brcmstb-aon-ctrl"; 38dedcf233SFlorian Fainelli reg = <0x410000 0x400>; 39dedcf233SFlorian Fainelli}; 40dedcf233SFlorian Fainelli 41dedcf233SFlorian Fainelli= Memory controllers 42dedcf233SFlorian Fainelli 43dedcf233SFlorian FainelliA Broadcom STB SoC typically has a number of independent memory controllers, 44dedcf233SFlorian Fainellieach of which may have several associated hardware blocks, which are versioned 45dedcf233SFlorian Fainelliindependently (control registers, DDR PHYs, etc.). One might consider 46dedcf233SFlorian Fainellidescribing these controllers as a parent "memory controllers" block, which 47dedcf233SFlorian Fainellicontains N sub-nodes (one for each controller in the system), each of which is 48dedcf233SFlorian Fainelliassociated with a number of hardware register resources (e.g., its PHY. 49dedcf233SFlorian Fainelli 50dedcf233SFlorian Fainelli== MEMC (MEMory Controller) 51dedcf233SFlorian Fainelli 52dedcf233SFlorian FainelliRepresents a single memory controller instance. 53dedcf233SFlorian Fainelli 54dedcf233SFlorian FainelliRequired properties: 55dedcf233SFlorian Fainelli- compatible : should contain "brcm,brcmstb-memc" and "simple-bus" 56dedcf233SFlorian Fainelli- ranges : should contain the child address in the parent address 57dedcf233SFlorian Fainelli space, must be 0 here, and the register start and length of 58dedcf233SFlorian Fainelli the entire memory controller (including all sub nodes: DDR PHY, 59dedcf233SFlorian Fainelli arbiter, etc.) 60dedcf233SFlorian Fainelli- #address-cells : must be 1 61dedcf233SFlorian Fainelli- #size-cells : must be 1 62dedcf233SFlorian Fainelli 63dedcf233SFlorian FainelliExample: 64dedcf233SFlorian Fainelli 65dedcf233SFlorian Fainelli memory-controller@0 { 66dedcf233SFlorian Fainelli compatible = "brcm,brcmstb-memc", "simple-bus"; 67dedcf233SFlorian Fainelli ranges = <0x0 0x0 0xa000>; 68dedcf233SFlorian Fainelli #address-cells = <1>; 69dedcf233SFlorian Fainelli #size-cells = <1>; 70dedcf233SFlorian Fainelli 71dedcf233SFlorian Fainelli memc-arb@1000 { 72dedcf233SFlorian Fainelli ... 73dedcf233SFlorian Fainelli }; 74dedcf233SFlorian Fainelli 75dedcf233SFlorian Fainelli memc-ddr@2000 { 76dedcf233SFlorian Fainelli ... 77dedcf233SFlorian Fainelli }; 78dedcf233SFlorian Fainelli 79dedcf233SFlorian Fainelli ddr-phy@6000 { 80dedcf233SFlorian Fainelli ... 81dedcf233SFlorian Fainelli }; 82dedcf233SFlorian Fainelli }; 83dedcf233SFlorian Fainelli 84dedcf233SFlorian FainelliShould contain subnodes for any of the following relevant hardware resources: 85dedcf233SFlorian Fainelli 86dedcf233SFlorian Fainelli== DDR PHY control 87dedcf233SFlorian Fainelli 88dedcf233SFlorian FainelliControl registers for this memory controller's DDR PHY. 89dedcf233SFlorian Fainelli 90dedcf233SFlorian FainelliRequired properties: 91dedcf233SFlorian Fainelli- compatible : should contain one of these 92dedcf233SFlorian Fainelli "brcm,brcmstb-ddr-phy-v64.5" 93dedcf233SFlorian Fainelli "brcm,brcmstb-ddr-phy" 94dedcf233SFlorian Fainelli 95dedcf233SFlorian Fainelli- reg : the DDR PHY register range and length 96dedcf233SFlorian Fainelli 97dedcf233SFlorian FainelliExample: 98dedcf233SFlorian Fainelli 99dedcf233SFlorian Fainelli ddr-phy@6000 { 100dedcf233SFlorian Fainelli compatible = "brcm,brcmstb-ddr-phy-v64.5"; 101dedcf233SFlorian Fainelli reg = <0x6000 0xc8>; 102dedcf233SFlorian Fainelli }; 103dedcf233SFlorian Fainelli 104dedcf233SFlorian Fainelli== DDR memory controller sequencer 105dedcf233SFlorian Fainelli 106dedcf233SFlorian FainelliControl registers for this memory controller's DDR memory sequencer 107dedcf233SFlorian Fainelli 108dedcf233SFlorian FainelliRequired properties: 109dedcf233SFlorian Fainelli- compatible : should contain one of these 110dedcf233SFlorian Fainelli "brcm,bcm7425-memc-ddr" 111dedcf233SFlorian Fainelli "brcm,bcm7429-memc-ddr" 112dedcf233SFlorian Fainelli "brcm,bcm7435-memc-ddr" and 113dedcf233SFlorian Fainelli "brcm,brcmstb-memc-ddr" 114dedcf233SFlorian Fainelli 115dedcf233SFlorian Fainelli- reg : the DDR sequencer register range and length 116dedcf233SFlorian Fainelli 117dedcf233SFlorian FainelliExample: 118dedcf233SFlorian Fainelli 119dedcf233SFlorian Fainelli memc-ddr@2000 { 120dedcf233SFlorian Fainelli compatible = "brcm,bcm7425-memc-ddr", "brcm,brcmstb-memc-ddr"; 121dedcf233SFlorian Fainelli reg = <0x2000 0x300>; 122dedcf233SFlorian Fainelli }; 123dedcf233SFlorian Fainelli 124dedcf233SFlorian Fainelli== MEMC Arbiter 125dedcf233SFlorian Fainelli 126dedcf233SFlorian FainelliThe memory controller arbiter is responsible for memory clients allocation 127dedcf233SFlorian Fainelli(bandwidth, priorities etc.) and needs to have its contents restored during 128dedcf233SFlorian Fainellideep sleep states (S3). 129dedcf233SFlorian Fainelli 130dedcf233SFlorian FainelliRequired properties: 131dedcf233SFlorian Fainelli 132dedcf233SFlorian Fainelli- compatible : should contain one of these 133dedcf233SFlorian Fainelli "brcm,brcmstb-memc-arb-v10.0.0.0" 134dedcf233SFlorian Fainelli "brcm,brcmstb-memc-arb" 135dedcf233SFlorian Fainelli 136dedcf233SFlorian Fainelli- reg : the DDR Arbiter register range and length 137dedcf233SFlorian Fainelli 138dedcf233SFlorian FainelliExample: 139dedcf233SFlorian Fainelli 140dedcf233SFlorian Fainelli memc-arb@1000 { 141dedcf233SFlorian Fainelli compatible = "brcm,brcmstb-memc-arb-v10.0.0.0"; 142dedcf233SFlorian Fainelli reg = <0x1000 0x248>; 143dedcf233SFlorian Fainelli }; 144dedcf233SFlorian Fainelli 145dedcf233SFlorian Fainelli== Timers 146dedcf233SFlorian Fainelli 147dedcf233SFlorian FainelliThe Broadcom STB chips contain a timer block with several general purpose 148dedcf233SFlorian Fainellitimers that can be used. 149dedcf233SFlorian Fainelli 150dedcf233SFlorian FainelliRequired properties: 151dedcf233SFlorian Fainelli 152dedcf233SFlorian Fainelli- compatible : should contain one of: 153dedcf233SFlorian Fainelli "brcm,bcm7425-timers" 154dedcf233SFlorian Fainelli "brcm,bcm7429-timers" 155*a47c9b39SJonathan Neuschäfer "brcm,bcm7435-timers" and 156dedcf233SFlorian Fainelli "brcm,brcmstb-timers" 157dedcf233SFlorian Fainelli- reg : the timers register range 158dedcf233SFlorian Fainelli- interrupts : the interrupt line for this timer block 159dedcf233SFlorian Fainelli 160dedcf233SFlorian FainelliExample: 161dedcf233SFlorian Fainelli 162dedcf233SFlorian Fainelli timers: timer@4067c0 { 163dedcf233SFlorian Fainelli compatible = "brcm,bcm7425-timers", "brcm,brcmstb-timers"; 164dedcf233SFlorian Fainelli reg = <0x4067c0 0x40>; 165dedcf233SFlorian Fainelli interrupts = <&periph_intc 19>; 166dedcf233SFlorian Fainelli }; 167