Merge branch 'drm-intel-next-queued' into gvt-next
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / arm / hisilicon / hisilicon.txt
1 Hisilicon Platforms Device Tree Bindings
2 ----------------------------------------------------
3 Hi3660 SoC
4 Required root node properties:
5         - compatible = "hisilicon,hi3660";
6
7 HiKey960 Board
8 Required root node properties:
9         - compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660";
10
11 Hi3798cv200 SoC
12 Required root node properties:
13         - compatible = "hisilicon,hi3798cv200";
14
15 Hi3798cv200 Poplar Board
16 Required root node properties:
17         - compatible = "hisilicon,hi3798cv200-poplar", "hisilicon,hi3798cv200";
18
19 Hi4511 Board
20 Required root node properties:
21         - compatible = "hisilicon,hi3620-hi4511";
22
23 Hi6220 SoC
24 Required root node properties:
25         - compatible = "hisilicon,hi6220";
26
27 HiKey Board
28 Required root node properties:
29         - compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220";
30
31 HiP01 ca9x2 Board
32 Required root node properties:
33         - compatible = "hisilicon,hip01-ca9x2";
34
35 HiP04 D01 Board
36 Required root node properties:
37         - compatible = "hisilicon,hip04-d01";
38
39 HiP05 D02 Board
40 Required root node properties:
41         - compatible = "hisilicon,hip05-d02";
42
43 HiP06 D03 Board
44 Required root node properties:
45         - compatible = "hisilicon,hip06-d03";
46
47 HiP07 D05 Board
48 Required root node properties:
49         - compatible = "hisilicon,hip07-d05";
50
51 Hisilicon system controller
52
53 Required properties:
54 - compatible : "hisilicon,sysctrl"
55 - reg : Register address and size
56
57 Optional properties:
58 - smp-offset : offset in sysctrl for notifying slave cpu booting
59                 cpu 1, reg;
60                 cpu 2, reg + 0x4;
61                 cpu 3, reg + 0x8;
62                 If reg value is not zero, cpun exit wfi and go
63 - resume-offset : offset in sysctrl for notifying cpu0 when resume
64 - reboot-offset : offset in sysctrl for system reboot
65
66 Example:
67
68         /* for Hi3620 */
69         sysctrl: system-controller@fc802000 {
70                 compatible = "hisilicon,sysctrl";
71                 reg = <0xfc802000 0x1000>;
72                 smp-offset = <0x31c>;
73                 resume-offset = <0x308>;
74                 reboot-offset = <0x4>;
75         };
76
77 -----------------------------------------------------------------------
78 Hisilicon Hi3798CV200 Peripheral Controller
79
80 The Hi3798CV200 Peripheral Controller controls peripherals, queries
81 their status, and configures some functions of peripherals.
82
83 Required properties:
84 - compatible: Should contain "hisilicon,hi3798cv200-perictrl", "syscon"
85   and "simple-mfd".
86 - reg: Register address and size of Peripheral Controller.
87 - #address-cells: Should be 1.
88 - #size-cells: Should be 1.
89
90 Examples:
91
92         perictrl: peripheral-controller@8a20000 {
93                 compatible = "hisilicon,hi3798cv200-perictrl", "syscon",
94                              "simple-mfd";
95                 reg = <0x8a20000 0x1000>;
96                 #address-cells = <1>;
97                 #size-cells = <1>;
98         };
99
100 -----------------------------------------------------------------------
101 Hisilicon Hi6220 system controller
102
103 Required properties:
104 - compatible : "hisilicon,hi6220-sysctrl"
105 - reg : Register address and size
106 - #clock-cells: should be set to 1, many clock registers are defined
107   under this controller and this property must be present.
108
109 Hisilicon designs this controller as one of the system controllers,
110 its main functions are the same as Hisilicon system controller, but
111 the register offset of some core modules are different.
112
113 Example:
114         /*for Hi6220*/
115         sys_ctrl: sys_ctrl@f7030000 {
116                 compatible = "hisilicon,hi6220-sysctrl", "syscon";
117                 reg = <0x0 0xf7030000 0x0 0x2000>;
118                 #clock-cells = <1>;
119         };
120
121
122 Hisilicon Hi6220 Power Always ON domain controller
123
124 Required properties:
125 - compatible : "hisilicon,hi6220-aoctrl"
126 - reg : Register address and size
127 - #clock-cells: should be set to 1, many clock registers are defined
128   under this controller and this property must be present.
129
130 Hisilicon designs this system controller to control the power always
131 on domain for mobile platform.
132
133 Example:
134         /*for Hi6220*/
135         ao_ctrl: ao_ctrl@f7800000 {
136                 compatible = "hisilicon,hi6220-aoctrl", "syscon";
137                 reg = <0x0 0xf7800000 0x0 0x2000>;
138                 #clock-cells = <1>;
139         };
140
141
142 Hisilicon Hi6220 Media domain controller
143
144 Required properties:
145 - compatible : "hisilicon,hi6220-mediactrl"
146 - reg : Register address and size
147 - #clock-cells: should be set to 1, many clock registers are defined
148   under this controller and this property must be present.
149
150 Hisilicon designs this system controller to control the multimedia
151 domain(e.g. codec, G3D ...) for mobile platform.
152
153 Example:
154         /*for Hi6220*/
155         media_ctrl: media_ctrl@f4410000 {
156                 compatible = "hisilicon,hi6220-mediactrl", "syscon";
157                 reg = <0x0 0xf4410000 0x0 0x1000>;
158                 #clock-cells = <1>;
159         };
160
161
162 Hisilicon Hi6220 Power Management domain controller
163
164 Required properties:
165 - compatible : "hisilicon,hi6220-pmctrl"
166 - reg : Register address and size
167 - #clock-cells: should be set to 1, some clock registers are define
168   under this controller and this property must be present.
169
170 Hisilicon designs this system controller to control the power management
171 domain for mobile platform.
172
173 Example:
174         /*for Hi6220*/
175         pm_ctrl: pm_ctrl@f7032000 {
176                 compatible = "hisilicon,hi6220-pmctrl", "syscon";
177                 reg = <0x0 0xf7032000 0x0 0x1000>;
178                 #clock-cells = <1>;
179         };
180
181
182 Hisilicon Hi6220 SRAM controller
183
184 Required properties:
185 - compatible : "hisilicon,hi6220-sramctrl", "syscon"
186 - reg : Register address and size
187
188 Hisilicon's SoCs use sram for multiple purpose; on Hi6220 there have several
189 SRAM banks for power management, modem, security, etc. Further, use "syscon"
190 managing the common sram which can be shared by multiple modules.
191
192 Example:
193         /*for Hi6220*/
194         sram: sram@fff80000 {
195                 compatible = "hisilicon,hi6220-sramctrl", "syscon";
196                 reg = <0x0 0xfff80000 0x0 0x12000>;
197         };
198
199 -----------------------------------------------------------------------
200 Hisilicon HiP01 system controller
201
202 Required properties:
203 - compatible : "hisilicon,hip01-sysctrl"
204 - reg : Register address and size
205
206 The HiP01 system controller is mostly compatible with hisilicon
207 system controller,but it has some specific control registers for
208 HIP01 SoC family, such as slave core boot, and also some same
209 registers located at different offset.
210
211 Example:
212
213         /* for hip01-ca9x2 */
214         sysctrl: system-controller@10000000 {
215                 compatible = "hisilicon,hip01-sysctrl", "hisilicon,sysctrl";
216                 reg = <0x10000000 0x1000>;
217                 reboot-offset = <0x4>;
218         };
219
220 -----------------------------------------------------------------------
221 Hisilicon HiP05/HiP06 PCIe-SAS sub system controller
222
223 Required properties:
224 - compatible : "hisilicon,pcie-sas-subctrl", "syscon";
225 - reg : Register address and size
226
227 The PCIe-SAS sub system controller is shared by PCIe and SAS controllers in
228 HiP05 or HiP06 Soc to implement some basic configurations.
229
230 Example:
231         /* for HiP05 PCIe-SAS sub system */
232         pcie_sas: system_controller@b0000000 {
233                 compatible = "hisilicon,pcie-sas-subctrl", "syscon";
234                 reg = <0xb0000000 0x10000>;
235         };
236
237 Hisilicon HiP05/HiP06 PERI sub system controller
238
239 Required properties:
240 - compatible : "hisilicon,peri-subctrl", "syscon";
241 - reg : Register address and size
242
243 The PERI sub system controller is shared by peripheral controllers in
244 HiP05 or HiP06 Soc to implement some basic configurations. The peripheral
245 controllers include mdio, ddr, iic, uart, timer and so on.
246
247 Example:
248         /* for HiP05 sub peri system */
249         peri_c_subctrl: syscon@80000000 {
250                 compatible = "hisilicon,peri-subctrl", "syscon";
251                 reg = <0x0 0x80000000 0x0 0x10000>;
252         };
253
254 Hisilicon HiP05/HiP06 DSA sub system controller
255
256 Required properties:
257 - compatible : "hisilicon,dsa-subctrl", "syscon";
258 - reg : Register address and size
259
260 The DSA sub system controller is shared by peripheral controllers in
261 HiP05 or HiP06 Soc to implement some basic configurations.
262
263 Example:
264         /* for HiP05 dsa sub system */
265         pcie_sas: system_controller@a0000000 {
266                 compatible = "hisilicon,dsa-subctrl", "syscon";
267                 reg = <0xa0000000 0x10000>;
268         };
269
270 -----------------------------------------------------------------------
271 Hisilicon CPU controller
272
273 Required properties:
274 - compatible : "hisilicon,cpuctrl"
275 - reg : Register address and size
276
277 The clock registers and power registers of secondary cores are defined
278 in CPU controller, especially in HIX5HD2 SoC.
279
280 -----------------------------------------------------------------------
281 PCTRL: Peripheral misc control register
282
283 Required Properties:
284 - compatible: "hisilicon,pctrl"
285 - reg: Address and size of pctrl.
286
287 Example:
288
289         /* for Hi3620 */
290         pctrl: pctrl@fca09000 {
291                 compatible = "hisilicon,pctrl";
292                 reg = <0xfca09000 0x1000>;
293         };
294
295 -----------------------------------------------------------------------
296 Fabric:
297
298 Required Properties:
299 - compatible: "hisilicon,hip04-fabric";
300 - reg: Address and size of Fabric
301
302 -----------------------------------------------------------------------
303 Bootwrapper boot method (software protocol on SMP):
304
305 Required Properties:
306 - compatible: "hisilicon,hip04-bootwrapper";
307 - boot-method: Address and size of boot method.
308   [0]: bootwrapper physical address
309   [1]: bootwrapper size
310   [2]: relocation physical address
311   [3]: relocation size