1 // SPDX-License-Identifier: GPL-2.0
3 * dts file for Hisilicon Hi3660 SoC
5 * Copyright (C) 2016, Hisilicon Ltd.
8 #include <dt-bindings/interrupt-controller/arm-gic.h>
9 #include <dt-bindings/clock/hi3660-clock.h>
12 compatible = "hisilicon,hi3660";
13 interrupt-parent = <&gic>;
18 compatible = "arm,psci-0.2";
58 compatible = "arm,cortex-a53", "arm,armv8";
61 enable-method = "psci";
62 next-level-cache = <&A53_L2>;
63 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
64 capacity-dmips-mhz = <592>;
68 compatible = "arm,cortex-a53", "arm,armv8";
71 enable-method = "psci";
72 next-level-cache = <&A53_L2>;
73 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
74 capacity-dmips-mhz = <592>;
78 compatible = "arm,cortex-a53", "arm,armv8";
81 enable-method = "psci";
82 next-level-cache = <&A53_L2>;
83 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
84 capacity-dmips-mhz = <592>;
88 compatible = "arm,cortex-a53", "arm,armv8";
91 enable-method = "psci";
92 next-level-cache = <&A53_L2>;
93 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
94 capacity-dmips-mhz = <592>;
98 compatible = "arm,cortex-a73", "arm,armv8";
101 enable-method = "psci";
102 next-level-cache = <&A73_L2>;
103 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_1>;
104 capacity-dmips-mhz = <1024>;
108 compatible = "arm,cortex-a73", "arm,armv8";
111 enable-method = "psci";
112 next-level-cache = <&A73_L2>;
113 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_1>;
114 capacity-dmips-mhz = <1024>;
118 compatible = "arm,cortex-a73", "arm,armv8";
121 enable-method = "psci";
122 next-level-cache = <&A73_L2>;
123 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_1>;
124 capacity-dmips-mhz = <1024>;
128 compatible = "arm,cortex-a73", "arm,armv8";
131 enable-method = "psci";
132 next-level-cache = <&A73_L2>;
133 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_1>;
134 capacity-dmips-mhz = <1024>;
138 entry-method = "psci";
140 CPU_SLEEP: cpu-sleep {
141 compatible = "arm,idle-state";
143 arm,psci-suspend-param = <0x0010000>;
144 entry-latency-us = <40>;
145 exit-latency-us = <70>;
146 min-residency-us = <3000>;
149 CLUSTER_SLEEP_0: cluster-sleep-0 {
150 compatible = "arm,idle-state";
152 arm,psci-suspend-param = <0x1010000>;
153 entry-latency-us = <500>;
154 exit-latency-us = <5000>;
155 min-residency-us = <20000>;
158 CLUSTER_SLEEP_1: cluster-sleep-1 {
159 compatible = "arm,idle-state";
161 arm,psci-suspend-param = <0x1010000>;
162 entry-latency-us = <1000>;
163 exit-latency-us = <5000>;
164 min-residency-us = <20000>;
169 compatible = "cache";
173 compatible = "cache";
177 gic: interrupt-controller@e82b0000 {
178 compatible = "arm,gic-400";
179 reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
180 <0x0 0xe82b2000 0 0x2000>, /* GICC */
181 <0x0 0xe82b4000 0 0x2000>, /* GICH */
182 <0x0 0xe82b6000 0 0x2000>; /* GICV */
183 #address-cells = <0>;
184 #interrupt-cells = <3>;
185 interrupt-controller;
186 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
187 IRQ_TYPE_LEVEL_HIGH)>;
191 compatible = "arm,cortex-a53-pmu";
192 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
193 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
194 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
195 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
196 interrupt-affinity = <&cpu0>,
203 compatible = "arm,cortex-a73-pmu";
204 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
205 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
206 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
207 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
208 interrupt-affinity = <&cpu4>,
215 compatible = "arm,armv8-timer";
216 interrupt-parent = <&gic>;
217 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
218 IRQ_TYPE_LEVEL_LOW)>,
219 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
220 IRQ_TYPE_LEVEL_LOW)>,
221 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
222 IRQ_TYPE_LEVEL_LOW)>,
223 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
224 IRQ_TYPE_LEVEL_LOW)>;
228 compatible = "simple-bus";
229 #address-cells = <2>;
233 crg_ctrl: crg_ctrl@fff35000 {
234 compatible = "hisilicon,hi3660-crgctrl", "syscon";
235 reg = <0x0 0xfff35000 0x0 0x1000>;
239 crg_rst: crg_rst_controller {
240 compatible = "hisilicon,hi3660-reset";
242 hisi,rst-syscon = <&crg_ctrl>;
246 pctrl: pctrl@e8a09000 {
247 compatible = "hisilicon,hi3660-pctrl", "syscon";
248 reg = <0x0 0xe8a09000 0x0 0x2000>;
252 pmuctrl: crg_ctrl@fff34000 {
253 compatible = "hisilicon,hi3660-pmuctrl", "syscon";
254 reg = <0x0 0xfff34000 0x0 0x1000>;
258 sctrl: sctrl@fff0a000 {
259 compatible = "hisilicon,hi3660-sctrl", "syscon";
260 reg = <0x0 0xfff0a000 0x0 0x1000>;
264 iomcu: iomcu@ffd7e000 {
265 compatible = "hisilicon,hi3660-iomcu", "syscon";
266 reg = <0x0 0xffd7e000 0x0 0x1000>;
272 compatible = "hisilicon,hi3660-reset";
273 hisi,rst-syscon = <&iomcu>;
277 dual_timer0: timer@fff14000 {
278 compatible = "arm,sp804", "arm,primecell";
279 reg = <0x0 0xfff14000 0x0 0x1000>;
280 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
281 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
282 clocks = <&crg_ctrl HI3660_OSC32K>,
283 <&crg_ctrl HI3660_OSC32K>,
284 <&crg_ctrl HI3660_OSC32K>;
285 clock-names = "timer1", "timer2", "apb_pclk";
289 compatible = "snps,designware-i2c";
290 reg = <0x0 0xffd71000 0x0 0x1000>;
291 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
292 #address-cells = <1>;
294 clock-frequency = <400000>;
295 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C0>;
296 resets = <&iomcu_rst 0x20 3>;
297 pinctrl-names = "default";
298 pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>;
303 compatible = "snps,designware-i2c";
304 reg = <0x0 0xffd72000 0x0 0x1000>;
305 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
306 #address-cells = <1>;
308 clock-frequency = <400000>;
309 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C1>;
310 resets = <&iomcu_rst 0x20 4>;
311 pinctrl-names = "default";
312 pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>;
317 compatible = "snps,designware-i2c";
318 reg = <0x0 0xfdf0c000 0x0 0x1000>;
319 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
320 #address-cells = <1>;
322 clock-frequency = <400000>;
323 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C3>;
324 resets = <&crg_rst 0x78 7>;
325 pinctrl-names = "default";
326 pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>;
331 compatible = "snps,designware-i2c";
332 reg = <0x0 0xfdf0b000 0x0 0x1000>;
333 interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
334 #address-cells = <1>;
336 clock-frequency = <400000>;
337 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C7>;
338 resets = <&crg_rst 0x60 14>;
339 pinctrl-names = "default";
340 pinctrl-0 = <&i2c7_pmx_func &i2c7_cfg_func>;
344 uart0: serial@fdf02000 {
345 compatible = "arm,pl011", "arm,primecell";
346 reg = <0x0 0xfdf02000 0x0 0x1000>;
347 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
348 clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
349 <&crg_ctrl HI3660_PCLK>;
350 clock-names = "uartclk", "apb_pclk";
351 pinctrl-names = "default";
352 pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
356 uart1: serial@fdf00000 {
357 compatible = "arm,pl011", "arm,primecell";
358 reg = <0x0 0xfdf00000 0x0 0x1000>;
359 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
360 clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>,
361 <&crg_ctrl HI3660_CLK_GATE_UART1>;
362 clock-names = "uartclk", "apb_pclk";
363 pinctrl-names = "default";
364 pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>;
368 uart2: serial@fdf03000 {
369 compatible = "arm,pl011", "arm,primecell";
370 reg = <0x0 0xfdf03000 0x0 0x1000>;
371 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
372 clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>,
373 <&crg_ctrl HI3660_PCLK>;
374 clock-names = "uartclk", "apb_pclk";
375 pinctrl-names = "default";
376 pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
380 uart3: serial@ffd74000 {
381 compatible = "arm,pl011", "arm,primecell";
382 reg = <0x0 0xffd74000 0x0 0x1000>;
383 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
384 clocks = <&crg_ctrl HI3660_FACTOR_UART3>,
385 <&crg_ctrl HI3660_PCLK>;
386 clock-names = "uartclk", "apb_pclk";
387 pinctrl-names = "default";
388 pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
392 uart4: serial@fdf01000 {
393 compatible = "arm,pl011", "arm,primecell";
394 reg = <0x0 0xfdf01000 0x0 0x1000>;
395 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
396 clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>,
397 <&crg_ctrl HI3660_CLK_GATE_UART4>;
398 clock-names = "uartclk", "apb_pclk";
399 pinctrl-names = "default";
400 pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
404 uart5: serial@fdf05000 {
405 compatible = "arm,pl011", "arm,primecell";
406 reg = <0x0 0xfdf05000 0x0 0x1000>;
407 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
408 clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>,
409 <&crg_ctrl HI3660_CLK_GATE_UART5>;
410 clock-names = "uartclk", "apb_pclk";
411 pinctrl-names = "default";
412 pinctrl-0 = <&uart5_pmx_func &uart5_cfg_func>;
416 uart6: serial@fff32000 {
417 compatible = "arm,pl011", "arm,primecell";
418 reg = <0x0 0xfff32000 0x0 0x1000>;
419 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
420 clocks = <&crg_ctrl HI3660_CLK_UART6>,
421 <&crg_ctrl HI3660_PCLK>;
422 clock-names = "uartclk", "apb_pclk";
423 pinctrl-names = "default";
424 pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>;
429 compatible = "hisilicon,k3-dma-1.0";
430 reg = <0x0 0xfdf30000 0x0 0x1000>;
435 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
436 clocks = <&crg_ctrl HI3660_CLK_GATE_DMAC>;
438 dma-type = "hi3660_dma";
442 compatible = "arm,pl031", "arm,primecell";
443 reg = <0x0 0Xfff04000 0x0 0x1000>;
444 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
445 clocks = <&crg_ctrl HI3660_PCLK>;
446 clock-names = "apb_pclk";
449 gpio0: gpio@e8a0b000 {
450 compatible = "arm,pl061", "arm,primecell";
451 reg = <0 0xe8a0b000 0 0x1000>;
452 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
455 gpio-ranges = <&pmx0 1 0 7>;
456 interrupt-controller;
457 #interrupt-cells = <2>;
458 clocks = <&crg_ctrl HI3660_PCLK_GPIO0>;
459 clock-names = "apb_pclk";
462 gpio1: gpio@e8a0c000 {
463 compatible = "arm,pl061", "arm,primecell";
464 reg = <0 0xe8a0c000 0 0x1000>;
465 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
468 gpio-ranges = <&pmx0 1 7 7>;
469 interrupt-controller;
470 #interrupt-cells = <2>;
471 clocks = <&crg_ctrl HI3660_PCLK_GPIO1>;
472 clock-names = "apb_pclk";
475 gpio2: gpio@e8a0d000 {
476 compatible = "arm,pl061", "arm,primecell";
477 reg = <0 0xe8a0d000 0 0x1000>;
478 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
481 gpio-ranges = <&pmx0 0 14 8>;
482 interrupt-controller;
483 #interrupt-cells = <2>;
484 clocks = <&crg_ctrl HI3660_PCLK_GPIO2>;
485 clock-names = "apb_pclk";
488 gpio3: gpio@e8a0e000 {
489 compatible = "arm,pl061", "arm,primecell";
490 reg = <0 0xe8a0e000 0 0x1000>;
491 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
494 gpio-ranges = <&pmx0 0 22 8>;
495 interrupt-controller;
496 #interrupt-cells = <2>;
497 clocks = <&crg_ctrl HI3660_PCLK_GPIO3>;
498 clock-names = "apb_pclk";
501 gpio4: gpio@e8a0f000 {
502 compatible = "arm,pl061", "arm,primecell";
503 reg = <0 0xe8a0f000 0 0x1000>;
504 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
507 gpio-ranges = <&pmx0 0 30 8>;
508 interrupt-controller;
509 #interrupt-cells = <2>;
510 clocks = <&crg_ctrl HI3660_PCLK_GPIO4>;
511 clock-names = "apb_pclk";
514 gpio5: gpio@e8a10000 {
515 compatible = "arm,pl061", "arm,primecell";
516 reg = <0 0xe8a10000 0 0x1000>;
517 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
520 gpio-ranges = <&pmx0 0 38 8>;
521 interrupt-controller;
522 #interrupt-cells = <2>;
523 clocks = <&crg_ctrl HI3660_PCLK_GPIO5>;
524 clock-names = "apb_pclk";
527 gpio6: gpio@e8a11000 {
528 compatible = "arm,pl061", "arm,primecell";
529 reg = <0 0xe8a11000 0 0x1000>;
530 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
533 gpio-ranges = <&pmx0 0 46 8>;
534 interrupt-controller;
535 #interrupt-cells = <2>;
536 clocks = <&crg_ctrl HI3660_PCLK_GPIO6>;
537 clock-names = "apb_pclk";
540 gpio7: gpio@e8a12000 {
541 compatible = "arm,pl061", "arm,primecell";
542 reg = <0 0xe8a12000 0 0x1000>;
543 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
546 gpio-ranges = <&pmx0 0 54 8>;
547 interrupt-controller;
548 #interrupt-cells = <2>;
549 clocks = <&crg_ctrl HI3660_PCLK_GPIO7>;
550 clock-names = "apb_pclk";
553 gpio8: gpio@e8a13000 {
554 compatible = "arm,pl061", "arm,primecell";
555 reg = <0 0xe8a13000 0 0x1000>;
556 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
559 gpio-ranges = <&pmx0 0 62 8>;
560 interrupt-controller;
561 #interrupt-cells = <2>;
562 clocks = <&crg_ctrl HI3660_PCLK_GPIO8>;
563 clock-names = "apb_pclk";
566 gpio9: gpio@e8a14000 {
567 compatible = "arm,pl061", "arm,primecell";
568 reg = <0 0xe8a14000 0 0x1000>;
569 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
572 gpio-ranges = <&pmx0 0 70 8>;
573 interrupt-controller;
574 #interrupt-cells = <2>;
575 clocks = <&crg_ctrl HI3660_PCLK_GPIO9>;
576 clock-names = "apb_pclk";
579 gpio10: gpio@e8a15000 {
580 compatible = "arm,pl061", "arm,primecell";
581 reg = <0 0xe8a15000 0 0x1000>;
582 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
585 gpio-ranges = <&pmx0 0 78 8>;
586 interrupt-controller;
587 #interrupt-cells = <2>;
588 clocks = <&crg_ctrl HI3660_PCLK_GPIO10>;
589 clock-names = "apb_pclk";
592 gpio11: gpio@e8a16000 {
593 compatible = "arm,pl061", "arm,primecell";
594 reg = <0 0xe8a16000 0 0x1000>;
595 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
598 gpio-ranges = <&pmx0 0 86 8>;
599 interrupt-controller;
600 #interrupt-cells = <2>;
601 clocks = <&crg_ctrl HI3660_PCLK_GPIO11>;
602 clock-names = "apb_pclk";
605 gpio12: gpio@e8a17000 {
606 compatible = "arm,pl061", "arm,primecell";
607 reg = <0 0xe8a17000 0 0x1000>;
608 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
611 gpio-ranges = <&pmx0 0 94 3 &pmx0 7 101 1>;
612 interrupt-controller;
613 #interrupt-cells = <2>;
614 clocks = <&crg_ctrl HI3660_PCLK_GPIO12>;
615 clock-names = "apb_pclk";
618 gpio13: gpio@e8a18000 {
619 compatible = "arm,pl061", "arm,primecell";
620 reg = <0 0xe8a18000 0 0x1000>;
621 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
624 gpio-ranges = <&pmx0 0 102 8>;
625 interrupt-controller;
626 #interrupt-cells = <2>;
627 clocks = <&crg_ctrl HI3660_PCLK_GPIO13>;
628 clock-names = "apb_pclk";
631 gpio14: gpio@e8a19000 {
632 compatible = "arm,pl061", "arm,primecell";
633 reg = <0 0xe8a19000 0 0x1000>;
634 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
637 gpio-ranges = <&pmx0 0 110 8>;
638 interrupt-controller;
639 #interrupt-cells = <2>;
640 clocks = <&crg_ctrl HI3660_PCLK_GPIO14>;
641 clock-names = "apb_pclk";
644 gpio15: gpio@e8a1a000 {
645 compatible = "arm,pl061", "arm,primecell";
646 reg = <0 0xe8a1a000 0 0x1000>;
647 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
650 gpio-ranges = <&pmx0 0 118 6>;
651 interrupt-controller;
652 #interrupt-cells = <2>;
653 clocks = <&crg_ctrl HI3660_PCLK_GPIO15>;
654 clock-names = "apb_pclk";
657 gpio16: gpio@e8a1b000 {
658 compatible = "arm,pl061", "arm,primecell";
659 reg = <0 0xe8a1b000 0 0x1000>;
660 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
663 interrupt-controller;
664 #interrupt-cells = <2>;
665 clocks = <&crg_ctrl HI3660_PCLK_GPIO16>;
666 clock-names = "apb_pclk";
669 gpio17: gpio@e8a1c000 {
670 compatible = "arm,pl061", "arm,primecell";
671 reg = <0 0xe8a1c000 0 0x1000>;
672 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
675 interrupt-controller;
676 #interrupt-cells = <2>;
677 clocks = <&crg_ctrl HI3660_PCLK_GPIO17>;
678 clock-names = "apb_pclk";
681 gpio18: gpio@ff3b4000 {
682 compatible = "arm,pl061", "arm,primecell";
683 reg = <0 0xff3b4000 0 0x1000>;
684 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
687 gpio-ranges = <&pmx2 0 0 8>;
688 interrupt-controller;
689 #interrupt-cells = <2>;
690 clocks = <&crg_ctrl HI3660_PCLK_GPIO18>;
691 clock-names = "apb_pclk";
694 gpio19: gpio@ff3b5000 {
695 compatible = "arm,pl061", "arm,primecell";
696 reg = <0 0xff3b5000 0 0x1000>;
697 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
700 gpio-ranges = <&pmx2 0 8 4>;
701 interrupt-controller;
702 #interrupt-cells = <2>;
703 clocks = <&crg_ctrl HI3660_PCLK_GPIO19>;
704 clock-names = "apb_pclk";
707 gpio20: gpio@e8a1f000 {
708 compatible = "arm,pl061", "arm,primecell";
709 reg = <0 0xe8a1f000 0 0x1000>;
710 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
713 gpio-ranges = <&pmx1 0 0 6>;
714 interrupt-controller;
715 #interrupt-cells = <2>;
716 clocks = <&crg_ctrl HI3660_PCLK_GPIO20>;
717 clock-names = "apb_pclk";
720 gpio21: gpio@e8a20000 {
721 compatible = "arm,pl061", "arm,primecell";
722 reg = <0 0xe8a20000 0 0x1000>;
723 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
726 interrupt-controller;
727 #interrupt-cells = <2>;
728 gpio-ranges = <&pmx3 0 0 6>;
729 clocks = <&crg_ctrl HI3660_PCLK_GPIO21>;
730 clock-names = "apb_pclk";
733 gpio22: gpio@fff0b000 {
734 compatible = "arm,pl061", "arm,primecell";
735 reg = <0 0xfff0b000 0 0x1000>;
736 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
740 gpio-ranges = <&pmx4 2 0 6>;
741 interrupt-controller;
742 #interrupt-cells = <2>;
743 clocks = <&sctrl HI3660_PCLK_AO_GPIO0>;
744 clock-names = "apb_pclk";
747 gpio23: gpio@fff0c000 {
748 compatible = "arm,pl061", "arm,primecell";
749 reg = <0 0xfff0c000 0 0x1000>;
750 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
754 gpio-ranges = <&pmx4 0 6 7>;
755 interrupt-controller;
756 #interrupt-cells = <2>;
757 clocks = <&sctrl HI3660_PCLK_AO_GPIO1>;
758 clock-names = "apb_pclk";
761 gpio24: gpio@fff0d000 {
762 compatible = "arm,pl061", "arm,primecell";
763 reg = <0 0xfff0d000 0 0x1000>;
764 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
768 gpio-ranges = <&pmx4 0 13 8>;
769 interrupt-controller;
770 #interrupt-cells = <2>;
771 clocks = <&sctrl HI3660_PCLK_AO_GPIO2>;
772 clock-names = "apb_pclk";
775 gpio25: gpio@fff0e000 {
776 compatible = "arm,pl061", "arm,primecell";
777 reg = <0 0xfff0e000 0 0x1000>;
778 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
782 gpio-ranges = <&pmx4 0 21 4 &pmx4 5 25 3>;
783 interrupt-controller;
784 #interrupt-cells = <2>;
785 clocks = <&sctrl HI3660_PCLK_AO_GPIO3>;
786 clock-names = "apb_pclk";
789 gpio26: gpio@fff0f000 {
790 compatible = "arm,pl061", "arm,primecell";
791 reg = <0 0xfff0f000 0 0x1000>;
792 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
796 gpio-ranges = <&pmx4 0 28 8>;
797 interrupt-controller;
798 #interrupt-cells = <2>;
799 clocks = <&sctrl HI3660_PCLK_AO_GPIO4>;
800 clock-names = "apb_pclk";
803 gpio27: gpio@fff10000 {
804 compatible = "arm,pl061", "arm,primecell";
805 reg = <0 0xfff10000 0 0x1000>;
806 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
810 gpio-ranges = <&pmx4 0 36 6>;
811 interrupt-controller;
812 #interrupt-cells = <2>;
813 clocks = <&sctrl HI3660_PCLK_AO_GPIO5>;
814 clock-names = "apb_pclk";
817 gpio28: gpio@fff1d000 {
818 compatible = "arm,pl061", "arm,primecell";
819 reg = <0 0xfff1d000 0 0x1000>;
820 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
823 interrupt-controller;
824 #interrupt-cells = <2>;
825 clocks = <&sctrl HI3660_PCLK_AO_GPIO6>;
826 clock-names = "apb_pclk";
830 compatible = "arm,pl022", "arm,primecell";
831 reg = <0x0 0xffd68000 0x0 0x1000>;
832 #address-cells = <1>;
834 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
835 clocks = <&crg_ctrl HI3660_CLK_GATE_SPI2>;
836 clock-names = "apb_pclk";
837 pinctrl-names = "default";
838 pinctrl-0 = <&spi2_pmx_func>;
840 cs-gpios = <&gpio27 2 0>;
845 compatible = "arm,pl022", "arm,primecell";
846 reg = <0x0 0xff3b3000 0x0 0x1000>;
847 #address-cells = <1>;
849 interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>;
850 clocks = <&crg_ctrl HI3660_CLK_GATE_SPI3>;
851 clock-names = "apb_pclk";
852 pinctrl-names = "default";
853 pinctrl-0 = <&spi3_pmx_func>;
855 cs-gpios = <&gpio18 5 0>;
860 compatible = "hisilicon,kirin960-pcie";
861 reg = <0x0 0xf4000000 0x0 0x1000>,
862 <0x0 0xff3fe000 0x0 0x1000>,
863 <0x0 0xf3f20000 0x0 0x40000>,
864 <0x0 0xf5000000 0x0 0x2000>;
865 reg-names = "dbi", "apb", "phy", "config";
866 bus-range = <0x0 0x1>;
867 #address-cells = <3>;
870 ranges = <0x02000000 0x0 0x00000000
874 #interrupt-cells = <1>;
875 interrupt-map-mask = <0xf800 0 0 7>;
876 interrupt-map = <0x0 0 0 1
877 &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
879 &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
881 &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
883 &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>;
884 clocks = <&crg_ctrl HI3660_PCIEPHY_REF>,
885 <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>,
886 <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>,
887 <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>,
888 <&crg_ctrl HI3660_ACLK_GATE_PCIE>;
889 clock-names = "pcie_phy_ref", "pcie_aux",
890 "pcie_apb_phy", "pcie_apb_sys",
892 reset-gpios = <&gpio11 1 0 >;
896 dwmmc1: dwmmc1@ff37f000 {
897 #address-cells = <1>;
900 compatible = "hisilicon,hi3660-dw-mshc";
906 card-detect-delay = <200>;
907 reg = <0x0 0xff37f000 0x0 0x1000>;
908 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
909 clocks = <&crg_ctrl HI3660_CLK_GATE_SD>,
910 <&crg_ctrl HI3660_HCLK_GATE_SD>;
911 clock-names = "ciu", "biu";
912 clock-frequency = <3200000>;
913 resets = <&crg_rst 0x94 18>;
914 reset-names = "reset";
915 cd-gpios = <&gpio25 3 0>;
916 hisilicon,peripheral-syscon = <&sctrl>;
917 pinctrl-names = "default";
918 pinctrl-0 = <&sd_pmx_func
935 dwmmc2: dwmmc2@ff3ff000 {
936 compatible = "hisilicon,hi3660-dw-mshc";
937 reg = <0x0 0xff3ff000 0x0 0x1000>;
938 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
940 clocks = <&crg_ctrl HI3660_CLK_GATE_SDIO0>,
941 <&crg_ctrl HI3660_HCLK_GATE_SDIO0>;
942 clock-names = "ciu", "biu";
943 resets = <&crg_rst 0x94 20>;
944 reset-names = "reset";
945 card-detect-delay = <200>;
947 keep-power-in-suspend;
948 pinctrl-names = "default";
949 pinctrl-0 = <&sdio_pmx_func
955 watchdog0: watchdog@e8a06000 {
956 compatible = "arm,sp805-wdt", "arm,primecell";
957 reg = <0x0 0xe8a06000 0x0 0x1000>;
958 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
959 clocks = <&crg_ctrl HI3660_OSC32K>;
960 clock-names = "apb_pclk";
963 watchdog1: watchdog@e8a07000 {
964 compatible = "arm,sp805-wdt", "arm,primecell";
965 reg = <0x0 0xe8a07000 0x0 0x1000>;
966 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
967 clocks = <&crg_ctrl HI3660_OSC32K>;
968 clock-names = "apb_pclk";
971 tsensor: tsensor@fff30000 {
972 compatible = "hisilicon,hi3660-tsensor";
973 reg = <0x0 0xfff30000 0x0 0x1000>;
974 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
975 #thermal-sensor-cells = <1>;