blob: 886b93c5893a09b8e2e7bf22ee8afba3a5f9a045 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0
2/*
3 * dts file for Hisilicon Hi3670 SoC
4 *
5 * Copyright (C) 2016, HiSilicon Ltd.
6 * Copyright (C) 2018, Linaro Ltd.
7 */
8
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/clock/hi3670-clock.h>
11
12/ {
13 compatible = "hisilicon,hi3670";
14 interrupt-parent = <&gic>;
15 #address-cells = <2>;
16 #size-cells = <2>;
17
18 psci {
19 compatible = "arm,psci-0.2";
20 method = "smc";
21 };
22
23 cpus {
24 #address-cells = <2>;
25 #size-cells = <0>;
26
27 cpu-map {
28 cluster0 {
29 core0 {
30 cpu = <&cpu0>;
31 };
32 core1 {
33 cpu = <&cpu1>;
34 };
35 core2 {
36 cpu = <&cpu2>;
37 };
38 core3 {
39 cpu = <&cpu3>;
40 };
41 };
42 cluster1 {
43 core0 {
44 cpu = <&cpu4>;
45 };
46 core1 {
47 cpu = <&cpu5>;
48 };
49 core2 {
50 cpu = <&cpu6>;
51 };
52 core3 {
53 cpu = <&cpu7>;
54 };
55 };
56 };
57
58 cpu0: cpu@0 {
59 compatible = "arm,cortex-a53";
60 device_type = "cpu";
61 reg = <0x0 0x0>;
62 enable-method = "psci";
63 };
64
65 cpu1: cpu@1 {
66 compatible = "arm,cortex-a53";
67 device_type = "cpu";
68 reg = <0x0 0x1>;
69 enable-method = "psci";
70 };
71
72 cpu2: cpu@2 {
73 compatible = "arm,cortex-a53";
74 device_type = "cpu";
75 reg = <0x0 0x2>;
76 enable-method = "psci";
77 };
78
79 cpu3: cpu@3 {
80 compatible = "arm,cortex-a53";
81 device_type = "cpu";
82 reg = <0x0 0x3>;
83 enable-method = "psci";
84 };
85
86 cpu4: cpu@100 {
87 compatible = "arm,cortex-a73";
88 device_type = "cpu";
89 reg = <0x0 0x100>;
90 enable-method = "psci";
91 };
92
93 cpu5: cpu@101 {
94 compatible = "arm,cortex-a73";
95 device_type = "cpu";
96 reg = <0x0 0x101>;
97 enable-method = "psci";
98 };
99
100 cpu6: cpu@102 {
101 compatible = "arm,cortex-a73";
102 device_type = "cpu";
103 reg = <0x0 0x102>;
104 enable-method = "psci";
105 };
106
107 cpu7: cpu@103 {
108 compatible = "arm,cortex-a73";
109 device_type = "cpu";
110 reg = <0x0 0x103>;
111 enable-method = "psci";
112 };
113 };
114
115 gic: interrupt-controller@e82b0000 {
116 compatible = "arm,gic-400";
117 reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
118 <0x0 0xe82b2000 0 0x2000>, /* GICC */
119 <0x0 0xe82b4000 0 0x2000>, /* GICH */
120 <0x0 0xe82b6000 0 0x2000>; /* GICV */
121 #interrupt-cells = <3>;
122 #address-cells = <0>;
123 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
124 IRQ_TYPE_LEVEL_HIGH)>;
125 interrupt-controller;
126 };
127
128 timer {
129 compatible = "arm,armv8-timer";
130 interrupt-parent = <&gic>;
131 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
132 IRQ_TYPE_LEVEL_LOW)>,
133 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
134 IRQ_TYPE_LEVEL_LOW)>,
135 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
136 IRQ_TYPE_LEVEL_LOW)>,
137 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
138 IRQ_TYPE_LEVEL_LOW)>;
139 clock-frequency = <1920000>;
140 };
141
142 soc {
143 compatible = "simple-bus";
144 #address-cells = <2>;
145 #size-cells = <2>;
146 ranges;
147
148 crg_ctrl: crg_ctrl@fff35000 {
149 compatible = "hisilicon,hi3670-crgctrl", "syscon";
150 reg = <0x0 0xfff35000 0x0 0x1000>;
151 #clock-cells = <1>;
152 };
153
154 crg_rst: crg_rst_controller {
155 compatible = "hisilicon,hi3670-reset",
156 "hisilicon,hi3660-reset";
157 #reset-cells = <2>;
158 hisi,rst-syscon = <&crg_ctrl>;
159 };
160
161 pctrl: pctrl@e8a09000 {
162 compatible = "hisilicon,hi3670-pctrl", "syscon";
163 reg = <0x0 0xe8a09000 0x0 0x1000>;
164 #clock-cells = <1>;
165 };
166
167 pmuctrl: crg_ctrl@fff34000 {
168 compatible = "hisilicon,hi3670-pmuctrl", "syscon";
169 reg = <0x0 0xfff34000 0x0 0x1000>;
170 #clock-cells = <1>;
171 };
172
173 sctrl: sctrl@fff0a000 {
174 compatible = "hisilicon,hi3670-sctrl", "syscon";
175 reg = <0x0 0xfff0a000 0x0 0x1000>;
176 #clock-cells = <1>;
177 };
178
179 iomcu: iomcu@ffd7e000 {
180 compatible = "hisilicon,hi3670-iomcu", "syscon";
181 reg = <0x0 0xffd7e000 0x0 0x1000>;
182 #clock-cells = <1>;
183 };
184
185 media1_crg: media1_crgctrl@e87ff000 {
186 compatible = "hisilicon,hi3670-media1-crg", "syscon";
187 reg = <0x0 0xe87ff000 0x0 0x1000>;
188 #clock-cells = <1>;
189 };
190
191 media2_crg: media2_crgctrl@e8900000 {
192 compatible = "hisilicon,hi3670-media2-crg","syscon";
193 reg = <0x0 0xe8900000 0x0 0x1000>;
194 #clock-cells = <1>;
195 };
196
197 iomcu_rst: reset {
198 compatible = "hisilicon,hi3660-reset";
199 hisi,rst-syscon = <&iomcu>;
200 #reset-cells = <2>;
201 };
202
203 uart0: serial@fdf02000 {
204 compatible = "arm,pl011", "arm,primecell";
205 reg = <0x0 0xfdf02000 0x0 0x1000>;
206 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
207 clocks = <&crg_ctrl HI3670_CLK_GATE_UART0>,
208 <&crg_ctrl HI3670_PCLK>;
209 clock-names = "uartclk", "apb_pclk";
210 pinctrl-names = "default";
211 pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
212 status = "disabled";
213 };
214
215 uart1: serial@fdf00000 {
216 compatible = "arm,pl011", "arm,primecell";
217 reg = <0x0 0xfdf00000 0x0 0x1000>;
218 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
219 clocks = <&crg_ctrl HI3670_CLK_GATE_UART1>,
220 <&crg_ctrl HI3670_PCLK>;
221 clock-names = "uartclk", "apb_pclk";
222 status = "disabled";
223 };
224
225 uart2: serial@fdf03000 {
226 compatible = "arm,pl011", "arm,primecell";
227 reg = <0x0 0xfdf03000 0x0 0x1000>;
228 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
229 clocks = <&crg_ctrl HI3670_CLK_GATE_UART2>,
230 <&crg_ctrl HI3670_PCLK>;
231 clock-names = "uartclk", "apb_pclk";
232 pinctrl-names = "default";
233 pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
234 status = "disabled";
235 };
236
237 uart3: serial@ffd74000 {
238 compatible = "arm,pl011", "arm,primecell";
239 reg = <0x0 0xffd74000 0x0 0x1000>;
240 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
241 clocks = <&crg_ctrl HI3670_CLK_GATE_UART3>,
242 <&crg_ctrl HI3670_PCLK>;
243 clock-names = "uartclk", "apb_pclk";
244 pinctrl-names = "default";
245 pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
246 status = "disabled";
247 };
248
249 uart4: serial@fdf01000 {
250 compatible = "arm,pl011", "arm,primecell";
251 reg = <0x0 0xfdf01000 0x0 0x1000>;
252 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
253 clocks = <&crg_ctrl HI3670_CLK_GATE_UART4>,
254 <&crg_ctrl HI3670_PCLK>;
255 clock-names = "uartclk", "apb_pclk";
256 pinctrl-names = "default";
257 pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
258 status = "disabled";
259 };
260
261 uart5: serial@fdf05000 {
262 compatible = "arm,pl011", "arm,primecell";
263 reg = <0x0 0xfdf05000 0x0 0x1000>;
264 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
265 clocks = <&crg_ctrl HI3670_CLK_GATE_UART5>,
266 <&crg_ctrl HI3670_PCLK>;
267 clock-names = "uartclk", "apb_pclk";
268 status = "disabled";
269 };
270
271 uart6: serial@fff32000 {
272 compatible = "arm,pl011", "arm,primecell";
273 reg = <0x0 0xfff32000 0x0 0x1000>;
274 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
275 clocks = <&crg_ctrl HI3670_CLK_UART6>,
276 <&crg_ctrl HI3670_PCLK>;
277 clock-names = "uartclk", "apb_pclk";
278 pinctrl-names = "default";
279 pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>;
280 status = "disabled";
281 };
282
283 gpio0: gpio@e8a0b000 {
284 compatible = "arm,pl061", "arm,primecell";
285 reg = <0x0 0xe8a0b000 0x0 0x1000>;
286 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
287 gpio-controller;
288 #gpio-cells = <2>;
289 gpio-ranges = <&pmx0 1 0 1 &pmx0 3 1 5>;
290 interrupt-controller;
291 #interrupt-cells = <2>;
292 clocks = <&crg_ctrl HI3670_PCLK_GPIO0>;
293 clock-names = "apb_pclk";
294 };
295
296 gpio1: gpio@e8a0c000 {
297 compatible = "arm,pl061", "arm,primecell";
298 reg = <0x0 0xe8a0c000 0x0 0x1000>;
299 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
300 gpio-controller;
301 #gpio-cells = <2>;
302 interrupt-controller;
303 #interrupt-cells = <2>;
304 clocks = <&crg_ctrl HI3670_PCLK_GPIO1>;
305 clock-names = "apb_pclk";
306 };
307
308 gpio2: gpio@e8a0d000 {
309 compatible = "arm,pl061", "arm,primecell";
310 reg = <0x0 0xe8a0d000 0x0 0x1000>;
311 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
312 gpio-controller;
313 #gpio-cells = <2>;
314 gpio-ranges = <&pmx0 1 6 7>;
315 interrupt-controller;
316 #interrupt-cells = <2>;
317 clocks = <&crg_ctrl HI3670_PCLK_GPIO2>;
318 clock-names = "apb_pclk";
319 };
320
321 gpio3: gpio@e8a0e000 {
322 compatible = "arm,pl061", "arm,primecell";
323 reg = <0x0 0xe8a0e000 0x0 0x1000>;
324 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
325 gpio-controller;
326 #gpio-cells = <2>;
327 gpio-ranges = <&pmx0 0 13 4 &pmx0 7 17 1>;
328 interrupt-controller;
329 #interrupt-cells = <2>;
330 clocks = <&crg_ctrl HI3670_PCLK_GPIO3>;
331 clock-names = "apb_pclk";
332 };
333
334 gpio4: gpio@e8a0f000 {
335 compatible = "arm,pl061", "arm,primecell";
336 reg = <0x0 0xe8a0f000 0x0 0x1000>;
337 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
338 gpio-controller;
339 #gpio-cells = <2>;
340 gpio-ranges = <&pmx0 0 18 8>;
341 interrupt-controller;
342 #interrupt-cells = <2>;
343 clocks = <&crg_ctrl HI3670_PCLK_GPIO4>;
344 clock-names = "apb_pclk";
345 };
346
347 gpio5: gpio@e8a10000 {
348 compatible = "arm,pl061", "arm,primecell";
349 reg = <0x0 0xe8a10000 0x0 0x1000>;
350 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
351 gpio-controller;
352 #gpio-cells = <2>;
353 gpio-ranges = <&pmx0 0 26 8>;
354 interrupt-controller;
355 #interrupt-cells = <2>;
356 clocks = <&crg_ctrl HI3670_PCLK_GPIO5>;
357 clock-names = "apb_pclk";
358 };
359
360 gpio6: gpio@e8a11000 {
361 compatible = "arm,pl061", "arm,primecell";
362 reg = <0x0 0xe8a11000 0x0 0x1000>;
363 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
364 gpio-controller;
365 #gpio-cells = <2>;
366 gpio-ranges = <&pmx0 1 34 7>;
367 interrupt-controller;
368 #interrupt-cells = <2>;
369 clocks = <&crg_ctrl HI3670_PCLK_GPIO6>;
370 clock-names = "apb_pclk";
371 };
372
373 gpio7: gpio@e8a12000 {
374 compatible = "arm,pl061", "arm,primecell";
375 reg = <0x0 0xe8a12000 0x0 0x1000>;
376 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
377 gpio-controller;
378 #gpio-cells = <2>;
379 gpio-ranges = <&pmx0 0 41 8>;
380 interrupt-controller;
381 #interrupt-cells = <2>;
382 clocks = <&crg_ctrl HI3670_PCLK_GPIO7>;
383 clock-names = "apb_pclk";
384 };
385
386 gpio8: gpio@e8a13000 {
387 compatible = "arm,pl061", "arm,primecell";
388 reg = <0x0 0xe8a13000 0x0 0x1000>;
389 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
390 gpio-controller;
391 #gpio-cells = <2>;
392 gpio-ranges = <&pmx0 0 49 8>;
393 interrupt-controller;
394 #interrupt-cells = <2>;
395 clocks = <&crg_ctrl HI3670_PCLK_GPIO8>;
396 clock-names = "apb_pclk";
397 };
398
399 gpio9: gpio@e8a14000 {
400 compatible = "arm,pl061", "arm,primecell";
401 reg = <0x0 0xe8a14000 0x0 0x1000>;
402 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
403 gpio-controller;
404 #gpio-cells = <2>;
405 gpio-ranges = <&pmx0 0 57 8>;
406 interrupt-controller;
407 #interrupt-cells = <2>;
408 clocks = <&crg_ctrl HI3670_PCLK_GPIO9>;
409 clock-names = "apb_pclk";
410 };
411
412 gpio10: gpio@e8a15000 {
413 compatible = "arm,pl061", "arm,primecell";
414 reg = <0x0 0xe8a15000 0x0 0x1000>;
415 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
416 gpio-controller;
417 #gpio-cells = <2>;
418 gpio-ranges = <&pmx0 0 65 8>;
419 interrupt-controller;
420 #interrupt-cells = <2>;
421 clocks = <&crg_ctrl HI3670_PCLK_GPIO10>;
422 clock-names = "apb_pclk";
423 };
424
425 gpio11: gpio@e8a16000 {
426 compatible = "arm,pl061", "arm,primecell";
427 reg = <0x0 0xe8a16000 0x0 0x1000>;
428 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
429 gpio-controller;
430 #gpio-cells = <2>;
431 gpio-ranges = <&pmx0 0 73 8>;
432 interrupt-controller;
433 #interrupt-cells = <2>;
434 clocks = <&crg_ctrl HI3670_PCLK_GPIO11>;
435 clock-names = "apb_pclk";
436 };
437
438 gpio12: gpio@e8a17000 {
439 compatible = "arm,pl061", "arm,primecell";
440 reg = <0x0 0xe8a17000 0x0 0x1000>;
441 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
442 gpio-controller;
443 #gpio-cells = <2>;
444 gpio-ranges = <&pmx0 0 81 1>;
445 interrupt-controller;
446 #interrupt-cells = <2>;
447 clocks = <&crg_ctrl HI3670_PCLK_GPIO12>;
448 clock-names = "apb_pclk";
449 };
450
451 gpio13: gpio@e8a18000 {
452 compatible = "arm,pl061", "arm,primecell";
453 reg = <0x0 0xe8a18000 0x0 0x1000>;
454 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
455 gpio-controller;
456 #gpio-cells = <2>;
457 interrupt-controller;
458 #interrupt-cells = <2>;
459 clocks = <&crg_ctrl HI3670_PCLK_GPIO13>;
460 clock-names = "apb_pclk";
461 };
462
463 gpio14: gpio@e8a19000 {
464 compatible = "arm,pl061", "arm,primecell";
465 reg = <0x0 0xe8a19000 0x0 0x1000>;
466 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
467 gpio-controller;
468 #gpio-cells = <2>;
469 interrupt-controller;
470 #interrupt-cells = <2>;
471 clocks = <&crg_ctrl HI3670_PCLK_GPIO14>;
472 clock-names = "apb_pclk";
473 };
474
475 gpio15: gpio@e8a1a000 {
476 compatible = "arm,pl061", "arm,primecell";
477 reg = <0x0 0xe8a1a000 0x0 0x1000>;
478 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
479 gpio-controller;
480 #gpio-cells = <2>;
481 interrupt-controller;
482 #interrupt-cells = <2>;
483 clocks = <&crg_ctrl HI3670_PCLK_GPIO15>;
484 clock-names = "apb_pclk";
485 };
486
487 gpio16: gpio@e8a1b000 {
488 compatible = "arm,pl061", "arm,primecell";
489 reg = <0x0 0xe8a1b000 0x0 0x1000>;
490 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
491 gpio-controller;
492 #gpio-cells = <2>;
493 gpio-ranges = <&pmx5 0 0 8>;
494 interrupt-controller;
495 #interrupt-cells = <2>;
496 clocks = <&crg_ctrl HI3670_PCLK_GPIO16>;
497 clock-names = "apb_pclk";
498 };
499
500 gpio17: gpio@e8a1c000 {
501 compatible = "arm,pl061", "arm,primecell";
502 reg = <0x0 0xe8a1c000 0x0 0x1000>;
503 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
504 gpio-controller;
505 #gpio-cells = <2>;
506 gpio-ranges = <&pmx5 0 8 2>;
507 interrupt-controller;
508 #interrupt-cells = <2>;
509 clocks = <&crg_ctrl HI3670_PCLK_GPIO17>;
510 clock-names = "apb_pclk";
511 };
512
513 gpio18: gpio@fff28000 {
514 compatible = "arm,pl061", "arm,primecell";
515 reg = <0x0 0xfff28000 0x0 0x1000>;
516 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
517 gpio-controller;
518 #gpio-cells = <2>;
519 gpio-ranges = <&pmx1 4 42 4>;
520 interrupt-controller;
521 #interrupt-cells = <2>;
522 clocks = <&sctrl HI3670_PCLK_GPIO18>;
523 clock-names = "apb_pclk";
524 };
525
526 gpio19: gpio@fff29000 {
527 compatible = "arm,pl061", "arm,primecell";
528 reg = <0x0 0xfff29000 0x0 0x1000>;
529 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
530 gpio-controller;
531 #gpio-cells = <2>;
532 gpio-ranges = <&pmx1 0 61 2>;
533 interrupt-controller;
534 #interrupt-cells = <2>;
535 clocks = <&sctrl HI3670_PCLK_GPIO19>;
536 clock-names = "apb_pclk";
537 };
538
539 gpio20: gpio@e8a1f000 {
540 compatible = "arm,pl061", "arm,primecell";
541 reg = <0x0 0xe8a1f000 0x0 0x1000>;
542 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
543 gpio-controller;
544 #gpio-cells = <2>;
545 gpio-ranges = <&pmx7 0 0 8>;
546 interrupt-controller;
547 #interrupt-cells = <2>;
548 clocks = <&crg_ctrl HI3670_PCLK_GPIO20>;
549 clock-names = "apb_pclk";
550 };
551
552 gpio21: gpio@e8a20000 {
553 compatible = "arm,pl061", "arm,primecell";
554 reg = <0x0 0xe8a20000 0x0 0x1000>;
555 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
556 gpio-controller;
557 #gpio-cells = <2>;
558 gpio-ranges = <&pmx7 0 8 4>;
559 interrupt-controller;
560 #interrupt-cells = <2>;
561 clocks = <&crg_ctrl HI3670_PCLK_GPIO21>;
562 clock-names = "apb_pclk";
563 };
564
565 gpio22: gpio@fff0b000 {
566 compatible = "arm,pl061", "arm,primecell";
567 reg = <0x0 0xfff0b000 0x0 0x1000>;
568 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
569 gpio-controller;
570 #gpio-cells = <2>;
571 /* GPIO176 */
572 gpio-ranges = <&pmx1 2 0 6>;
573 interrupt-controller;
574 #interrupt-cells = <2>;
575 clocks = <&sctrl HI3670_PCLK_AO_GPIO0>;
576 clock-names = "apb_pclk";
577 };
578
579 gpio23: gpio@fff0c000 {
580 compatible = "arm,pl061", "arm,primecell";
581 reg = <0x0 0xfff0c000 0x0 0x1000>;
582 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
583 gpio-controller;
584 #gpio-cells = <2>;
585 /* GPIO184 */
586 gpio-ranges = <&pmx1 0 6 8>;
587 interrupt-controller;
588 #interrupt-cells = <2>;
589 clocks = <&sctrl HI3670_PCLK_AO_GPIO1>;
590 clock-names = "apb_pclk";
591 };
592
593 gpio24: gpio@fff0d000 {
594 compatible = "arm,pl061", "arm,primecell";
595 reg = <0x0 0xfff0d000 0x0 0x1000>;
596 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
597 gpio-controller;
598 #gpio-cells = <2>;
599 /* GPIO192 */
600 gpio-ranges = <&pmx1 0 14 8>;
601 interrupt-controller;
602 #interrupt-cells = <2>;
603 clocks = <&sctrl HI3670_PCLK_AO_GPIO2>;
604 clock-names = "apb_pclk";
605 };
606
607 gpio25: gpio@fff0e000 {
608 compatible = "arm,pl061", "arm,primecell";
609 reg = <0x0 0xfff0e000 0x0 0x1000>;
610 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
611 gpio-controller;
612 #gpio-cells = <2>;
613 /* GPIO200 */
614 gpio-ranges = <&pmx1 0 22 8>;
615 interrupt-controller;
616 #interrupt-cells = <2>;
617 clocks = <&sctrl HI3670_PCLK_AO_GPIO3>;
618 clock-names = "apb_pclk";
619 };
620
621 gpio26: gpio@fff0f000 {
622 compatible = "arm,pl061", "arm,primecell";
623 reg = <0x0 0xfff0f000 0x0 0x1000>;
624 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
625 gpio-controller;
626 #gpio-cells = <2>;
627 /* GPIO208 */
628 gpio-ranges = <&pmx1 0 30 1>;
629 interrupt-controller;
630 #interrupt-cells = <2>;
631 clocks = <&sctrl HI3670_PCLK_AO_GPIO4>;
632 clock-names = "apb_pclk";
633 };
634
635 gpio27: gpio@fff10000 {
636 compatible = "arm,pl061", "arm,primecell";
637 reg = <0x0 0xfff10000 0x0 0x1000>;
638 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
639 gpio-controller;
640 #gpio-cells = <2>;
641 /* GPIO216 */
642 gpio-ranges = <&pmx1 4 31 4>;
643 interrupt-controller;
644 #interrupt-cells = <2>;
645 clocks = <&sctrl HI3670_PCLK_AO_GPIO5>;
646 clock-names = "apb_pclk";
647 };
648
649 gpio28: gpio@fff1d000 {
650 compatible = "arm,pl061", "arm,primecell";
651 reg = <0x0 0xfff1d000 0x0 0x1000>;
652 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
653 gpio-controller;
654 #gpio-cells = <2>;
655 gpio-ranges = <&pmx1 1 35 7>;
656 interrupt-controller;
657 #interrupt-cells = <2>;
658 clocks = <&sctrl HI3670_PCLK_AO_GPIO6>;
659 clock-names = "apb_pclk";
660 };
661
662 /* UFS */
663 ufs: ufs@ff3c0000 {
664 compatible = "hisilicon,hi3670-ufs", "jedec,ufs-2.1";
665 /* 0: HCI standard */
666 /* 1: UFS SYS CTRL */
667 reg = <0x0 0xff3c0000 0x0 0x1000>,
668 <0x0 0xff3e0000 0x0 0x1000>;
669 interrupt-parent = <&gic>;
670 interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
671 clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,
672 <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;
673 clock-names = "ref_clk", "phy_clk";
674 freq-table-hz = <0 0>,
675 <0 0>;
676 /* offset: 0x84; bit: 12 */
677 resets = <&crg_rst 0x84 12>;
678 reset-names = "rst";
679 };
680
681 /* SD */
682 dwmmc1: dwmmc1@ff37f000 {
683 compatible = "hisilicon,hi3670-dw-mshc",
684 "hisilicon,hi3660-dw-mshc";
685 reg = <0x0 0xff37f000 0x0 0x1000>;
686 #address-cells = <1>;
687 #size-cells = <0>;
688 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
689 clocks = <&crg_ctrl HI3670_CLK_GATE_SD>,
690 <&crg_ctrl HI3670_HCLK_GATE_SD>;
691 clock-names = "ciu", "biu";
692 clock-frequency = <3200000>;
693 resets = <&crg_rst 0x94 18>;
694 reset-names = "reset";
695 hisilicon,peripheral-syscon = <&sctrl>;
696 card-detect-delay = <200>;
697 status = "disabled";
698 };
699
700 /* SDIO */
701 dwmmc2: dwmmc2@fc183000 {
702 compatible = "hisilicon,hi3670-dw-mshc",
703 "hisilicon,hi3660-dw-mshc";
704 reg = <0x0 0xfc183000 0x0 0x1000>;
705 #address-cells = <1>;
706 #size-cells = <0>;
707 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
708 clocks = <&crg_ctrl HI3670_CLK_GATE_SDIO>,
709 <&crg_ctrl HI3670_HCLK_GATE_SDIO>;
710 clock-names = "ciu", "biu";
711 clock-frequency = <3200000>;
712 resets = <&crg_rst 0x94 20>;
713 reset-names = "reset";
714 card-detect-delay = <200>;
715 status = "disabled";
716 };
717
718 /* I2C */
719 i2c0: i2c@ffd71000 {
720 compatible = "snps,designware-i2c";
721 reg = <0x0 0xffd71000 0x0 0x1000>;
722 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
723 #address-cells = <1>;
724 #size-cells = <0>;
725 clock-frequency = <400000>;
726 clocks = <&iomcu HI3670_CLK_GATE_I2C0>;
727 resets = <&iomcu_rst 0x20 3>;
728 pinctrl-names = "default";
729 pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>;
730 status = "disabled";
731 };
732
733 i2c1: i2c@ffd72000 {
734 compatible = "snps,designware-i2c";
735 reg = <0x0 0xffd72000 0x0 0x1000>;
736 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
737 #address-cells = <1>;
738 #size-cells = <0>;
739 clock-frequency = <400000>;
740 clocks = <&iomcu HI3670_CLK_GATE_I2C1>;
741 resets = <&iomcu_rst 0x20 4>;
742 pinctrl-names = "default";
743 pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>;
744 status = "disabled";
745 };
746
747 i2c2: i2c@ffd73000 {
748 compatible = "snps,designware-i2c";
749 reg = <0x0 0xffd73000 0x0 0x1000>;
750 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
751 #address-cells = <1>;
752 #size-cells = <0>;
753 clock-frequency = <400000>;
754 clocks = <&iomcu HI3670_CLK_GATE_I2C2>;
755 resets = <&iomcu_rst 0x20 5>;
756 pinctrl-names = "default";
757 pinctrl-0 = <&i2c2_pmx_func &i2c2_cfg_func>;
758 status = "disabled";
759 };
760
761 i2c3: i2c@fdf0c000 {
762 compatible = "snps,designware-i2c";
763 reg = <0x0 0xfdf0c000 0x0 0x1000>;
764 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
765 #address-cells = <1>;
766 #size-cells = <0>;
767 clock-frequency = <400000>;
768 clocks = <&crg_ctrl HI3670_CLK_GATE_I2C3>;
769 resets = <&crg_rst 0x78 7>;
770 pinctrl-names = "default";
771 pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>;
772 status = "disabled";
773 };
774
775 i2c4: i2c@fdf0d000 {
776 compatible = "snps,designware-i2c";
777 reg = <0x0 0xfdf0d000 0x0 0x1000>;
778 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
779 #address-cells = <1>;
780 #size-cells = <0>;
781 clock-frequency = <400000>;
782 clocks = <&crg_ctrl HI3670_CLK_GATE_I2C4>;
783 resets = <&crg_rst 0x78 27>;
784 pinctrl-names = "default";
785 pinctrl-0 = <&i2c4_pmx_func &i2c4_cfg_func>;
786 status = "disabled";
787 };
788 };
789};