xref: /openbmc/linux/Documentation/devicetree/bindings/mips/brcm/soc.txt (revision 3eb66e91a25497065c5322b1268cbc3953642227)
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