Merge tag 'drm-for-v4.15-part2-fixes' of git://people.freedesktop.org/~airlied/linux
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / arm / bcm / brcm,brcmstb.txt
1 ARM Broadcom STB platforms Device Tree Bindings
2 -----------------------------------------------
3 Boards with Broadcom Brahma15 ARM-based BCMxxxx (generally BCM7xxx variants)
4 SoC shall have the following DT organization:
5
6 Required root node properties:
7     - compatible: "brcm,bcm<chip_id>", "brcm,brcmstb"
8
9 example:
10 / {
11     #address-cells = <2>;
12     #size-cells = <2>;
13     model = "Broadcom STB (bcm7445)";
14     compatible = "brcm,bcm7445", "brcm,brcmstb";
15
16 Further, syscon nodes that map platform-specific registers used for general
17 system control is required:
18
19     - compatible: "brcm,bcm<chip_id>-sun-top-ctrl", "syscon"
20     - compatible: "brcm,bcm<chip_id>-hif-cpubiuctrl", "syscon"
21     - compatible: "brcm,bcm<chip_id>-hif-continuation", "syscon"
22
23 hif-cpubiuctrl node
24 -------------------
25 SoCs with Broadcom Brahma15 ARM-based CPUs have a specific Bus Interface Unit
26 (BIU) block which controls and interfaces the CPU complex to the different
27 Memory Controller Ports (MCP), one per memory controller (MEMC). This BIU block
28 offers a feature called Write Pairing which consists in collapsing two adjacent
29 cache lines into a single (bursted) write transaction towards the memory
30 controller (MEMC) to maximize write bandwidth.
31
32 Required properties:
33
34     - compatible: must be "brcm,bcm7445-hif-cpubiuctrl", "syscon"
35
36 Optional properties:
37
38     - brcm,write-pairing:
39         Boolean property, which when present indicates that the chip
40         supports write-pairing.
41
42 example:
43     rdb {
44         #address-cells = <1>;
45         #size-cells = <1>;
46         compatible = "simple-bus";
47         ranges = <0 0x00 0xf0000000 0x1000000>;
48
49         sun_top_ctrl: syscon@404000 {
50             compatible = "brcm,bcm7445-sun-top-ctrl", "syscon";
51             reg = <0x404000 0x51c>;
52         };
53
54         hif_cpubiuctrl: syscon@3e2400 {
55             compatible = "brcm,bcm7445-hif-cpubiuctrl", "syscon";
56             reg = <0x3e2400 0x5b4>;
57             brcm,write-pairing;
58         };
59
60         hif_continuation: syscon@452000 {
61             compatible = "brcm,bcm7445-hif-continuation", "syscon";
62             reg = <0x452000 0x100>;
63         };
64     };
65
66 Nodes that allow for support of SMP initialization and reboot are required:
67
68 smpboot
69 -------
70 Required properties:
71
72     - compatible
73         The string "brcm,brcmstb-smpboot".
74
75     - syscon-cpu
76         A phandle / integer array property which lets the BSP know the location
77         of certain CPU power-on registers.
78
79         The layout of the property is as follows:
80             o a phandle to the "hif_cpubiuctrl" syscon node
81             o offset to the base CPU power zone register
82             o offset to the base CPU reset register
83
84     - syscon-cont
85         A phandle pointing to the syscon node which describes the CPU boot
86         continuation registers.
87             o a phandle to the "hif_continuation" syscon node
88
89 example:
90     smpboot {
91         compatible = "brcm,brcmstb-smpboot";
92         syscon-cpu = <&hif_cpubiuctrl 0x88 0x178>;
93         syscon-cont = <&hif_continuation>;
94     };
95
96 reboot
97 -------
98 Required properties
99
100     - compatible
101         The string property "brcm,brcmstb-reboot" for 40nm/28nm chips with
102         the new SYS_CTRL interface, or "brcm,bcm7038-reboot" for 65nm
103         chips with the old SUN_TOP_CTRL interface.
104
105     - syscon
106         A phandle / integer array that points to the syscon node which describes
107         the general system reset registers.
108             o a phandle to "sun_top_ctrl"
109             o offset to the "reset source enable" register
110             o offset to the "software master reset" register
111
112 example:
113     reboot {
114         compatible = "brcm,brcmstb-reboot";
115         syscon = <&sun_top_ctrl 0x304 0x308>;
116     };
117
118
119
120 Power management
121 ----------------
122
123 For power management (particularly, S2/S3/S5 system suspend), the following SoC
124 components are needed:
125
126 = Always-On control block (AON CTRL)
127
128 This hardware provides control registers for the "always-on" (even in low-power
129 modes) hardware, such as the Power Management State Machine (PMSM).
130
131 Required properties:
132 - compatible     : should contain "brcm,brcmstb-aon-ctrl"
133 - reg            : the register start and length for the AON CTRL block
134
135 Example:
136
137 aon-ctrl@410000 {
138         compatible = "brcm,brcmstb-aon-ctrl";
139         reg = <0x410000 0x400>;
140 };
141
142 = Memory controllers
143
144 A Broadcom STB SoC typically has a number of independent memory controllers,
145 each of which may have several associated hardware blocks, which are versioned
146 independently (control registers, DDR PHYs, etc.). One might consider
147 describing these controllers as a parent "memory controllers" block, which
148 contains N sub-nodes (one for each controller in the system), each of which is
149 associated with a number of hardware register resources (e.g., its PHY). See
150 the example device tree snippet below.
151
152 == MEMC (MEMory Controller)
153
154 Represents a single memory controller instance.
155
156 Required properties:
157 - compatible     : should contain "brcm,brcmstb-memc" and "simple-bus"
158
159 Should contain subnodes for any of the following relevant hardware resources:
160
161 == DDR PHY control
162
163 Control registers for this memory controller's DDR PHY.
164
165 Required properties:
166 - compatible     : should contain one of these
167         "brcm,brcmstb-ddr-phy-v71.1"
168         "brcm,brcmstb-ddr-phy-v72.0"
169         "brcm,brcmstb-ddr-phy-v225.1"
170         "brcm,brcmstb-ddr-phy-v240.1"
171         "brcm,brcmstb-ddr-phy-v240.2"
172
173 - reg            : the DDR PHY register range
174
175 == DDR SHIMPHY
176
177 Control registers for this memory controller's DDR SHIMPHY.
178
179 Required properties:
180 - compatible     : should contain "brcm,brcmstb-ddr-shimphy-v1.0"
181 - reg            : the DDR SHIMPHY register range
182
183 == MEMC DDR control
184
185 Sequencer DRAM parameters and control registers. Used for Self-Refresh
186 Power-Down (SRPD), among other things.
187
188 Required properties:
189 - compatible     : should contain one of these
190         "brcm,brcmstb-memc-ddr-rev-b.2.2"
191         "brcm,brcmstb-memc-ddr"
192 - reg            : the MEMC DDR register range
193
194 Example:
195
196 memory_controllers {
197         ranges;
198         compatible = "simple-bus";
199
200         memc@0 {
201                 compatible = "brcm,brcmstb-memc", "simple-bus";
202                 ranges;
203
204                 ddr-phy@f1106000 {
205                         compatible = "brcm,brcmstb-ddr-phy-v240.1";
206                         reg = <0xf1106000 0x21c>;
207                 };
208
209                 shimphy@f1108000 {
210                         compatible = "brcm,brcmstb-ddr-shimphy-v1.0";
211                         reg = <0xf1108000 0xe4>;
212                 };
213
214                 memc-ddr@f1102000 {
215                         reg = <0xf1102000 0x800>;
216                         compatible = "brcm,brcmstb-memc-ddr";
217                 };
218         };
219
220         memc@1 {
221                 compatible = "brcm,brcmstb-memc", "simple-bus";
222                 ranges;
223
224                 ddr-phy@f1186000 {
225                         compatible = "brcm,brcmstb-ddr-phy-v240.1";
226                         reg = <0xf1186000 0x21c>;
227                 };
228
229                 shimphy@f1188000 {
230                         compatible = "brcm,brcmstb-ddr-shimphy-v1.0";
231                         reg = <0xf1188000 0xe4>;
232                 };
233
234                 memc-ddr@f1182000 {
235                         reg = <0xf1182000 0x800>;
236                         compatible = "brcm,brcmstb-memc-ddr";
237                 };
238         };
239
240         memc@2 {
241                 compatible = "brcm,brcmstb-memc", "simple-bus";
242                 ranges;
243
244                 ddr-phy@f1206000 {
245                         compatible = "brcm,brcmstb-ddr-phy-v240.1";
246                         reg = <0xf1206000 0x21c>;
247                 };
248
249                 shimphy@f1208000 {
250                         compatible = "brcm,brcmstb-ddr-shimphy-v1.0";
251                         reg = <0xf1208000 0xe4>;
252                 };
253
254                 memc-ddr@f1202000 {
255                         reg = <0xf1202000 0x800>;
256                         compatible = "brcm,brcmstb-memc-ddr";
257                 };
258         };
259 };