diff options
author | Haojian Zhuang <haojian.zhuang@linaro.org> | 2013-12-11 02:54:51 -0500 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2013-12-17 19:43:32 -0500 |
commit | fa8962a8bb84cad2902cc7e2f3682cbc7450ab86 (patch) | |
tree | 2dede6e2c563ca71450605c90fdaa34410f98189 /arch/arm/boot/dts | |
parent | 2c7268c70fc1099ce4aac83c194675efd927e90f (diff) |
ARM: dts: enable hi4511 with device tree
Enable Hisilicon Hi4511 development platform with device tree support.
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: Kevin Hilman <khilman@linaro.org>
Diffstat (limited to 'arch/arm/boot/dts')
-rw-r--r-- | arch/arm/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/hi3620.dtsi | 518 | ||||
-rw-r--r-- | arch/arm/boot/dts/hi4511.dts | 648 |
3 files changed, 1167 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index d57c1a65b24f..a4c771fff734 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -66,6 +66,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ | |||
66 | exynos5420-smdk5420.dtb \ | 66 | exynos5420-smdk5420.dtb \ |
67 | exynos5440-sd5v1.dtb \ | 67 | exynos5440-sd5v1.dtb \ |
68 | exynos5440-ssdk5440.dtb | 68 | exynos5440-ssdk5440.dtb |
69 | dtb-$(CONFIG_ARCH_HI3xxx) += hi4511.dtb | ||
69 | dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \ | 70 | dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \ |
70 | ecx-2000.dtb | 71 | ecx-2000.dtb |
71 | dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ | 72 | dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ |
diff --git a/arch/arm/boot/dts/hi3620.dtsi b/arch/arm/boot/dts/hi3620.dtsi new file mode 100644 index 000000000000..b9d86795ed5a --- /dev/null +++ b/arch/arm/boot/dts/hi3620.dtsi | |||
@@ -0,0 +1,518 @@ | |||
1 | /* | ||
2 | * Hisilicon Ltd. Hi3620 SoC | ||
3 | * | ||
4 | * Copyright (C) 2012-2013 Hisilicon Ltd. | ||
5 | * Copyright (C) 2012-2013 Linaro Ltd. | ||
6 | * | ||
7 | * Author: Haojian Zhuang <haojian.zhuang@linaro.org> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * publishhed by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | /include/ "skeleton.dtsi" | ||
15 | |||
16 | / { | ||
17 | aliases { | ||
18 | serial0 = &uart0; | ||
19 | serial1 = &uart1; | ||
20 | serial2 = &uart2; | ||
21 | serial3 = &uart3; | ||
22 | serial4 = &uart4; | ||
23 | }; | ||
24 | |||
25 | pclk: clk { | ||
26 | compatible = "fixed-clock"; | ||
27 | #clock-cells = <0>; | ||
28 | clock-frequency = <26000000>; | ||
29 | clock-output-names = "apb_pclk"; | ||
30 | }; | ||
31 | |||
32 | cpus { | ||
33 | #address-cells = <1>; | ||
34 | #size-cells = <0>; | ||
35 | |||
36 | cpu@0 { | ||
37 | device_type = "cpu"; | ||
38 | compatible = "arm,cortex-a9"; | ||
39 | reg = <0x0>; | ||
40 | next-level-cache = <&L2>; | ||
41 | }; | ||
42 | }; | ||
43 | |||
44 | amba { | ||
45 | #address-cells = <1>; | ||
46 | #size-cells = <1>; | ||
47 | compatible = "arm,amba-bus"; | ||
48 | interrupt-parent = <&gic>; | ||
49 | ranges = <0 0xfc000000 0x2000000>; | ||
50 | |||
51 | L2: l2-cache { | ||
52 | compatible = "arm,pl310-cache"; | ||
53 | reg = <0xfc10000 0x100000>; | ||
54 | interrupts = <0 15 4>; | ||
55 | cache-unified; | ||
56 | cache-level = <2>; | ||
57 | }; | ||
58 | |||
59 | gic: interrupt-controller@1000 { | ||
60 | compatible = "arm,cortex-a9-gic"; | ||
61 | #interrupt-cells = <3>; | ||
62 | #address-cells = <0>; | ||
63 | interrupt-controller; | ||
64 | /* gic dist base, gic cpu base */ | ||
65 | reg = <0x1000 0x1000>, <0x100 0x100>; | ||
66 | }; | ||
67 | |||
68 | dual_timer0: dual_timer@800000 { | ||
69 | compatible = "arm,sp804", "arm,primecell"; | ||
70 | reg = <0x800000 0x1000>; | ||
71 | /* timer00 & timer01 */ | ||
72 | interrupts = <0 0 4>, <0 1 4>; | ||
73 | clocks = <&pclk>; | ||
74 | clock-names = "apb_pclk"; | ||
75 | status = "disabled"; | ||
76 | }; | ||
77 | |||
78 | dual_timer1: dual_timer@801000 { | ||
79 | compatible = "arm,sp804", "arm,primecell"; | ||
80 | reg = <0x801000 0x1000>; | ||
81 | /* timer10 & timer11 */ | ||
82 | interrupts = <0 2 4>, <0 3 4>; | ||
83 | clocks = <&pclk>; | ||
84 | clock-names = "apb_pclk"; | ||
85 | status = "disabled"; | ||
86 | }; | ||
87 | |||
88 | dual_timer2: dual_timer@a01000 { | ||
89 | compatible = "arm,sp804", "arm,primecell"; | ||
90 | reg = <0xa01000 0x1000>; | ||
91 | /* timer20 & timer21 */ | ||
92 | interrupts = <0 4 4>, <0 5 4>; | ||
93 | clocks = <&pclk>; | ||
94 | clock-names = "apb_pclk"; | ||
95 | status = "disabled"; | ||
96 | }; | ||
97 | |||
98 | dual_timer3: dual_timer@a02000 { | ||
99 | compatible = "arm,sp804", "arm,primecell"; | ||
100 | reg = <0xa02000 0x1000>; | ||
101 | /* timer30 & timer31 */ | ||
102 | interrupts = <0 6 4>, <0 7 4>; | ||
103 | clocks = <&pclk>; | ||
104 | clock-names = "apb_pclk"; | ||
105 | status = "disabled"; | ||
106 | }; | ||
107 | |||
108 | dual_timer4: dual_timer@a03000 { | ||
109 | compatible = "arm,sp804", "arm,primecell"; | ||
110 | reg = <0xa03000 0x1000>; | ||
111 | /* timer40 & timer41 */ | ||
112 | interrupts = <0 96 4>, <0 97 4>; | ||
113 | clocks = <&pclk>; | ||
114 | clock-names = "apb_pclk"; | ||
115 | status = "disabled"; | ||
116 | }; | ||
117 | |||
118 | uart0: uart@b00000 { | ||
119 | compatible = "arm,pl011", "arm,primecell"; | ||
120 | reg = <0xb00000 0x1000>; | ||
121 | interrupts = <0 20 4>; | ||
122 | clocks = <&pclk>; | ||
123 | clock-names = "apb_pclk"; | ||
124 | status = "disabled"; | ||
125 | }; | ||
126 | |||
127 | uart1: uart@b01000 { | ||
128 | compatible = "arm,pl011", "arm,primecell"; | ||
129 | reg = <0xb01000 0x1000>; | ||
130 | interrupts = <0 21 4>; | ||
131 | clocks = <&pclk>; | ||
132 | clock-names = "apb_pclk"; | ||
133 | status = "disabled"; | ||
134 | }; | ||
135 | |||
136 | uart2: uart@b02000 { | ||
137 | compatible = "arm,pl011", "arm,primecell"; | ||
138 | reg = <0xb02000 0x1000>; | ||
139 | interrupts = <0 22 4>; | ||
140 | clocks = <&pclk>; | ||
141 | clock-names = "apb_pclk"; | ||
142 | status = "disabled"; | ||
143 | }; | ||
144 | |||
145 | uart3: uart@b03000 { | ||
146 | compatible = "arm,pl011", "arm,primecell"; | ||
147 | reg = <0xb03000 0x1000>; | ||
148 | interrupts = <0 23 4>; | ||
149 | clocks = <&pclk>; | ||
150 | clock-names = "apb_pclk"; | ||
151 | status = "disabled"; | ||
152 | }; | ||
153 | |||
154 | uart4: uart@b04000 { | ||
155 | compatible = "arm,pl011", "arm,primecell"; | ||
156 | reg = <0xb04000 0x1000>; | ||
157 | interrupts = <0 24 4>; | ||
158 | clocks = <&pclk>; | ||
159 | clock-names = "apb_pclk"; | ||
160 | status = "disabled"; | ||
161 | }; | ||
162 | |||
163 | gpio0: gpio@806000 { | ||
164 | compatible = "arm,pl061", "arm,primecell"; | ||
165 | reg = <0x806000 0x1000>; | ||
166 | interrupts = <0 64 0x4>; | ||
167 | gpio-controller; | ||
168 | #gpio-cells = <2>; | ||
169 | gpio-ranges = < &pmx0 2 0 1 &pmx0 3 0 1 &pmx0 4 0 1 | ||
170 | &pmx0 5 0 1 &pmx0 6 1 1 &pmx0 7 2 1>; | ||
171 | interrupt-controller; | ||
172 | #interrupt-cells = <2>; | ||
173 | clocks = <&pclk>; | ||
174 | clock-names = "apb_pclk"; | ||
175 | }; | ||
176 | |||
177 | gpio1: gpio@807000 { | ||
178 | compatible = "arm,pl061", "arm,primecell"; | ||
179 | reg = <0x807000 0x1000>; | ||
180 | interrupts = <0 65 0x4>; | ||
181 | gpio-controller; | ||
182 | #gpio-cells = <2>; | ||
183 | gpio-ranges = < &pmx0 0 3 1 &pmx0 1 3 1 &pmx0 2 3 1 | ||
184 | &pmx0 3 3 1 &pmx0 4 3 1 &pmx0 5 4 1 | ||
185 | &pmx0 6 5 1 &pmx0 7 6 1>; | ||
186 | interrupt-controller; | ||
187 | #interrupt-cells = <2>; | ||
188 | clocks = <&pclk>; | ||
189 | clock-names = "apb_pclk"; | ||
190 | }; | ||
191 | |||
192 | gpio2: gpio@808000 { | ||
193 | compatible = "arm,pl061", "arm,primecell"; | ||
194 | reg = <0x808000 0x1000>; | ||
195 | interrupts = <0 66 0x4>; | ||
196 | gpio-controller; | ||
197 | #gpio-cells = <2>; | ||
198 | gpio-ranges = < &pmx0 0 7 1 &pmx0 1 8 1 &pmx0 2 9 1 | ||
199 | &pmx0 3 10 1 &pmx0 4 3 1 &pmx0 5 3 1 | ||
200 | &pmx0 6 3 1 &pmx0 7 3 1>; | ||
201 | interrupt-controller; | ||
202 | #interrupt-cells = <2>; | ||
203 | clocks = <&pclk>; | ||
204 | clock-names = "apb_pclk"; | ||
205 | }; | ||
206 | |||
207 | gpio3: gpio@809000 { | ||
208 | compatible = "arm,pl061", "arm,primecell"; | ||
209 | reg = <0x809000 0x1000>; | ||
210 | interrupts = <0 67 0x4>; | ||
211 | gpio-controller; | ||
212 | #gpio-cells = <2>; | ||
213 | gpio-ranges = < &pmx0 0 3 1 &pmx0 1 3 1 &pmx0 2 3 1 | ||
214 | &pmx0 3 3 1 &pmx0 4 11 1 &pmx0 5 11 1 | ||
215 | &pmx0 6 11 1 &pmx0 7 11 1>; | ||
216 | interrupt-controller; | ||
217 | #interrupt-cells = <2>; | ||
218 | clocks = <&pclk>; | ||
219 | clock-names = "apb_pclk"; | ||
220 | }; | ||
221 | |||
222 | gpio4: gpio@80a000 { | ||
223 | compatible = "arm,pl061", "arm,primecell"; | ||
224 | reg = <0x80a000 0x1000>; | ||
225 | interrupts = <0 68 0x4>; | ||
226 | gpio-controller; | ||
227 | #gpio-cells = <2>; | ||
228 | gpio-ranges = < &pmx0 0 11 1 &pmx0 1 11 1 &pmx0 2 11 1 | ||
229 | &pmx0 3 11 1 &pmx0 4 12 1 &pmx0 5 12 1 | ||
230 | &pmx0 6 13 1 &pmx0 7 13 1>; | ||
231 | interrupt-controller; | ||
232 | #interrupt-cells = <2>; | ||
233 | clocks = <&pclk>; | ||
234 | clock-names = "apb_pclk"; | ||
235 | }; | ||
236 | |||
237 | gpio5: gpio@80b000 { | ||
238 | compatible = "arm,pl061", "arm,primecell"; | ||
239 | reg = <0x80b000 0x1000>; | ||
240 | interrupts = <0 69 0x4>; | ||
241 | gpio-controller; | ||
242 | #gpio-cells = <2>; | ||
243 | gpio-ranges = < &pmx0 0 14 1 &pmx0 1 15 1 &pmx0 2 16 1 | ||
244 | &pmx0 3 16 1 &pmx0 4 16 1 &pmx0 5 16 1 | ||
245 | &pmx0 6 16 1 &pmx0 7 16 1>; | ||
246 | interrupt-controller; | ||
247 | #interrupt-cells = <2>; | ||
248 | clocks = <&pclk>; | ||
249 | clock-names = "apb_pclk"; | ||
250 | }; | ||
251 | |||
252 | gpio6: gpio@80c000 { | ||
253 | compatible = "arm,pl061", "arm,primecell"; | ||
254 | reg = <0x80c000 0x1000>; | ||
255 | interrupts = <0 70 0x4>; | ||
256 | gpio-controller; | ||
257 | #gpio-cells = <2>; | ||
258 | gpio-ranges = < &pmx0 0 16 1 &pmx0 1 16 1 &pmx0 2 17 1 | ||
259 | &pmx0 3 17 1 &pmx0 4 18 1 &pmx0 5 18 1 | ||
260 | &pmx0 6 18 1 &pmx0 7 19 1>; | ||
261 | interrupt-controller; | ||
262 | #interrupt-cells = <2>; | ||
263 | clocks = <&pclk>; | ||
264 | clock-names = "apb_pclk"; | ||
265 | }; | ||
266 | |||
267 | gpio7: gpio@80d000 { | ||
268 | compatible = "arm,pl061", "arm,primecell"; | ||
269 | reg = <0x80d000 0x1000>; | ||
270 | interrupts = <0 71 0x4>; | ||
271 | gpio-controller; | ||
272 | #gpio-cells = <2>; | ||
273 | gpio-ranges = < &pmx0 0 19 1 &pmx0 1 20 1 &pmx0 2 21 1 | ||
274 | &pmx0 3 22 1 &pmx0 4 23 1 &pmx0 5 24 1 | ||
275 | &pmx0 6 25 1 &pmx0 7 26 1>; | ||
276 | interrupt-controller; | ||
277 | #interrupt-cells = <2>; | ||
278 | clocks = <&pclk>; | ||
279 | clock-names = "apb_pclk"; | ||
280 | }; | ||
281 | |||
282 | gpio8: gpio@80e000 { | ||
283 | compatible = "arm,pl061", "arm,primecell"; | ||
284 | reg = <0x80e000 0x1000>; | ||
285 | interrupts = <0 72 0x4>; | ||
286 | gpio-controller; | ||
287 | #gpio-cells = <2>; | ||
288 | gpio-ranges = < &pmx0 0 27 1 &pmx0 1 28 1 &pmx0 2 29 1 | ||
289 | &pmx0 3 30 1 &pmx0 4 31 1 &pmx0 5 32 1 | ||
290 | &pmx0 6 33 1 &pmx0 7 34 1>; | ||
291 | interrupt-controller; | ||
292 | #interrupt-cells = <2>; | ||
293 | clocks = <&pclk>; | ||
294 | clock-names = "apb_pclk"; | ||
295 | }; | ||
296 | |||
297 | gpio9: gpio@80f000 { | ||
298 | compatible = "arm,pl061", "arm,primecell"; | ||
299 | reg = <0x80f000 0x1000>; | ||
300 | interrupts = <0 73 0x4>; | ||
301 | gpio-controller; | ||
302 | #gpio-cells = <2>; | ||
303 | gpio-ranges = < &pmx0 0 35 1 &pmx0 1 36 1 &pmx0 2 37 1 | ||
304 | &pmx0 3 38 1 &pmx0 4 39 1 &pmx0 5 40 1 | ||
305 | &pmx0 6 41 1>; | ||
306 | interrupt-controller; | ||
307 | #interrupt-cells = <2>; | ||
308 | clocks = <&pclk>; | ||
309 | clock-names = "apb_pclk"; | ||
310 | }; | ||
311 | |||
312 | gpio10: gpio@810000 { | ||
313 | compatible = "arm,pl061", "arm,primecell"; | ||
314 | reg = <0x810000 0x1000>; | ||
315 | interrupts = <0 74 0x4>; | ||
316 | gpio-controller; | ||
317 | #gpio-cells = <2>; | ||
318 | gpio-ranges = < &pmx0 2 43 1 &pmx0 3 44 1 &pmx0 4 45 1 | ||
319 | &pmx0 5 45 1 &pmx0 6 46 1 &pmx0 7 46 1>; | ||
320 | interrupt-controller; | ||
321 | #interrupt-cells = <2>; | ||
322 | clocks = <&pclk>; | ||
323 | clock-names = "apb_pclk"; | ||
324 | }; | ||
325 | |||
326 | gpio11: gpio@811000 { | ||
327 | compatible = "arm,pl061", "arm,primecell"; | ||
328 | reg = <0x811000 0x1000>; | ||
329 | interrupts = <0 75 0x4>; | ||
330 | gpio-controller; | ||
331 | #gpio-cells = <2>; | ||
332 | gpio-ranges = < &pmx0 0 47 1 &pmx0 1 47 1 &pmx0 2 47 1 | ||
333 | &pmx0 3 47 1 &pmx0 4 47 1 &pmx0 5 48 1 | ||
334 | &pmx0 6 49 1 &pmx0 7 49 1>; | ||
335 | interrupt-controller; | ||
336 | #interrupt-cells = <2>; | ||
337 | clocks = <&pclk>; | ||
338 | clock-names = "apb_pclk"; | ||
339 | }; | ||
340 | |||
341 | gpio12: gpio@812000 { | ||
342 | compatible = "arm,pl061", "arm,primecell"; | ||
343 | reg = <0x812000 0x1000>; | ||
344 | interrupts = <0 76 0x4>; | ||
345 | gpio-controller; | ||
346 | #gpio-cells = <2>; | ||
347 | gpio-ranges = < &pmx0 0 49 1 &pmx0 1 50 1 &pmx0 2 49 1 | ||
348 | &pmx0 3 49 1 &pmx0 4 51 1 &pmx0 5 51 1 | ||
349 | &pmx0 6 51 1 &pmx0 7 52 1>; | ||
350 | interrupt-controller; | ||
351 | #interrupt-cells = <2>; | ||
352 | clocks = <&pclk>; | ||
353 | clock-names = "apb_pclk"; | ||
354 | }; | ||
355 | |||
356 | gpio13: gpio@813000 { | ||
357 | compatible = "arm,pl061", "arm,primecell"; | ||
358 | reg = <0x813000 0x1000>; | ||
359 | interrupts = <0 77 0x4>; | ||
360 | gpio-controller; | ||
361 | #gpio-cells = <2>; | ||
362 | gpio-ranges = < &pmx0 0 51 1 &pmx0 1 51 1 &pmx0 2 53 1 | ||
363 | &pmx0 3 53 1 &pmx0 4 53 1 &pmx0 5 54 1 | ||
364 | &pmx0 6 55 1 &pmx0 7 56 1>; | ||
365 | interrupt-controller; | ||
366 | #interrupt-cells = <2>; | ||
367 | clocks = <&pclk>; | ||
368 | clock-names = "apb_pclk"; | ||
369 | }; | ||
370 | |||
371 | gpio14: gpio@814000 { | ||
372 | compatible = "arm,pl061", "arm,primecell"; | ||
373 | reg = <0x814000 0x1000>; | ||
374 | interrupts = <0 78 0x4>; | ||
375 | gpio-controller; | ||
376 | #gpio-cells = <2>; | ||
377 | gpio-ranges = < &pmx0 0 57 1 &pmx0 1 97 1 &pmx0 2 97 1 | ||
378 | &pmx0 3 58 1 &pmx0 4 59 1 &pmx0 5 60 1 | ||
379 | &pmx0 6 60 1 &pmx0 7 61 1>; | ||
380 | interrupt-controller; | ||
381 | #interrupt-cells = <2>; | ||
382 | clocks = <&pclk>; | ||
383 | clock-names = "apb_pclk"; | ||
384 | }; | ||
385 | |||
386 | gpio15: gpio@815000 { | ||
387 | compatible = "arm,pl061", "arm,primecell"; | ||
388 | reg = <0x815000 0x1000>; | ||
389 | interrupts = <0 79 0x4>; | ||
390 | gpio-controller; | ||
391 | #gpio-cells = <2>; | ||
392 | gpio-ranges = < &pmx0 0 61 1 &pmx0 1 62 1 &pmx0 2 62 1 | ||
393 | &pmx0 3 63 1 &pmx0 4 63 1 &pmx0 5 64 1 | ||
394 | &pmx0 6 64 1 &pmx0 7 65 1>; | ||
395 | interrupt-controller; | ||
396 | #interrupt-cells = <2>; | ||
397 | clocks = <&pclk>; | ||
398 | clock-names = "apb_pclk"; | ||
399 | }; | ||
400 | |||
401 | gpio16: gpio@816000 { | ||
402 | compatible = "arm,pl061", "arm,primecell"; | ||
403 | reg = <0x816000 0x1000>; | ||
404 | interrupts = <0 80 0x4>; | ||
405 | gpio-controller; | ||
406 | #gpio-cells = <2>; | ||
407 | gpio-ranges = < &pmx0 0 66 1 &pmx0 1 67 1 &pmx0 2 68 1 | ||
408 | &pmx0 3 69 1 &pmx0 4 70 1 &pmx0 5 71 1 | ||
409 | &pmx0 6 72 1 &pmx0 7 73 1>; | ||
410 | interrupt-controller; | ||
411 | #interrupt-cells = <2>; | ||
412 | clocks = <&pclk>; | ||
413 | clock-names = "apb_pclk"; | ||
414 | }; | ||
415 | |||
416 | gpio17: gpio@817000 { | ||
417 | compatible = "arm,pl061", "arm,primecell"; | ||
418 | reg = <0x817000 0x1000>; | ||
419 | interrupts = <0 81 0x4>; | ||
420 | gpio-controller; | ||
421 | #gpio-cells = <2>; | ||
422 | gpio-ranges = < &pmx0 0 74 1 &pmx0 1 75 1 &pmx0 2 76 1 | ||
423 | &pmx0 3 77 1 &pmx0 4 78 1 &pmx0 5 79 1 | ||
424 | &pmx0 6 80 1 &pmx0 7 81 1>; | ||
425 | interrupt-controller; | ||
426 | #interrupt-cells = <2>; | ||
427 | clocks = <&pclk>; | ||
428 | clock-names = "apb_pclk"; | ||
429 | }; | ||
430 | |||
431 | gpio18: gpio@818000 { | ||
432 | compatible = "arm,pl061", "arm,primecell"; | ||
433 | reg = <0x818000 0x1000>; | ||
434 | interrupts = <0 82 0x4>; | ||
435 | gpio-controller; | ||
436 | #gpio-cells = <2>; | ||
437 | gpio-ranges = < &pmx0 0 82 1 &pmx0 1 83 1 &pmx0 2 83 1 | ||
438 | &pmx0 3 84 1 &pmx0 4 84 1 &pmx0 5 85 1 | ||
439 | &pmx0 6 86 1 &pmx0 7 87 1>; | ||
440 | interrupt-controller; | ||
441 | #interrupt-cells = <2>; | ||
442 | clocks = <&pclk>; | ||
443 | clock-names = "apb_pclk"; | ||
444 | }; | ||
445 | |||
446 | gpio19: gpio@819000 { | ||
447 | compatible = "arm,pl061", "arm,primecell"; | ||
448 | reg = <0x819000 0x1000>; | ||
449 | interrupts = <0 83 0x4>; | ||
450 | gpio-controller; | ||
451 | #gpio-cells = <2>; | ||
452 | gpio-ranges = < &pmx0 0 87 1 &pmx0 1 87 1 &pmx0 2 88 1 | ||
453 | &pmx0 3 88 1>; | ||
454 | interrupt-controller; | ||
455 | #interrupt-cells = <2>; | ||
456 | clocks = <&pclk>; | ||
457 | clock-names = "apb_pclk"; | ||
458 | }; | ||
459 | |||
460 | gpio20: gpio@81a000 { | ||
461 | compatible = "arm,pl061", "arm,primecell"; | ||
462 | reg = <0x81a000 0x1000>; | ||
463 | interrupts = <0 84 0x4>; | ||
464 | gpio-controller; | ||
465 | #gpio-cells = <2>; | ||
466 | gpio-ranges = < &pmx0 0 89 1 &pmx0 1 89 1 &pmx0 2 90 1 | ||
467 | &pmx0 3 90 1 &pmx0 4 91 1 &pmx0 5 92 1>; | ||
468 | interrupt-controller; | ||
469 | #interrupt-cells = <2>; | ||
470 | clocks = <&pclk>; | ||
471 | clock-names = "apb_pclk"; | ||
472 | }; | ||
473 | |||
474 | gpio21: gpio@81b000 { | ||
475 | compatible = "arm,pl061", "arm,primecell"; | ||
476 | reg = <0x81b000 0x1000>; | ||
477 | interrupts = <0 85 0x4>; | ||
478 | gpio-controller; | ||
479 | #gpio-cells = <2>; | ||
480 | gpio-ranges = < &pmx0 3 94 1 &pmx0 7 96 1>; | ||
481 | interrupt-controller; | ||
482 | #interrupt-cells = <2>; | ||
483 | clocks = <&pclk>; | ||
484 | clock-names = "apb_pclk"; | ||
485 | }; | ||
486 | |||
487 | pmx0: pinmux@803000 { | ||
488 | compatible = "pinctrl-single"; | ||
489 | reg = <0x803000 0x188>; | ||
490 | #address-cells = <1>; | ||
491 | #size-cells = <1>; | ||
492 | #gpio-range-cells = <3>; | ||
493 | ranges; | ||
494 | |||
495 | pinctrl-single,register-width = <32>; | ||
496 | pinctrl-single,function-mask = <7>; | ||
497 | /* pin base, nr pins & gpio function */ | ||
498 | pinctrl-single,gpio-range = <&range 0 3 0 &range 3 9 1 | ||
499 | &range 12 1 0 &range 13 29 1 | ||
500 | &range 43 1 0 &range 44 49 1 | ||
501 | &range 94 1 1 &range 96 2 1>; | ||
502 | |||
503 | range: gpio-range { | ||
504 | #pinctrl-single,gpio-range-cells = <3>; | ||
505 | }; | ||
506 | }; | ||
507 | |||
508 | pmx1: pinmux@803800 { | ||
509 | compatible = "pinconf-single"; | ||
510 | reg = <0x803800 0x2dc>; | ||
511 | #address-cells = <1>; | ||
512 | #size-cells = <1>; | ||
513 | ranges; | ||
514 | |||
515 | pinctrl-single,register-width = <32>; | ||
516 | }; | ||
517 | }; | ||
518 | }; | ||
diff --git a/arch/arm/boot/dts/hi4511.dts b/arch/arm/boot/dts/hi4511.dts new file mode 100644 index 000000000000..96e69abfcdaa --- /dev/null +++ b/arch/arm/boot/dts/hi4511.dts | |||
@@ -0,0 +1,648 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012-2013 Linaro Ltd. | ||
3 | * Author: Haojian Zhuang <haojian.zhuang@linaro.org> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 as | ||
7 | * publishhed by the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | /dts-v1/; | ||
11 | /include/ "hi3620.dtsi" | ||
12 | |||
13 | / { | ||
14 | model = "Hisilicon Hi4511 Development Board"; | ||
15 | compatible = "hisilicon,hi3620-hi4511"; | ||
16 | |||
17 | chosen { | ||
18 | bootargs = "console=ttyAMA0,115200 root=/dev/ram0 earlyprintk"; | ||
19 | }; | ||
20 | |||
21 | memory { | ||
22 | device_type = "memory"; | ||
23 | reg = <0x40000000 0x20000000>; | ||
24 | }; | ||
25 | |||
26 | amba { | ||
27 | dual_timer0: dual_timer@800000 { | ||
28 | status = "ok"; | ||
29 | }; | ||
30 | |||
31 | uart0: uart@b00000 { /* console */ | ||
32 | pinctrl-names = "default", "idle"; | ||
33 | pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>; | ||
34 | pinctrl-1 = <&uart0_pmx_idle &uart0_cfg_idle>; | ||
35 | status = "ok"; | ||
36 | }; | ||
37 | |||
38 | uart1: uart@b01000 { /* modem */ | ||
39 | pinctrl-names = "default", "idle"; | ||
40 | pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>; | ||
41 | pinctrl-1 = <&uart1_pmx_idle &uart1_cfg_idle>; | ||
42 | status = "ok"; | ||
43 | }; | ||
44 | |||
45 | uart2: uart@b02000 { /* audience */ | ||
46 | pinctrl-names = "default", "idle"; | ||
47 | pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>; | ||
48 | pinctrl-1 = <&uart2_pmx_idle &uart2_cfg_idle>; | ||
49 | status = "ok"; | ||
50 | }; | ||
51 | |||
52 | uart3: uart@b03000 { | ||
53 | pinctrl-names = "default", "idle"; | ||
54 | pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>; | ||
55 | pinctrl-1 = <&uart3_pmx_idle &uart3_cfg_idle>; | ||
56 | status = "ok"; | ||
57 | }; | ||
58 | |||
59 | uart4: uart@b04000 { | ||
60 | pinctrl-names = "default", "idle"; | ||
61 | pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>; | ||
62 | pinctrl-1 = <&uart4_pmx_idle &uart4_cfg_func>; | ||
63 | status = "ok"; | ||
64 | }; | ||
65 | |||
66 | pmx0: pinmux@803000 { | ||
67 | pinctrl-names = "default"; | ||
68 | pinctrl-0 = <&board_pmx_pins>; | ||
69 | |||
70 | board_pmx_pins: board_pmx_pins { | ||
71 | pinctrl-single,pins = < | ||
72 | 0x008 0x0 /* GPIO -- eFUSE_DOUT */ | ||
73 | 0x100 0x0 /* USIM_CLK & USIM_DATA (IOMG63) */ | ||
74 | >; | ||
75 | }; | ||
76 | uart0_pmx_func: uart0_pmx_func { | ||
77 | pinctrl-single,pins = < | ||
78 | 0x0f0 0x0 | ||
79 | 0x0f4 0x0 /* UART0_RX & UART0_TX */ | ||
80 | >; | ||
81 | }; | ||
82 | uart0_pmx_idle: uart0_pmx_idle { | ||
83 | pinctrl-single,pins = < | ||
84 | /*0x0f0 0x1*/ /* UART0_CTS & UART0_RTS */ | ||
85 | 0x0f4 0x1 /* UART0_RX & UART0_TX */ | ||
86 | >; | ||
87 | }; | ||
88 | uart1_pmx_func: uart1_pmx_func { | ||
89 | pinctrl-single,pins = < | ||
90 | 0x0f8 0x0 /* UART1_CTS & UART1_RTS (IOMG61) */ | ||
91 | 0x0fc 0x0 /* UART1_RX & UART1_TX (IOMG62) */ | ||
92 | >; | ||
93 | }; | ||
94 | uart1_pmx_idle: uart1_pmx_idle { | ||
95 | pinctrl-single,pins = < | ||
96 | 0x0f8 0x1 /* GPIO (IOMG61) */ | ||
97 | 0x0fc 0x1 /* GPIO (IOMG62) */ | ||
98 | >; | ||
99 | }; | ||
100 | uart2_pmx_func: uart2_pmx_func { | ||
101 | pinctrl-single,pins = < | ||
102 | 0x104 0x2 /* UART2_RXD (IOMG96) */ | ||
103 | 0x108 0x2 /* UART2_TXD (IOMG64) */ | ||
104 | >; | ||
105 | }; | ||
106 | uart2_pmx_idle: uart2_pmx_idle { | ||
107 | pinctrl-single,pins = < | ||
108 | 0x104 0x1 /* GPIO (IOMG96) */ | ||
109 | 0x108 0x1 /* GPIO (IOMG64) */ | ||
110 | >; | ||
111 | }; | ||
112 | uart3_pmx_func: uart3_pmx_func { | ||
113 | pinctrl-single,pins = < | ||
114 | 0x160 0x2 /* UART3_CTS & UART3_RTS (IOMG85) */ | ||
115 | 0x164 0x2 /* UART3_RXD & UART3_TXD (IOMG86) */ | ||
116 | >; | ||
117 | }; | ||
118 | uart3_pmx_idle: uart3_pmx_idle { | ||
119 | pinctrl-single,pins = < | ||
120 | 0x160 0x1 /* GPIO (IOMG85) */ | ||
121 | 0x164 0x1 /* GPIO (IOMG86) */ | ||
122 | >; | ||
123 | }; | ||
124 | uart4_pmx_func: uart4_pmx_func { | ||
125 | pinctrl-single,pins = < | ||
126 | 0x168 0x0 /* UART4_CTS & UART4_RTS (IOMG87) */ | ||
127 | 0x16c 0x0 /* UART4_RXD (IOMG88) */ | ||
128 | 0x170 0x0 /* UART4_TXD (IOMG93) */ | ||
129 | >; | ||
130 | }; | ||
131 | uart4_pmx_idle: uart4_pmx_idle { | ||
132 | pinctrl-single,pins = < | ||
133 | 0x168 0x1 /* GPIO (IOMG87) */ | ||
134 | 0x16c 0x1 /* GPIO (IOMG88) */ | ||
135 | 0x170 0x1 /* GPIO (IOMG93) */ | ||
136 | >; | ||
137 | }; | ||
138 | i2c0_pmx_func: i2c0_pmx_func { | ||
139 | pinctrl-single,pins = < | ||
140 | 0x0b4 0x0 /* I2C0_SCL & I2C0_SDA (IOMG45) */ | ||
141 | >; | ||
142 | }; | ||
143 | i2c0_pmx_idle: i2c0_pmx_idle { | ||
144 | pinctrl-single,pins = < | ||
145 | 0x0b4 0x1 /* GPIO (IOMG45) */ | ||
146 | >; | ||
147 | }; | ||
148 | i2c1_pmx_func: i2c1_pmx_func { | ||
149 | pinctrl-single,pins = < | ||
150 | 0x0b8 0x0 /* I2C1_SCL & I2C1_SDA (IOMG46) */ | ||
151 | >; | ||
152 | }; | ||
153 | i2c1_pmx_idle: i2c1_pmx_idle { | ||
154 | pinctrl-single,pins = < | ||
155 | 0x0b8 0x1 /* GPIO (IOMG46) */ | ||
156 | >; | ||
157 | }; | ||
158 | i2c2_pmx_func: i2c2_pmx_func { | ||
159 | pinctrl-single,pins = < | ||
160 | 0x068 0x0 /* I2C2_SCL (IOMG26) */ | ||
161 | 0x06c 0x0 /* I2C2_SDA (IOMG27) */ | ||
162 | >; | ||
163 | }; | ||
164 | i2c2_pmx_idle: i2c2_pmx_idle { | ||
165 | pinctrl-single,pins = < | ||
166 | 0x068 0x1 /* GPIO (IOMG26) */ | ||
167 | 0x06c 0x1 /* GPIO (IOMG27) */ | ||
168 | >; | ||
169 | }; | ||
170 | i2c3_pmx_func: i2c3_pmx_func { | ||
171 | pinctrl-single,pins = < | ||
172 | 0x050 0x2 /* I2C3_SCL (IOMG20) */ | ||
173 | 0x054 0x2 /* I2C3_SDA (IOMG21) */ | ||
174 | >; | ||
175 | }; | ||
176 | i2c3_pmx_idle: i2c3_pmx_idle { | ||
177 | pinctrl-single,pins = < | ||
178 | 0x050 0x1 /* GPIO (IOMG20) */ | ||
179 | 0x054 0x1 /* GPIO (IOMG21) */ | ||
180 | >; | ||
181 | }; | ||
182 | spi0_pmx_func: spi0_pmx_func { | ||
183 | pinctrl-single,pins = < | ||
184 | 0x0d4 0x0 /* SPI0_CLK/SPI0_DI/SPI0_DO (IOMG53) */ | ||
185 | 0x0d8 0x0 /* SPI0_CS0 (IOMG54) */ | ||
186 | 0x0dc 0x0 /* SPI0_CS1 (IOMG55) */ | ||
187 | 0x0e0 0x0 /* SPI0_CS2 (IOMG56) */ | ||
188 | 0x0e4 0x0 /* SPI0_CS3 (IOMG57) */ | ||
189 | >; | ||
190 | }; | ||
191 | spi0_pmx_idle: spi0_pmx_idle { | ||
192 | pinctrl-single,pins = < | ||
193 | 0x0d4 0x1 /* GPIO (IOMG53) */ | ||
194 | 0x0d8 0x1 /* GPIO (IOMG54) */ | ||
195 | 0x0dc 0x1 /* GPIO (IOMG55) */ | ||
196 | 0x0e0 0x1 /* GPIO (IOMG56) */ | ||
197 | 0x0e4 0x1 /* GPIO (IOMG57) */ | ||
198 | >; | ||
199 | }; | ||
200 | spi1_pmx_func: spi1_pmx_func { | ||
201 | pinctrl-single,pins = < | ||
202 | 0x184 0x0 /* SPI1_CLK/SPI1_DI (IOMG98) */ | ||
203 | 0x0e8 0x0 /* SPI1_DO (IOMG58) */ | ||
204 | 0x0ec 0x0 /* SPI1_CS (IOMG95) */ | ||
205 | >; | ||
206 | }; | ||
207 | spi1_pmx_idle: spi1_pmx_idle { | ||
208 | pinctrl-single,pins = < | ||
209 | 0x184 0x1 /* GPIO (IOMG98) */ | ||
210 | 0x0e8 0x1 /* GPIO (IOMG58) */ | ||
211 | 0x0ec 0x1 /* GPIO (IOMG95) */ | ||
212 | >; | ||
213 | }; | ||
214 | kpc_pmx_func: kpc_pmx_func { | ||
215 | pinctrl-single,pins = < | ||
216 | 0x12c 0x0 /* KEY_IN0 (IOMG73) */ | ||
217 | 0x130 0x0 /* KEY_IN1 (IOMG74) */ | ||
218 | 0x134 0x0 /* KEY_IN2 (IOMG75) */ | ||
219 | 0x10c 0x0 /* KEY_OUT0 (IOMG65) */ | ||
220 | 0x110 0x0 /* KEY_OUT1 (IOMG66) */ | ||
221 | 0x114 0x0 /* KEY_OUT2 (IOMG67) */ | ||
222 | >; | ||
223 | }; | ||
224 | kpc_pmx_idle: kpc_pmx_idle { | ||
225 | pinctrl-single,pins = < | ||
226 | 0x12c 0x1 /* GPIO (IOMG73) */ | ||
227 | 0x130 0x1 /* GPIO (IOMG74) */ | ||
228 | 0x134 0x1 /* GPIO (IOMG75) */ | ||
229 | 0x10c 0x1 /* GPIO (IOMG65) */ | ||
230 | 0x110 0x1 /* GPIO (IOMG66) */ | ||
231 | 0x114 0x1 /* GPIO (IOMG67) */ | ||
232 | >; | ||
233 | }; | ||
234 | gpio_key_func: gpio_key_func { | ||
235 | pinctrl-single,pins = < | ||
236 | 0x10c 0x1 /* KEY_OUT0/GPIO (IOMG65) */ | ||
237 | 0x130 0x1 /* KEY_IN1/GPIO (IOMG74) */ | ||
238 | >; | ||
239 | }; | ||
240 | emmc_pmx_func: emmc_pmx_func { | ||
241 | pinctrl-single,pins = < | ||
242 | 0x030 0x2 /* eMMC_CMD/eMMC_CLK (IOMG12) */ | ||
243 | 0x018 0x0 /* NAND_CS3_N (IOMG6) */ | ||
244 | 0x024 0x0 /* NAND_BUSY2_N (IOMG8) */ | ||
245 | 0x028 0x0 /* NAND_BUSY3_N (IOMG9) */ | ||
246 | 0x02c 0x2 /* eMMC_DATA[0:7] (IOMG10) */ | ||
247 | >; | ||
248 | }; | ||
249 | emmc_pmx_idle: emmc_pmx_idle { | ||
250 | pinctrl-single,pins = < | ||
251 | 0x030 0x0 /* GPIO (IOMG12) */ | ||
252 | 0x018 0x1 /* GPIO (IOMG6) */ | ||
253 | 0x024 0x1 /* GPIO (IOMG8) */ | ||
254 | 0x028 0x1 /* GPIO (IOMG9) */ | ||
255 | 0x02c 0x1 /* GPIO (IOMG10) */ | ||
256 | >; | ||
257 | }; | ||
258 | sd_pmx_func: sd_pmx_func { | ||
259 | pinctrl-single,pins = < | ||
260 | 0x0bc 0x0 /* SD_CLK/SD_CMD/SD_DATA0/SD_DATA1/SD_DATA2 (IOMG47) */ | ||
261 | 0x0c0 0x0 /* SD_DATA3 (IOMG48) */ | ||
262 | >; | ||
263 | }; | ||
264 | sd_pmx_idle: sd_pmx_idle { | ||
265 | pinctrl-single,pins = < | ||
266 | 0x0bc 0x1 /* GPIO (IOMG47) */ | ||
267 | 0x0c0 0x1 /* GPIO (IOMG48) */ | ||
268 | >; | ||
269 | }; | ||
270 | nand_pmx_func: nand_pmx_func { | ||
271 | pinctrl-single,pins = < | ||
272 | 0x00c 0x0 /* NAND_ALE/NAND_CLE/.../NAND_DATA[0:7] (IOMG3) */ | ||
273 | 0x010 0x0 /* NAND_CS1_N (IOMG4) */ | ||
274 | 0x014 0x0 /* NAND_CS2_N (IOMG5) */ | ||
275 | 0x018 0x0 /* NAND_CS3_N (IOMG6) */ | ||
276 | 0x01c 0x0 /* NAND_BUSY0_N (IOMG94) */ | ||
277 | 0x020 0x0 /* NAND_BUSY1_N (IOMG7) */ | ||
278 | 0x024 0x0 /* NAND_BUSY2_N (IOMG8) */ | ||
279 | 0x028 0x0 /* NAND_BUSY3_N (IOMG9) */ | ||
280 | 0x02c 0x0 /* NAND_DATA[8:15] (IOMG10) */ | ||
281 | >; | ||
282 | }; | ||
283 | nand_pmx_idle: nand_pmx_idle { | ||
284 | pinctrl-single,pins = < | ||
285 | 0x00c 0x1 /* GPIO (IOMG3) */ | ||
286 | 0x010 0x1 /* GPIO (IOMG4) */ | ||
287 | 0x014 0x1 /* GPIO (IOMG5) */ | ||
288 | 0x018 0x1 /* GPIO (IOMG6) */ | ||
289 | 0x01c 0x1 /* GPIO (IOMG94) */ | ||
290 | 0x020 0x1 /* GPIO (IOMG7) */ | ||
291 | 0x024 0x1 /* GPIO (IOMG8) */ | ||
292 | 0x028 0x1 /* GPIO (IOMG9) */ | ||
293 | 0x02c 0x1 /* GPIO (IOMG10) */ | ||
294 | >; | ||
295 | }; | ||
296 | sdio_pmx_func: sdio_pmx_func { | ||
297 | pinctrl-single,pins = < | ||
298 | 0x0c4 0x0 /* SDIO_CLK/SDIO_CMD/SDIO_DATA[0:3] (IOMG49) */ | ||
299 | >; | ||
300 | }; | ||
301 | sdio_pmx_idle: sdio_pmx_idle { | ||
302 | pinctrl-single,pins = < | ||
303 | 0x0c4 0x1 /* GPIO (IOMG49) */ | ||
304 | >; | ||
305 | }; | ||
306 | audio_out_pmx_func: audio_out_pmx_func { | ||
307 | pinctrl-single,pins = < | ||
308 | 0x0f0 0x1 /* GPIO (IOMG59), audio spk & earphone */ | ||
309 | >; | ||
310 | }; | ||
311 | }; | ||
312 | |||
313 | pmx1: pinmux@803800 { | ||
314 | pinctrl-names = "default"; | ||
315 | pinctrl-0 = < &board_pu_pins &board_pd_pins &board_pd_ps_pins | ||
316 | &board_np_pins &board_ps_pins &kpc_cfg_func | ||
317 | &audio_out_cfg_func>; | ||
318 | board_pu_pins: board_pu_pins { | ||
319 | pinctrl-single,pins = < | ||
320 | 0x014 0 /* GPIO_158 (IOCFG2) */ | ||
321 | 0x018 0 /* GPIO_159 (IOCFG3) */ | ||
322 | 0x01c 0 /* BOOT_MODE0 (IOCFG4) */ | ||
323 | 0x020 0 /* BOOT_MODE1 (IOCFG5) */ | ||
324 | >; | ||
325 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
326 | pinctrl-single,bias-pullup = <1 1 0 1>; | ||
327 | }; | ||
328 | board_pd_pins: board_pd_pins { | ||
329 | pinctrl-single,pins = < | ||
330 | 0x038 0 /* eFUSE_DOUT (IOCFG11) */ | ||
331 | 0x150 0 /* ISP_GPIO8 (IOCFG93) */ | ||
332 | 0x154 0 /* ISP_GPIO9 (IOCFG94) */ | ||
333 | >; | ||
334 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
335 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
336 | }; | ||
337 | board_pd_ps_pins: board_pd_ps_pins { | ||
338 | pinctrl-single,pins = < | ||
339 | 0x2d8 0 /* CLK_OUT0 (IOCFG190) */ | ||
340 | 0x004 0 /* PMU_SPI_DATA (IOCFG192) */ | ||
341 | >; | ||
342 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
343 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
344 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
345 | }; | ||
346 | board_np_pins: board_np_pins { | ||
347 | pinctrl-single,pins = < | ||
348 | 0x24c 0 /* KEYPAD_OUT7 (IOCFG155) */ | ||
349 | >; | ||
350 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
351 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
352 | }; | ||
353 | board_ps_pins: board_ps_pins { | ||
354 | pinctrl-single,pins = < | ||
355 | 0x000 0 /* PMU_SPI_CLK (IOCFG191) */ | ||
356 | 0x008 0 /* PMU_SPI_CS_N (IOCFG193) */ | ||
357 | >; | ||
358 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
359 | }; | ||
360 | uart0_cfg_func: uart0_cfg_func { | ||
361 | pinctrl-single,pins = < | ||
362 | 0x208 0 /* UART0_RXD (IOCFG138) */ | ||
363 | 0x20c 0 /* UART0_TXD (IOCFG139) */ | ||
364 | >; | ||
365 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
366 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
367 | }; | ||
368 | uart0_cfg_idle: uart0_cfg_idle { | ||
369 | pinctrl-single,pins = < | ||
370 | 0x208 0 /* UART0_RXD (IOCFG138) */ | ||
371 | 0x20c 0 /* UART0_TXD (IOCFG139) */ | ||
372 | >; | ||
373 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
374 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
375 | }; | ||
376 | uart1_cfg_func: uart1_cfg_func { | ||
377 | pinctrl-single,pins = < | ||
378 | 0x210 0 /* UART1_CTS (IOCFG140) */ | ||
379 | 0x214 0 /* UART1_RTS (IOCFG141) */ | ||
380 | 0x218 0 /* UART1_RXD (IOCFG142) */ | ||
381 | 0x21c 0 /* UART1_TXD (IOCFG143) */ | ||
382 | >; | ||
383 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
384 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
385 | }; | ||
386 | uart1_cfg_idle: uart1_cfg_idle { | ||
387 | pinctrl-single,pins = < | ||
388 | 0x210 0 /* UART1_CTS (IOCFG140) */ | ||
389 | 0x214 0 /* UART1_RTS (IOCFG141) */ | ||
390 | 0x218 0 /* UART1_RXD (IOCFG142) */ | ||
391 | 0x21c 0 /* UART1_TXD (IOCFG143) */ | ||
392 | >; | ||
393 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
394 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
395 | }; | ||
396 | uart2_cfg_func: uart2_cfg_func { | ||
397 | pinctrl-single,pins = < | ||
398 | 0x220 0 /* UART2_CTS (IOCFG144) */ | ||
399 | 0x224 0 /* UART2_RTS (IOCFG145) */ | ||
400 | 0x228 0 /* UART2_RXD (IOCFG146) */ | ||
401 | 0x22c 0 /* UART2_TXD (IOCFG147) */ | ||
402 | >; | ||
403 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
404 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
405 | }; | ||
406 | uart2_cfg_idle: uart2_cfg_idle { | ||
407 | pinctrl-single,pins = < | ||
408 | 0x220 0 /* GPIO (IOCFG144) */ | ||
409 | 0x224 0 /* GPIO (IOCFG145) */ | ||
410 | 0x228 0 /* GPIO (IOCFG146) */ | ||
411 | 0x22c 0 /* GPIO (IOCFG147) */ | ||
412 | >; | ||
413 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
414 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
415 | }; | ||
416 | uart3_cfg_func: uart3_cfg_func { | ||
417 | pinctrl-single,pins = < | ||
418 | 0x294 0 /* UART3_CTS (IOCFG173) */ | ||
419 | 0x298 0 /* UART3_RTS (IOCFG174) */ | ||
420 | 0x29c 0 /* UART3_RXD (IOCFG175) */ | ||
421 | 0x2a0 0 /* UART3_TXD (IOCFG176) */ | ||
422 | >; | ||
423 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
424 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
425 | }; | ||
426 | uart3_cfg_idle: uart3_cfg_idle { | ||
427 | pinctrl-single,pins = < | ||
428 | 0x294 0 /* UART3_CTS (IOCFG173) */ | ||
429 | 0x298 0 /* UART3_RTS (IOCFG174) */ | ||
430 | 0x29c 0 /* UART3_RXD (IOCFG175) */ | ||
431 | 0x2a0 0 /* UART3_TXD (IOCFG176) */ | ||
432 | >; | ||
433 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
434 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
435 | }; | ||
436 | uart4_cfg_func: uart4_cfg_func { | ||
437 | pinctrl-single,pins = < | ||
438 | 0x2a4 0 /* UART4_CTS (IOCFG177) */ | ||
439 | 0x2a8 0 /* UART4_RTS (IOCFG178) */ | ||
440 | 0x2ac 0 /* UART4_RXD (IOCFG179) */ | ||
441 | 0x2b0 0 /* UART4_TXD (IOCFG180) */ | ||
442 | >; | ||
443 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
444 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
445 | }; | ||
446 | i2c0_cfg_func: i2c0_cfg_func { | ||
447 | pinctrl-single,pins = < | ||
448 | 0x17c 0 /* I2C0_SCL (IOCFG103) */ | ||
449 | 0x180 0 /* I2C0_SDA (IOCFG104) */ | ||
450 | >; | ||
451 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
452 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
453 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
454 | }; | ||
455 | i2c1_cfg_func: i2c1_cfg_func { | ||
456 | pinctrl-single,pins = < | ||
457 | 0x184 0 /* I2C1_SCL (IOCFG105) */ | ||
458 | 0x188 0 /* I2C1_SDA (IOCFG106) */ | ||
459 | >; | ||
460 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
461 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
462 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
463 | }; | ||
464 | i2c2_cfg_func: i2c2_cfg_func { | ||
465 | pinctrl-single,pins = < | ||
466 | 0x118 0 /* I2C2_SCL (IOCFG79) */ | ||
467 | 0x11c 0 /* I2C2_SDA (IOCFG80) */ | ||
468 | >; | ||
469 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
470 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
471 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
472 | }; | ||
473 | i2c3_cfg_func: i2c3_cfg_func { | ||
474 | pinctrl-single,pins = < | ||
475 | 0x100 0 /* I2C3_SCL (IOCFG73) */ | ||
476 | 0x104 0 /* I2C3_SDA (IOCFG74) */ | ||
477 | >; | ||
478 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
479 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
480 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
481 | }; | ||
482 | spi0_cfg_func1: spi0_cfg_func1 { | ||
483 | pinctrl-single,pins = < | ||
484 | 0x1d4 0 /* SPI0_CLK (IOCFG125) */ | ||
485 | 0x1d8 0 /* SPI0_DI (IOCFG126) */ | ||
486 | 0x1dc 0 /* SPI0_DO (IOCFG127) */ | ||
487 | >; | ||
488 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
489 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
490 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
491 | }; | ||
492 | spi0_cfg_func2: spi0_cfg_func2 { | ||
493 | pinctrl-single,pins = < | ||
494 | 0x1e0 0 /* SPI0_CS0 (IOCFG128) */ | ||
495 | 0x1e4 0 /* SPI0_CS1 (IOCFG129) */ | ||
496 | 0x1e8 0 /* SPI0_CS2 (IOCFG130 */ | ||
497 | 0x1ec 0 /* SPI0_CS3 (IOCFG131) */ | ||
498 | >; | ||
499 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
500 | pinctrl-single,bias-pullup = <1 1 0 1>; | ||
501 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
502 | }; | ||
503 | spi1_cfg_func1: spi1_cfg_func1 { | ||
504 | pinctrl-single,pins = < | ||
505 | 0x1f0 0 /* SPI1_CLK (IOCFG132) */ | ||
506 | 0x1f4 0 /* SPI1_DI (IOCFG133) */ | ||
507 | 0x1f8 0 /* SPI1_DO (IOCFG134) */ | ||
508 | >; | ||
509 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
510 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
511 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
512 | }; | ||
513 | spi1_cfg_func2: spi1_cfg_func2 { | ||
514 | pinctrl-single,pins = < | ||
515 | 0x1fc 0 /* SPI1_CS (IOCFG135) */ | ||
516 | >; | ||
517 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
518 | pinctrl-single,bias-pullup = <1 1 0 1>; | ||
519 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
520 | }; | ||
521 | kpc_cfg_func: kpc_cfg_func { | ||
522 | pinctrl-single,pins = < | ||
523 | 0x250 0 /* KEY_IN0 (IOCFG156) */ | ||
524 | 0x254 0 /* KEY_IN1 (IOCFG157) */ | ||
525 | 0x258 0 /* KEY_IN2 (IOCFG158) */ | ||
526 | 0x230 0 /* KEY_OUT0 (IOCFG148) */ | ||
527 | 0x234 0 /* KEY_OUT1 (IOCFG149) */ | ||
528 | 0x238 0 /* KEY_OUT2 (IOCFG150) */ | ||
529 | >; | ||
530 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
531 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
532 | }; | ||
533 | emmc_cfg_func: emmc_cfg_func { | ||
534 | pinctrl-single,pins = < | ||
535 | 0x0ac 0 /* eMMC_CMD (IOCFG40) */ | ||
536 | 0x0b0 0 /* eMMC_CLK (IOCFG41) */ | ||
537 | 0x058 0 /* NAND_CS3_N (IOCFG19) */ | ||
538 | 0x064 0 /* NAND_BUSY2_N (IOCFG22) */ | ||
539 | 0x068 0 /* NAND_BUSY3_N (IOCFG23) */ | ||
540 | 0x08c 0 /* NAND_DATA8 (IOCFG32) */ | ||
541 | 0x090 0 /* NAND_DATA9 (IOCFG33) */ | ||
542 | 0x094 0 /* NAND_DATA10 (IOCFG34) */ | ||
543 | 0x098 0 /* NAND_DATA11 (IOCFG35) */ | ||
544 | 0x09c 0 /* NAND_DATA12 (IOCFG36) */ | ||
545 | 0x0a0 0 /* NAND_DATA13 (IOCFG37) */ | ||
546 | 0x0a4 0 /* NAND_DATA14 (IOCFG38) */ | ||
547 | 0x0a8 0 /* NAND_DATA15 (IOCFG39) */ | ||
548 | >; | ||
549 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
550 | pinctrl-single,bias-pullup = <1 1 0 1>; | ||
551 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
552 | }; | ||
553 | sd_cfg_func1: sd_cfg_func1 { | ||
554 | pinctrl-single,pins = < | ||
555 | 0x18c 0 /* SD_CLK (IOCFG107) */ | ||
556 | 0x190 0 /* SD_CMD (IOCFG108) */ | ||
557 | >; | ||
558 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
559 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
560 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
561 | }; | ||
562 | sd_cfg_func2: sd_cfg_func2 { | ||
563 | pinctrl-single,pins = < | ||
564 | 0x194 0 /* SD_DATA0 (IOCFG109) */ | ||
565 | 0x198 0 /* SD_DATA1 (IOCFG110) */ | ||
566 | 0x19c 0 /* SD_DATA2 (IOCFG111) */ | ||
567 | 0x1a0 0 /* SD_DATA3 (IOCFG112) */ | ||
568 | >; | ||
569 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
570 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
571 | pinctrl-single,drive-strength = <0x70 0xf0>; | ||
572 | }; | ||
573 | nand_cfg_func1: nand_cfg_func1 { | ||
574 | pinctrl-single,pins = < | ||
575 | 0x03c 0 /* NAND_ALE (IOCFG12) */ | ||
576 | 0x040 0 /* NAND_CLE (IOCFG13) */ | ||
577 | 0x06c 0 /* NAND_DATA0 (IOCFG24) */ | ||
578 | 0x070 0 /* NAND_DATA1 (IOCFG25) */ | ||
579 | 0x074 0 /* NAND_DATA2 (IOCFG26) */ | ||
580 | 0x078 0 /* NAND_DATA3 (IOCFG27) */ | ||
581 | 0x07c 0 /* NAND_DATA4 (IOCFG28) */ | ||
582 | 0x080 0 /* NAND_DATA5 (IOCFG29) */ | ||
583 | 0x084 0 /* NAND_DATA6 (IOCFG30) */ | ||
584 | 0x088 0 /* NAND_DATA7 (IOCFG31) */ | ||
585 | 0x08c 0 /* NAND_DATA8 (IOCFG32) */ | ||
586 | 0x090 0 /* NAND_DATA9 (IOCFG33) */ | ||
587 | 0x094 0 /* NAND_DATA10 (IOCFG34) */ | ||
588 | 0x098 0 /* NAND_DATA11 (IOCFG35) */ | ||
589 | 0x09c 0 /* NAND_DATA12 (IOCFG36) */ | ||
590 | 0x0a0 0 /* NAND_DATA13 (IOCFG37) */ | ||
591 | 0x0a4 0 /* NAND_DATA14 (IOCFG38) */ | ||
592 | 0x0a8 0 /* NAND_DATA15 (IOCFG39) */ | ||
593 | >; | ||
594 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
595 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
596 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
597 | }; | ||
598 | nand_cfg_func2: nand_cfg_func2 { | ||
599 | pinctrl-single,pins = < | ||
600 | 0x044 0 /* NAND_RE_N (IOCFG14) */ | ||
601 | 0x048 0 /* NAND_WE_N (IOCFG15) */ | ||
602 | 0x04c 0 /* NAND_CS0_N (IOCFG16) */ | ||
603 | 0x050 0 /* NAND_CS1_N (IOCFG17) */ | ||
604 | 0x054 0 /* NAND_CS2_N (IOCFG18) */ | ||
605 | 0x058 0 /* NAND_CS3_N (IOCFG19) */ | ||
606 | 0x05c 0 /* NAND_BUSY0_N (IOCFG20) */ | ||
607 | 0x060 0 /* NAND_BUSY1_N (IOCFG21) */ | ||
608 | 0x064 0 /* NAND_BUSY2_N (IOCFG22) */ | ||
609 | 0x068 0 /* NAND_BUSY3_N (IOCFG23) */ | ||
610 | >; | ||
611 | pinctrl-single,bias-pulldown = <0 2 0 2>; | ||
612 | pinctrl-single,bias-pullup = <1 1 0 1>; | ||
613 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
614 | }; | ||
615 | sdio_cfg_func: sdio_cfg_func { | ||
616 | pinctrl-single,pins = < | ||
617 | 0x1a4 0 /* SDIO0_CLK (IOCG113) */ | ||
618 | 0x1a8 0 /* SDIO0_CMD (IOCG114) */ | ||
619 | 0x1ac 0 /* SDIO0_DATA0 (IOCG115) */ | ||
620 | 0x1b0 0 /* SDIO0_DATA1 (IOCG116) */ | ||
621 | 0x1b4 0 /* SDIO0_DATA2 (IOCG117) */ | ||
622 | 0x1b8 0 /* SDIO0_DATA3 (IOCG118) */ | ||
623 | >; | ||
624 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
625 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
626 | pinctrl-single,drive-strength = <0x30 0xf0>; | ||
627 | }; | ||
628 | audio_out_cfg_func: audio_out_cfg_func { | ||
629 | pinctrl-single,pins = < | ||
630 | 0x200 0 /* GPIO (IOCFG136) */ | ||
631 | 0x204 0 /* GPIO (IOCFG137) */ | ||
632 | >; | ||
633 | pinctrl-single,bias-pulldown = <2 2 0 2>; | ||
634 | pinctrl-single,bias-pullup = <0 1 0 1>; | ||
635 | }; | ||
636 | }; | ||
637 | }; | ||
638 | |||
639 | gpio-keys { | ||
640 | compatible = "gpio-keys"; | ||
641 | |||
642 | call { | ||
643 | label = "call"; | ||
644 | gpios = <&gpio17 2 0>; | ||
645 | linux,code = <169>; /* KEY_PHONE */ | ||
646 | }; | ||
647 | }; | ||
648 | }; | ||