Merge remote-tracking branch 'pci/next'
[karo-tx-linux.git] / Documentation / devicetree / bindings / arm / hisilicon / hisilicon.txt
1 Hisilicon Platforms Device Tree Bindings
2 ----------------------------------------------------
3 Hi6220 SoC
4 Required root node properties:
5         - compatible = "hisilicon,hi6220";
6
7 Hi4511 Board
8 Required root node properties:
9         - compatible = "hisilicon,hi3620-hi4511";
10
11 HiP04 D01 Board
12 Required root node properties:
13         - compatible = "hisilicon,hip04-d01";
14
15 HiP01 ca9x2 Board
16 Required root node properties:
17         - compatible = "hisilicon,hip01-ca9x2";
18
19 HiKey Board
20 Required root node properties:
21         - compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220";
22
23 HiP05 D02 Board
24 Required root node properties:
25         - compatible = "hisilicon,hip05-d02";
26
27 Hisilicon system controller
28
29 Required properties:
30 - compatible : "hisilicon,sysctrl"
31 - reg : Register address and size
32
33 Optional properties:
34 - smp-offset : offset in sysctrl for notifying slave cpu booting
35                 cpu 1, reg;
36                 cpu 2, reg + 0x4;
37                 cpu 3, reg + 0x8;
38                 If reg value is not zero, cpun exit wfi and go
39 - resume-offset : offset in sysctrl for notifying cpu0 when resume
40 - reboot-offset : offset in sysctrl for system reboot
41
42 Example:
43
44         /* for Hi3620 */
45         sysctrl: system-controller@fc802000 {
46                 compatible = "hisilicon,sysctrl";
47                 reg = <0xfc802000 0x1000>;
48                 smp-offset = <0x31c>;
49                 resume-offset = <0x308>;
50                 reboot-offset = <0x4>;
51         };
52
53 -----------------------------------------------------------------------
54 Hisilicon Hi6220 system controller
55
56 Required properties:
57 - compatible : "hisilicon,hi6220-sysctrl"
58 - reg : Register address and size
59 - #clock-cells: should be set to 1, many clock registers are defined
60   under this controller and this property must be present.
61
62 Hisilicon designs this controller as one of the system controllers,
63 its main functions are the same as Hisilicon system controller, but
64 the register offset of some core modules are different.
65
66 Example:
67         /*for Hi6220*/
68         sys_ctrl: sys_ctrl@f7030000 {
69                 compatible = "hisilicon,hi6220-sysctrl", "syscon";
70                 reg = <0x0 0xf7030000 0x0 0x2000>;
71                 #clock-cells = <1>;
72         };
73
74
75 Hisilicon Hi6220 Power Always ON domain controller
76
77 Required properties:
78 - compatible : "hisilicon,hi6220-aoctrl"
79 - reg : Register address and size
80 - #clock-cells: should be set to 1, many clock registers are defined
81   under this controller and this property must be present.
82
83 Hisilicon designs this system controller to control the power always
84 on domain for mobile platform.
85
86 Example:
87         /*for Hi6220*/
88         ao_ctrl: ao_ctrl@f7800000 {
89                 compatible = "hisilicon,hi6220-aoctrl", "syscon";
90                 reg = <0x0 0xf7800000 0x0 0x2000>;
91                 #clock-cells = <1>;
92         };
93
94
95 Hisilicon Hi6220 Media domain controller
96
97 Required properties:
98 - compatible : "hisilicon,hi6220-mediactrl"
99 - reg : Register address and size
100 - #clock-cells: should be set to 1, many clock registers are defined
101   under this controller and this property must be present.
102
103 Hisilicon designs this system controller to control the multimedia
104 domain(e.g. codec, G3D ...) for mobile platform.
105
106 Example:
107         /*for Hi6220*/
108         media_ctrl: media_ctrl@f4410000 {
109                 compatible = "hisilicon,hi6220-mediactrl", "syscon";
110                 reg = <0x0 0xf4410000 0x0 0x1000>;
111                 #clock-cells = <1>;
112         };
113
114
115 Hisilicon Hi6220 Power Management domain controller
116
117 Required properties:
118 - compatible : "hisilicon,hi6220-pmctrl"
119 - reg : Register address and size
120 - #clock-cells: should be set to 1, some clock registers are define
121   under this controller and this property must be present.
122
123 Hisilicon designs this system controller to control the power management
124 domain for mobile platform.
125
126 Example:
127         /*for Hi6220*/
128         pm_ctrl: pm_ctrl@f7032000 {
129                 compatible = "hisilicon,hi6220-pmctrl", "syscon";
130                 reg = <0x0 0xf7032000 0x0 0x1000>;
131                 #clock-cells = <1>;
132         };
133
134
135 Hisilicon Hi6220 SRAM controller
136
137 Required properties:
138 - compatible : "hisilicon,hi6220-sramctrl", "syscon"
139 - reg : Register address and size
140
141 Hisilicon's SoCs use sram for multiple purpose; on Hi6220 there have several
142 SRAM banks for power management, modem, security, etc. Further, use "syscon"
143 managing the common sram which can be shared by multiple modules.
144
145 Example:
146         /*for Hi6220*/
147         sram: sram@fff80000 {
148                 compatible = "hisilicon,hi6220-sramctrl", "syscon";
149                 reg = <0x0 0xfff80000 0x0 0x12000>;
150         };
151
152 -----------------------------------------------------------------------
153 Hisilicon HiP01 system controller
154
155 Required properties:
156 - compatible : "hisilicon,hip01-sysctrl"
157 - reg : Register address and size
158
159 The HiP01 system controller is mostly compatible with hisilicon
160 system controller,but it has some specific control registers for
161 HIP01 SoC family, such as slave core boot, and also some same
162 registers located at different offset.
163
164 Example:
165
166         /* for hip01-ca9x2 */
167         sysctrl: system-controller@10000000 {
168                 compatible = "hisilicon,hip01-sysctrl", "hisilicon,sysctrl";
169                 reg = <0x10000000 0x1000>;
170                 reboot-offset = <0x4>;
171         };
172
173 -----------------------------------------------------------------------
174 Hisilicon HiP05 PCIe-SAS system controller
175
176 Required properties:
177 - compatible : "hisilicon,pcie-sas-subctrl", "syscon";
178 - reg : Register address and size
179
180 The HiP05 PCIe-SAS system controller is shared by PCIe and SAS controllers in
181 HiP05 Soc to implement some basic configurations.
182
183 Example:
184         /* for HiP05 PCIe-SAS system */
185         pcie_sas: system_controller@0xb0000000 {
186                 compatible = "hisilicon,pcie-sas-subctrl", "syscon";
187                 reg = <0xb0000000 0x10000>;
188         };
189
190 -----------------------------------------------------------------------
191 Hisilicon CPU controller
192
193 Required properties:
194 - compatible : "hisilicon,cpuctrl"
195 - reg : Register address and size
196
197 The clock registers and power registers of secondary cores are defined
198 in CPU controller, especially in HIX5HD2 SoC.
199
200 -----------------------------------------------------------------------
201 PCTRL: Peripheral misc control register
202
203 Required Properties:
204 - compatible: "hisilicon,pctrl"
205 - reg: Address and size of pctrl.
206
207 Example:
208
209         /* for Hi3620 */
210         pctrl: pctrl@fca09000 {
211                 compatible = "hisilicon,pctrl";
212                 reg = <0xfca09000 0x1000>;
213         };
214
215 -----------------------------------------------------------------------
216 Fabric:
217
218 Required Properties:
219 - compatible: "hisilicon,hip04-fabric";
220 - reg: Address and size of Fabric
221
222 -----------------------------------------------------------------------
223 Bootwrapper boot method (software protocol on SMP):
224
225 Required Properties:
226 - compatible: "hisilicon,hip04-bootwrapper";
227 - boot-method: Address and size of boot method.
228   [0]: bootwrapper physical address
229   [1]: bootwrapper size
230   [2]: relocation physical address
231   [3]: relocation size