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>
10 #include <dt-bindings/thermal/thermal.h>
13 compatible = "hisilicon,hi3660";
14 interrupt-parent = <&gic>;
19 compatible = "arm,psci-0.2";
59 compatible = "arm,cortex-a53";
62 enable-method = "psci";
63 next-level-cache = <&A53_L2>;
64 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
65 capacity-dmips-mhz = <592>;
66 clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
67 operating-points-v2 = <&cluster0_opp>;
69 dynamic-power-coefficient = <110>;
73 compatible = "arm,cortex-a53";
76 enable-method = "psci";
77 next-level-cache = <&A53_L2>;
78 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
79 capacity-dmips-mhz = <592>;
80 clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
81 operating-points-v2 = <&cluster0_opp>;
86 compatible = "arm,cortex-a53";
89 enable-method = "psci";
90 next-level-cache = <&A53_L2>;
91 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
92 capacity-dmips-mhz = <592>;
93 clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
94 operating-points-v2 = <&cluster0_opp>;
99 compatible = "arm,cortex-a53";
102 enable-method = "psci";
103 next-level-cache = <&A53_L2>;
104 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
105 capacity-dmips-mhz = <592>;
106 clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
107 operating-points-v2 = <&cluster0_opp>;
108 #cooling-cells = <2>;
112 compatible = "arm,cortex-a73";
115 enable-method = "psci";
116 next-level-cache = <&A73_L2>;
117 cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
118 capacity-dmips-mhz = <1024>;
119 clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
120 operating-points-v2 = <&cluster1_opp>;
121 #cooling-cells = <2>;
122 dynamic-power-coefficient = <550>;
126 compatible = "arm,cortex-a73";
129 enable-method = "psci";
130 next-level-cache = <&A73_L2>;
131 cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
132 capacity-dmips-mhz = <1024>;
133 clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
134 operating-points-v2 = <&cluster1_opp>;
135 #cooling-cells = <2>;
139 compatible = "arm,cortex-a73";
142 enable-method = "psci";
143 next-level-cache = <&A73_L2>;
144 cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
145 capacity-dmips-mhz = <1024>;
146 clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
147 operating-points-v2 = <&cluster1_opp>;
148 #cooling-cells = <2>;
152 compatible = "arm,cortex-a73";
155 enable-method = "psci";
156 next-level-cache = <&A73_L2>;
157 cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
158 capacity-dmips-mhz = <1024>;
159 clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
160 operating-points-v2 = <&cluster1_opp>;
161 #cooling-cells = <2>;
165 entry-method = "psci";
167 CPU_SLEEP_0: cpu-sleep-0 {
168 compatible = "arm,idle-state";
170 arm,psci-suspend-param = <0x0010000>;
171 entry-latency-us = <400>;
172 exit-latency-us = <650>;
173 min-residency-us = <1500>;
175 CLUSTER_SLEEP_0: cluster-sleep-0 {
176 compatible = "arm,idle-state";
178 arm,psci-suspend-param = <0x1010000>;
179 entry-latency-us = <500>;
180 exit-latency-us = <1600>;
181 min-residency-us = <3500>;
185 CPU_SLEEP_1: cpu-sleep-1 {
186 compatible = "arm,idle-state";
188 arm,psci-suspend-param = <0x0010000>;
189 entry-latency-us = <400>;
190 exit-latency-us = <550>;
191 min-residency-us = <1500>;
194 CLUSTER_SLEEP_1: cluster-sleep-1 {
195 compatible = "arm,idle-state";
197 arm,psci-suspend-param = <0x1010000>;
198 entry-latency-us = <800>;
199 exit-latency-us = <2900>;
200 min-residency-us = <3500>;
205 compatible = "cache";
209 compatible = "cache";
213 cluster0_opp: opp_table0 {
214 compatible = "operating-points-v2";
218 opp-hz = /bits/ 64 <533000000>;
219 opp-microvolt = <700000>;
220 clock-latency-ns = <300000>;
224 opp-hz = /bits/ 64 <999000000>;
225 opp-microvolt = <800000>;
226 clock-latency-ns = <300000>;
230 opp-hz = /bits/ 64 <1402000000>;
231 opp-microvolt = <900000>;
232 clock-latency-ns = <300000>;
236 opp-hz = /bits/ 64 <1709000000>;
237 opp-microvolt = <1000000>;
238 clock-latency-ns = <300000>;
242 opp-hz = /bits/ 64 <1844000000>;
243 opp-microvolt = <1100000>;
244 clock-latency-ns = <300000>;
248 cluster1_opp: opp_table1 {
249 compatible = "operating-points-v2";
253 opp-hz = /bits/ 64 <903000000>;
254 opp-microvolt = <700000>;
255 clock-latency-ns = <300000>;
259 opp-hz = /bits/ 64 <1421000000>;
260 opp-microvolt = <800000>;
261 clock-latency-ns = <300000>;
265 opp-hz = /bits/ 64 <1805000000>;
266 opp-microvolt = <900000>;
267 clock-latency-ns = <300000>;
271 opp-hz = /bits/ 64 <2112000000>;
272 opp-microvolt = <1000000>;
273 clock-latency-ns = <300000>;
277 opp-hz = /bits/ 64 <2362000000>;
278 opp-microvolt = <1100000>;
279 clock-latency-ns = <300000>;
283 gic: interrupt-controller@e82b0000 {
284 compatible = "arm,gic-400";
285 reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
286 <0x0 0xe82b2000 0 0x2000>, /* GICC */
287 <0x0 0xe82b4000 0 0x2000>, /* GICH */
288 <0x0 0xe82b6000 0 0x2000>; /* GICV */
289 #address-cells = <0>;
290 #interrupt-cells = <3>;
291 interrupt-controller;
292 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
293 IRQ_TYPE_LEVEL_HIGH)>;
297 compatible = "arm,cortex-a53-pmu";
298 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
299 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
300 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
301 <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
302 interrupt-affinity = <&cpu0>,
309 compatible = "arm,cortex-a73-pmu";
310 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
311 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
312 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
313 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
314 interrupt-affinity = <&cpu4>,
321 compatible = "arm,armv8-timer";
322 interrupt-parent = <&gic>;
323 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
324 IRQ_TYPE_LEVEL_LOW)>,
325 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
326 IRQ_TYPE_LEVEL_LOW)>,
327 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
328 IRQ_TYPE_LEVEL_LOW)>,
329 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
330 IRQ_TYPE_LEVEL_LOW)>;
334 compatible = "simple-bus";
335 #address-cells = <2>;
339 crg_ctrl: crg_ctrl@fff35000 {
340 compatible = "hisilicon,hi3660-crgctrl", "syscon";
341 reg = <0x0 0xfff35000 0x0 0x1000>;
345 crg_rst: crg_rst_controller {
346 compatible = "hisilicon,hi3660-reset";
348 hisi,rst-syscon = <&crg_ctrl>;
352 pctrl: pctrl@e8a09000 {
353 compatible = "hisilicon,hi3660-pctrl", "syscon";
354 reg = <0x0 0xe8a09000 0x0 0x2000>;
358 pmuctrl: crg_ctrl@fff34000 {
359 compatible = "hisilicon,hi3660-pmuctrl", "syscon";
360 reg = <0x0 0xfff34000 0x0 0x1000>;
364 sctrl: sctrl@fff0a000 {
365 compatible = "hisilicon,hi3660-sctrl", "syscon";
366 reg = <0x0 0xfff0a000 0x0 0x1000>;
370 iomcu: iomcu@ffd7e000 {
371 compatible = "hisilicon,hi3660-iomcu", "syscon";
372 reg = <0x0 0xffd7e000 0x0 0x1000>;
378 compatible = "hisilicon,hi3660-reset";
379 hisi,rst-syscon = <&iomcu>;
383 mailbox: mailbox@e896b000 {
384 compatible = "hisilicon,hi3660-mbox";
385 reg = <0x0 0xe896b000 0x0 0x1000>;
386 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
387 <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
391 stub_clock: stub_clock@e896b500 {
392 compatible = "hisilicon,hi3660-stub-clk";
393 reg = <0x0 0xe896b500 0x0 0x0100>;
395 mboxes = <&mailbox 13 3 0>;
398 dual_timer0: timer@fff14000 {
399 compatible = "arm,sp804", "arm,primecell";
400 reg = <0x0 0xfff14000 0x0 0x1000>;
401 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
402 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
403 clocks = <&crg_ctrl HI3660_OSC32K>,
404 <&crg_ctrl HI3660_OSC32K>,
405 <&crg_ctrl HI3660_OSC32K>;
406 clock-names = "timer1", "timer2", "apb_pclk";
410 compatible = "snps,designware-i2c";
411 reg = <0x0 0xffd71000 0x0 0x1000>;
412 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
413 #address-cells = <1>;
415 clock-frequency = <400000>;
416 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C0>;
417 resets = <&iomcu_rst 0x20 3>;
418 pinctrl-names = "default";
419 pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>;
424 compatible = "snps,designware-i2c";
425 reg = <0x0 0xffd72000 0x0 0x1000>;
426 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
427 #address-cells = <1>;
429 clock-frequency = <400000>;
430 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C1>;
431 resets = <&iomcu_rst 0x20 4>;
432 pinctrl-names = "default";
433 pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>;
438 compatible = "snps,designware-i2c";
439 reg = <0x0 0xfdf0c000 0x0 0x1000>;
440 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
441 #address-cells = <1>;
443 clock-frequency = <400000>;
444 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C3>;
445 resets = <&crg_rst 0x78 7>;
446 pinctrl-names = "default";
447 pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>;
452 compatible = "snps,designware-i2c";
453 reg = <0x0 0xfdf0b000 0x0 0x1000>;
454 interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
455 #address-cells = <1>;
457 clock-frequency = <400000>;
458 clocks = <&crg_ctrl HI3660_CLK_GATE_I2C7>;
459 resets = <&crg_rst 0x60 14>;
460 pinctrl-names = "default";
461 pinctrl-0 = <&i2c7_pmx_func &i2c7_cfg_func>;
465 uart0: serial@fdf02000 {
466 compatible = "arm,pl011", "arm,primecell";
467 reg = <0x0 0xfdf02000 0x0 0x1000>;
468 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
469 clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
470 <&crg_ctrl HI3660_PCLK>;
471 clock-names = "uartclk", "apb_pclk";
472 pinctrl-names = "default";
473 pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
477 uart1: serial@fdf00000 {
478 compatible = "arm,pl011", "arm,primecell";
479 reg = <0x0 0xfdf00000 0x0 0x1000>;
480 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
481 clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>,
482 <&crg_ctrl HI3660_CLK_GATE_UART1>;
483 clock-names = "uartclk", "apb_pclk";
484 pinctrl-names = "default";
485 pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>;
489 uart2: serial@fdf03000 {
490 compatible = "arm,pl011", "arm,primecell";
491 reg = <0x0 0xfdf03000 0x0 0x1000>;
492 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
493 clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>,
494 <&crg_ctrl HI3660_PCLK>;
495 clock-names = "uartclk", "apb_pclk";
496 pinctrl-names = "default";
497 pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
501 uart3: serial@ffd74000 {
502 compatible = "arm,pl011", "arm,primecell";
503 reg = <0x0 0xffd74000 0x0 0x1000>;
504 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
505 clocks = <&crg_ctrl HI3660_FACTOR_UART3>,
506 <&crg_ctrl HI3660_PCLK>;
507 clock-names = "uartclk", "apb_pclk";
508 pinctrl-names = "default";
509 pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
513 uart4: serial@fdf01000 {
514 compatible = "arm,pl011", "arm,primecell";
515 reg = <0x0 0xfdf01000 0x0 0x1000>;
516 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
517 clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>,
518 <&crg_ctrl HI3660_CLK_GATE_UART4>;
519 clock-names = "uartclk", "apb_pclk";
520 pinctrl-names = "default";
521 pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
525 uart5: serial@fdf05000 {
526 compatible = "arm,pl011", "arm,primecell";
527 reg = <0x0 0xfdf05000 0x0 0x1000>;
528 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
529 clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>,
530 <&crg_ctrl HI3660_CLK_GATE_UART5>;
531 clock-names = "uartclk", "apb_pclk";
532 pinctrl-names = "default";
533 pinctrl-0 = <&uart5_pmx_func &uart5_cfg_func>;
537 uart6: serial@fff32000 {
538 compatible = "arm,pl011", "arm,primecell";
539 reg = <0x0 0xfff32000 0x0 0x1000>;
540 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
541 clocks = <&crg_ctrl HI3660_CLK_UART6>,
542 <&crg_ctrl HI3660_PCLK>;
543 clock-names = "uartclk", "apb_pclk";
544 pinctrl-names = "default";
545 pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>;
550 compatible = "hisilicon,k3-dma-1.0";
551 reg = <0x0 0xfdf30000 0x0 0x1000>;
556 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
557 clocks = <&crg_ctrl HI3660_CLK_GATE_DMAC>;
559 dma-type = "hi3660_dma";
563 compatible = "arm,pl031", "arm,primecell";
564 reg = <0x0 0Xfff04000 0x0 0x1000>;
565 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
566 clocks = <&crg_ctrl HI3660_PCLK>;
567 clock-names = "apb_pclk";
570 gpio0: gpio@e8a0b000 {
571 compatible = "arm,pl061", "arm,primecell";
572 reg = <0 0xe8a0b000 0 0x1000>;
573 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
576 gpio-ranges = <&pmx0 1 0 7>;
577 interrupt-controller;
578 #interrupt-cells = <2>;
579 clocks = <&crg_ctrl HI3660_PCLK_GPIO0>;
580 clock-names = "apb_pclk";
583 gpio1: gpio@e8a0c000 {
584 compatible = "arm,pl061", "arm,primecell";
585 reg = <0 0xe8a0c000 0 0x1000>;
586 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
589 gpio-ranges = <&pmx0 1 7 7>;
590 interrupt-controller;
591 #interrupt-cells = <2>;
592 clocks = <&crg_ctrl HI3660_PCLK_GPIO1>;
593 clock-names = "apb_pclk";
596 gpio2: gpio@e8a0d000 {
597 compatible = "arm,pl061", "arm,primecell";
598 reg = <0 0xe8a0d000 0 0x1000>;
599 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
602 gpio-ranges = <&pmx0 0 14 8>;
603 interrupt-controller;
604 #interrupt-cells = <2>;
605 clocks = <&crg_ctrl HI3660_PCLK_GPIO2>;
606 clock-names = "apb_pclk";
609 gpio3: gpio@e8a0e000 {
610 compatible = "arm,pl061", "arm,primecell";
611 reg = <0 0xe8a0e000 0 0x1000>;
612 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
615 gpio-ranges = <&pmx0 0 22 8>;
616 interrupt-controller;
617 #interrupt-cells = <2>;
618 clocks = <&crg_ctrl HI3660_PCLK_GPIO3>;
619 clock-names = "apb_pclk";
622 gpio4: gpio@e8a0f000 {
623 compatible = "arm,pl061", "arm,primecell";
624 reg = <0 0xe8a0f000 0 0x1000>;
625 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
628 gpio-ranges = <&pmx0 0 30 8>;
629 interrupt-controller;
630 #interrupt-cells = <2>;
631 clocks = <&crg_ctrl HI3660_PCLK_GPIO4>;
632 clock-names = "apb_pclk";
635 gpio5: gpio@e8a10000 {
636 compatible = "arm,pl061", "arm,primecell";
637 reg = <0 0xe8a10000 0 0x1000>;
638 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
641 gpio-ranges = <&pmx0 0 38 8>;
642 interrupt-controller;
643 #interrupt-cells = <2>;
644 clocks = <&crg_ctrl HI3660_PCLK_GPIO5>;
645 clock-names = "apb_pclk";
648 gpio6: gpio@e8a11000 {
649 compatible = "arm,pl061", "arm,primecell";
650 reg = <0 0xe8a11000 0 0x1000>;
651 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
654 gpio-ranges = <&pmx0 0 46 8>;
655 interrupt-controller;
656 #interrupt-cells = <2>;
657 clocks = <&crg_ctrl HI3660_PCLK_GPIO6>;
658 clock-names = "apb_pclk";
661 gpio7: gpio@e8a12000 {
662 compatible = "arm,pl061", "arm,primecell";
663 reg = <0 0xe8a12000 0 0x1000>;
664 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
667 gpio-ranges = <&pmx0 0 54 8>;
668 interrupt-controller;
669 #interrupt-cells = <2>;
670 clocks = <&crg_ctrl HI3660_PCLK_GPIO7>;
671 clock-names = "apb_pclk";
674 gpio8: gpio@e8a13000 {
675 compatible = "arm,pl061", "arm,primecell";
676 reg = <0 0xe8a13000 0 0x1000>;
677 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
680 gpio-ranges = <&pmx0 0 62 8>;
681 interrupt-controller;
682 #interrupt-cells = <2>;
683 clocks = <&crg_ctrl HI3660_PCLK_GPIO8>;
684 clock-names = "apb_pclk";
687 gpio9: gpio@e8a14000 {
688 compatible = "arm,pl061", "arm,primecell";
689 reg = <0 0xe8a14000 0 0x1000>;
690 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
693 gpio-ranges = <&pmx0 0 70 8>;
694 interrupt-controller;
695 #interrupt-cells = <2>;
696 clocks = <&crg_ctrl HI3660_PCLK_GPIO9>;
697 clock-names = "apb_pclk";
700 gpio10: gpio@e8a15000 {
701 compatible = "arm,pl061", "arm,primecell";
702 reg = <0 0xe8a15000 0 0x1000>;
703 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
706 gpio-ranges = <&pmx0 0 78 8>;
707 interrupt-controller;
708 #interrupt-cells = <2>;
709 clocks = <&crg_ctrl HI3660_PCLK_GPIO10>;
710 clock-names = "apb_pclk";
713 gpio11: gpio@e8a16000 {
714 compatible = "arm,pl061", "arm,primecell";
715 reg = <0 0xe8a16000 0 0x1000>;
716 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
719 gpio-ranges = <&pmx0 0 86 8>;
720 interrupt-controller;
721 #interrupt-cells = <2>;
722 clocks = <&crg_ctrl HI3660_PCLK_GPIO11>;
723 clock-names = "apb_pclk";
726 gpio12: gpio@e8a17000 {
727 compatible = "arm,pl061", "arm,primecell";
728 reg = <0 0xe8a17000 0 0x1000>;
729 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
732 gpio-ranges = <&pmx0 0 94 3 &pmx0 7 101 1>;
733 interrupt-controller;
734 #interrupt-cells = <2>;
735 clocks = <&crg_ctrl HI3660_PCLK_GPIO12>;
736 clock-names = "apb_pclk";
739 gpio13: gpio@e8a18000 {
740 compatible = "arm,pl061", "arm,primecell";
741 reg = <0 0xe8a18000 0 0x1000>;
742 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
745 gpio-ranges = <&pmx0 0 102 8>;
746 interrupt-controller;
747 #interrupt-cells = <2>;
748 clocks = <&crg_ctrl HI3660_PCLK_GPIO13>;
749 clock-names = "apb_pclk";
752 gpio14: gpio@e8a19000 {
753 compatible = "arm,pl061", "arm,primecell";
754 reg = <0 0xe8a19000 0 0x1000>;
755 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
758 gpio-ranges = <&pmx0 0 110 8>;
759 interrupt-controller;
760 #interrupt-cells = <2>;
761 clocks = <&crg_ctrl HI3660_PCLK_GPIO14>;
762 clock-names = "apb_pclk";
765 gpio15: gpio@e8a1a000 {
766 compatible = "arm,pl061", "arm,primecell";
767 reg = <0 0xe8a1a000 0 0x1000>;
768 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
771 gpio-ranges = <&pmx0 0 118 6>;
772 interrupt-controller;
773 #interrupt-cells = <2>;
774 clocks = <&crg_ctrl HI3660_PCLK_GPIO15>;
775 clock-names = "apb_pclk";
778 gpio16: gpio@e8a1b000 {
779 compatible = "arm,pl061", "arm,primecell";
780 reg = <0 0xe8a1b000 0 0x1000>;
781 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
784 interrupt-controller;
785 #interrupt-cells = <2>;
786 clocks = <&crg_ctrl HI3660_PCLK_GPIO16>;
787 clock-names = "apb_pclk";
790 gpio17: gpio@e8a1c000 {
791 compatible = "arm,pl061", "arm,primecell";
792 reg = <0 0xe8a1c000 0 0x1000>;
793 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
796 interrupt-controller;
797 #interrupt-cells = <2>;
798 clocks = <&crg_ctrl HI3660_PCLK_GPIO17>;
799 clock-names = "apb_pclk";
802 gpio18: gpio@ff3b4000 {
803 compatible = "arm,pl061", "arm,primecell";
804 reg = <0 0xff3b4000 0 0x1000>;
805 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
808 gpio-ranges = <&pmx2 0 0 8>;
809 interrupt-controller;
810 #interrupt-cells = <2>;
811 clocks = <&crg_ctrl HI3660_PCLK_GPIO18>;
812 clock-names = "apb_pclk";
815 gpio19: gpio@ff3b5000 {
816 compatible = "arm,pl061", "arm,primecell";
817 reg = <0 0xff3b5000 0 0x1000>;
818 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
821 gpio-ranges = <&pmx2 0 8 4>;
822 interrupt-controller;
823 #interrupt-cells = <2>;
824 clocks = <&crg_ctrl HI3660_PCLK_GPIO19>;
825 clock-names = "apb_pclk";
828 gpio20: gpio@e8a1f000 {
829 compatible = "arm,pl061", "arm,primecell";
830 reg = <0 0xe8a1f000 0 0x1000>;
831 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
834 gpio-ranges = <&pmx1 0 0 6>;
835 interrupt-controller;
836 #interrupt-cells = <2>;
837 clocks = <&crg_ctrl HI3660_PCLK_GPIO20>;
838 clock-names = "apb_pclk";
841 gpio21: gpio@e8a20000 {
842 compatible = "arm,pl061", "arm,primecell";
843 reg = <0 0xe8a20000 0 0x1000>;
844 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
847 interrupt-controller;
848 #interrupt-cells = <2>;
849 gpio-ranges = <&pmx3 0 0 6>;
850 clocks = <&crg_ctrl HI3660_PCLK_GPIO21>;
851 clock-names = "apb_pclk";
854 gpio22: gpio@fff0b000 {
855 compatible = "arm,pl061", "arm,primecell";
856 reg = <0 0xfff0b000 0 0x1000>;
857 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
861 gpio-ranges = <&pmx4 2 0 6>;
862 interrupt-controller;
863 #interrupt-cells = <2>;
864 clocks = <&sctrl HI3660_PCLK_AO_GPIO0>;
865 clock-names = "apb_pclk";
868 gpio23: gpio@fff0c000 {
869 compatible = "arm,pl061", "arm,primecell";
870 reg = <0 0xfff0c000 0 0x1000>;
871 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
875 gpio-ranges = <&pmx4 0 6 7>;
876 interrupt-controller;
877 #interrupt-cells = <2>;
878 clocks = <&sctrl HI3660_PCLK_AO_GPIO1>;
879 clock-names = "apb_pclk";
882 gpio24: gpio@fff0d000 {
883 compatible = "arm,pl061", "arm,primecell";
884 reg = <0 0xfff0d000 0 0x1000>;
885 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
889 gpio-ranges = <&pmx4 0 13 8>;
890 interrupt-controller;
891 #interrupt-cells = <2>;
892 clocks = <&sctrl HI3660_PCLK_AO_GPIO2>;
893 clock-names = "apb_pclk";
896 gpio25: gpio@fff0e000 {
897 compatible = "arm,pl061", "arm,primecell";
898 reg = <0 0xfff0e000 0 0x1000>;
899 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
903 gpio-ranges = <&pmx4 0 21 4 &pmx4 5 25 3>;
904 interrupt-controller;
905 #interrupt-cells = <2>;
906 clocks = <&sctrl HI3660_PCLK_AO_GPIO3>;
907 clock-names = "apb_pclk";
910 gpio26: gpio@fff0f000 {
911 compatible = "arm,pl061", "arm,primecell";
912 reg = <0 0xfff0f000 0 0x1000>;
913 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
917 gpio-ranges = <&pmx4 0 28 8>;
918 interrupt-controller;
919 #interrupt-cells = <2>;
920 clocks = <&sctrl HI3660_PCLK_AO_GPIO4>;
921 clock-names = "apb_pclk";
924 gpio27: gpio@fff10000 {
925 compatible = "arm,pl061", "arm,primecell";
926 reg = <0 0xfff10000 0 0x1000>;
927 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
931 gpio-ranges = <&pmx4 0 36 6>;
932 interrupt-controller;
933 #interrupt-cells = <2>;
934 clocks = <&sctrl HI3660_PCLK_AO_GPIO5>;
935 clock-names = "apb_pclk";
938 gpio28: gpio@fff1d000 {
939 compatible = "arm,pl061", "arm,primecell";
940 reg = <0 0xfff1d000 0 0x1000>;
941 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
944 interrupt-controller;
945 #interrupt-cells = <2>;
946 clocks = <&sctrl HI3660_PCLK_AO_GPIO6>;
947 clock-names = "apb_pclk";
951 compatible = "arm,pl022", "arm,primecell";
952 reg = <0x0 0xffd68000 0x0 0x1000>;
953 #address-cells = <1>;
955 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
956 clocks = <&crg_ctrl HI3660_CLK_GATE_SPI2>;
957 clock-names = "apb_pclk";
958 pinctrl-names = "default";
959 pinctrl-0 = <&spi2_pmx_func>;
961 cs-gpios = <&gpio27 2 0>;
966 compatible = "arm,pl022", "arm,primecell";
967 reg = <0x0 0xff3b3000 0x0 0x1000>;
968 #address-cells = <1>;
970 interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>;
971 clocks = <&crg_ctrl HI3660_CLK_GATE_SPI3>;
972 clock-names = "apb_pclk";
973 pinctrl-names = "default";
974 pinctrl-0 = <&spi3_pmx_func>;
976 cs-gpios = <&gpio18 5 0>;
981 compatible = "hisilicon,kirin960-pcie";
982 reg = <0x0 0xf4000000 0x0 0x1000>,
983 <0x0 0xff3fe000 0x0 0x1000>,
984 <0x0 0xf3f20000 0x0 0x40000>,
985 <0x0 0xf5000000 0x0 0x2000>;
986 reg-names = "dbi", "apb", "phy", "config";
987 bus-range = <0x0 0x1>;
988 #address-cells = <3>;
991 ranges = <0x02000000 0x0 0x00000000
995 #interrupt-cells = <1>;
996 interrupts = <0 283 4>;
997 interrupt-names = "msi";
998 interrupt-map-mask = <0xf800 0 0 7>;
999 interrupt-map = <0x0 0 0 1
1000 &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
1002 &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
1004 &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
1006 &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>;
1007 clocks = <&crg_ctrl HI3660_PCIEPHY_REF>,
1008 <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>,
1009 <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>,
1010 <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>,
1011 <&crg_ctrl HI3660_ACLK_GATE_PCIE>;
1012 clock-names = "pcie_phy_ref", "pcie_aux",
1013 "pcie_apb_phy", "pcie_apb_sys",
1015 reset-gpios = <&gpio11 1 0 >;
1020 compatible = "hisilicon,hi3660-ufs", "jedec,ufs-1.1";
1021 /* 0: HCI standard */
1022 /* 1: UFS SYS CTRL */
1023 reg = <0x0 0xff3b0000 0x0 0x1000>,
1024 <0x0 0xff3b1000 0x0 0x1000>;
1025 interrupt-parent = <&gic>;
1026 interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
1027 clocks = <&crg_ctrl HI3660_CLK_GATE_UFSIO_REF>,
1028 <&crg_ctrl HI3660_CLK_GATE_UFSPHY_CFG>;
1029 clock-names = "ref_clk", "phy_clk";
1030 freq-table-hz = <0 0>, <0 0>;
1031 /* offset: 0x84; bit: 12 */
1032 resets = <&crg_rst 0x84 12>;
1033 reset-names = "rst";
1037 dwmmc1: dwmmc1@ff37f000 {
1038 compatible = "hisilicon,hi3660-dw-mshc";
1039 reg = <0x0 0xff37f000 0x0 0x1000>;
1040 #address-cells = <1>;
1042 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
1043 clocks = <&crg_ctrl HI3660_CLK_GATE_SD>,
1044 <&crg_ctrl HI3660_HCLK_GATE_SD>;
1045 clock-names = "ciu", "biu";
1046 clock-frequency = <3200000>;
1047 resets = <&crg_rst 0x94 18>;
1048 reset-names = "reset";
1049 hisilicon,peripheral-syscon = <&sctrl>;
1050 card-detect-delay = <200>;
1051 status = "disabled";
1055 dwmmc2: dwmmc2@ff3ff000 {
1056 compatible = "hisilicon,hi3660-dw-mshc";
1057 reg = <0x0 0xff3ff000 0x0 0x1000>;
1058 #address-cells = <0x1>;
1059 #size-cells = <0x0>;
1060 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1061 clocks = <&crg_ctrl HI3660_CLK_GATE_SDIO0>,
1062 <&crg_ctrl HI3660_HCLK_GATE_SDIO0>;
1063 clock-names = "ciu", "biu";
1064 resets = <&crg_rst 0x94 20>;
1065 reset-names = "reset";
1066 card-detect-delay = <200>;
1067 status = "disabled";
1070 watchdog0: watchdog@e8a06000 {
1071 compatible = "arm,sp805-wdt", "arm,primecell";
1072 reg = <0x0 0xe8a06000 0x0 0x1000>;
1073 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1074 clocks = <&crg_ctrl HI3660_OSC32K>;
1075 clock-names = "apb_pclk";
1078 watchdog1: watchdog@e8a07000 {
1079 compatible = "arm,sp805-wdt", "arm,primecell";
1080 reg = <0x0 0xe8a07000 0x0 0x1000>;
1081 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
1082 clocks = <&crg_ctrl HI3660_OSC32K>;
1083 clock-names = "apb_pclk";
1086 tsensor: tsensor@fff30000 {
1087 compatible = "hisilicon,hi3660-tsensor";
1088 reg = <0x0 0xfff30000 0x0 0x1000>;
1089 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
1090 #thermal-sensor-cells = <1>;
1096 polling-delay = <1000>;
1097 polling-delay-passive = <100>;
1098 sustainable-power = <4500>;
1101 thermal-sensors = <&tsensor 1>;
1104 threshold: trip-point@0 {
1105 temperature = <65000>;
1106 hysteresis = <1000>;
1110 target: trip-point@1 {
1111 temperature = <75000>;
1112 hysteresis = <1000>;
1120 contribution = <1024>;
1121 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1122 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1123 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1124 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1128 contribution = <512>;
1129 cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1130 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1131 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1132 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;