xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/hisilicon/hi3660.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * dts file for Hisilicon Hi3660 SoC
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (C) 2016, Hisilicon Ltd.
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
9*4882a593Smuzhiyun#include <dt-bindings/clock/hi3660-clock.h>
10*4882a593Smuzhiyun#include <dt-bindings/thermal/thermal.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/ {
13*4882a593Smuzhiyun	compatible = "hisilicon,hi3660";
14*4882a593Smuzhiyun	interrupt-parent = <&gic>;
15*4882a593Smuzhiyun	#address-cells = <2>;
16*4882a593Smuzhiyun	#size-cells = <2>;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	psci {
19*4882a593Smuzhiyun		compatible = "arm,psci-0.2";
20*4882a593Smuzhiyun		method = "smc";
21*4882a593Smuzhiyun	};
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	cpus {
24*4882a593Smuzhiyun		#address-cells = <2>;
25*4882a593Smuzhiyun		#size-cells = <0>;
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun		cpu-map {
28*4882a593Smuzhiyun			cluster0 {
29*4882a593Smuzhiyun				core0 {
30*4882a593Smuzhiyun					cpu = <&cpu0>;
31*4882a593Smuzhiyun				};
32*4882a593Smuzhiyun				core1 {
33*4882a593Smuzhiyun					cpu = <&cpu1>;
34*4882a593Smuzhiyun				};
35*4882a593Smuzhiyun				core2 {
36*4882a593Smuzhiyun					cpu = <&cpu2>;
37*4882a593Smuzhiyun				};
38*4882a593Smuzhiyun				core3 {
39*4882a593Smuzhiyun					cpu = <&cpu3>;
40*4882a593Smuzhiyun				};
41*4882a593Smuzhiyun			};
42*4882a593Smuzhiyun			cluster1 {
43*4882a593Smuzhiyun				core0 {
44*4882a593Smuzhiyun					cpu = <&cpu4>;
45*4882a593Smuzhiyun				};
46*4882a593Smuzhiyun				core1 {
47*4882a593Smuzhiyun					cpu = <&cpu5>;
48*4882a593Smuzhiyun				};
49*4882a593Smuzhiyun				core2 {
50*4882a593Smuzhiyun					cpu = <&cpu6>;
51*4882a593Smuzhiyun				};
52*4882a593Smuzhiyun				core3 {
53*4882a593Smuzhiyun					cpu = <&cpu7>;
54*4882a593Smuzhiyun				};
55*4882a593Smuzhiyun			};
56*4882a593Smuzhiyun		};
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun		cpu0: cpu@0 {
59*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
60*4882a593Smuzhiyun			device_type = "cpu";
61*4882a593Smuzhiyun			reg = <0x0 0x0>;
62*4882a593Smuzhiyun			enable-method = "psci";
63*4882a593Smuzhiyun			next-level-cache = <&A53_L2>;
64*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
65*4882a593Smuzhiyun			capacity-dmips-mhz = <592>;
66*4882a593Smuzhiyun			clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
67*4882a593Smuzhiyun			operating-points-v2 = <&cluster0_opp>;
68*4882a593Smuzhiyun			#cooling-cells = <2>;
69*4882a593Smuzhiyun			dynamic-power-coefficient = <110>;
70*4882a593Smuzhiyun		};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun		cpu1: cpu@1 {
73*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
74*4882a593Smuzhiyun			device_type = "cpu";
75*4882a593Smuzhiyun			reg = <0x0 0x1>;
76*4882a593Smuzhiyun			enable-method = "psci";
77*4882a593Smuzhiyun			next-level-cache = <&A53_L2>;
78*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
79*4882a593Smuzhiyun			capacity-dmips-mhz = <592>;
80*4882a593Smuzhiyun			clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
81*4882a593Smuzhiyun			operating-points-v2 = <&cluster0_opp>;
82*4882a593Smuzhiyun			#cooling-cells = <2>;
83*4882a593Smuzhiyun		};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun		cpu2: cpu@2 {
86*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
87*4882a593Smuzhiyun			device_type = "cpu";
88*4882a593Smuzhiyun			reg = <0x0 0x2>;
89*4882a593Smuzhiyun			enable-method = "psci";
90*4882a593Smuzhiyun			next-level-cache = <&A53_L2>;
91*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
92*4882a593Smuzhiyun			capacity-dmips-mhz = <592>;
93*4882a593Smuzhiyun			clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
94*4882a593Smuzhiyun			operating-points-v2 = <&cluster0_opp>;
95*4882a593Smuzhiyun			#cooling-cells = <2>;
96*4882a593Smuzhiyun		};
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun		cpu3: cpu@3 {
99*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
100*4882a593Smuzhiyun			device_type = "cpu";
101*4882a593Smuzhiyun			reg = <0x0 0x3>;
102*4882a593Smuzhiyun			enable-method = "psci";
103*4882a593Smuzhiyun			next-level-cache = <&A53_L2>;
104*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
105*4882a593Smuzhiyun			capacity-dmips-mhz = <592>;
106*4882a593Smuzhiyun			clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
107*4882a593Smuzhiyun			operating-points-v2 = <&cluster0_opp>;
108*4882a593Smuzhiyun			#cooling-cells = <2>;
109*4882a593Smuzhiyun		};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun		cpu4: cpu@100 {
112*4882a593Smuzhiyun			compatible = "arm,cortex-a73";
113*4882a593Smuzhiyun			device_type = "cpu";
114*4882a593Smuzhiyun			reg = <0x0 0x100>;
115*4882a593Smuzhiyun			enable-method = "psci";
116*4882a593Smuzhiyun			next-level-cache = <&A73_L2>;
117*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
118*4882a593Smuzhiyun			capacity-dmips-mhz = <1024>;
119*4882a593Smuzhiyun			clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
120*4882a593Smuzhiyun			operating-points-v2 = <&cluster1_opp>;
121*4882a593Smuzhiyun			#cooling-cells = <2>;
122*4882a593Smuzhiyun			dynamic-power-coefficient = <550>;
123*4882a593Smuzhiyun		};
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun		cpu5: cpu@101 {
126*4882a593Smuzhiyun			compatible = "arm,cortex-a73";
127*4882a593Smuzhiyun			device_type = "cpu";
128*4882a593Smuzhiyun			reg = <0x0 0x101>;
129*4882a593Smuzhiyun			enable-method = "psci";
130*4882a593Smuzhiyun			next-level-cache = <&A73_L2>;
131*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
132*4882a593Smuzhiyun			capacity-dmips-mhz = <1024>;
133*4882a593Smuzhiyun			clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
134*4882a593Smuzhiyun			operating-points-v2 = <&cluster1_opp>;
135*4882a593Smuzhiyun			#cooling-cells = <2>;
136*4882a593Smuzhiyun		};
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun		cpu6: cpu@102 {
139*4882a593Smuzhiyun			compatible = "arm,cortex-a73";
140*4882a593Smuzhiyun			device_type = "cpu";
141*4882a593Smuzhiyun			reg = <0x0 0x102>;
142*4882a593Smuzhiyun			enable-method = "psci";
143*4882a593Smuzhiyun			next-level-cache = <&A73_L2>;
144*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
145*4882a593Smuzhiyun			capacity-dmips-mhz = <1024>;
146*4882a593Smuzhiyun			clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
147*4882a593Smuzhiyun			operating-points-v2 = <&cluster1_opp>;
148*4882a593Smuzhiyun			#cooling-cells = <2>;
149*4882a593Smuzhiyun		};
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun		cpu7: cpu@103 {
152*4882a593Smuzhiyun			compatible = "arm,cortex-a73";
153*4882a593Smuzhiyun			device_type = "cpu";
154*4882a593Smuzhiyun			reg = <0x0 0x103>;
155*4882a593Smuzhiyun			enable-method = "psci";
156*4882a593Smuzhiyun			next-level-cache = <&A73_L2>;
157*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
158*4882a593Smuzhiyun			capacity-dmips-mhz = <1024>;
159*4882a593Smuzhiyun			clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
160*4882a593Smuzhiyun			operating-points-v2 = <&cluster1_opp>;
161*4882a593Smuzhiyun			#cooling-cells = <2>;
162*4882a593Smuzhiyun		};
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun		idle-states {
165*4882a593Smuzhiyun			entry-method = "psci";
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun			CPU_SLEEP_0: cpu-sleep-0 {
168*4882a593Smuzhiyun				compatible = "arm,idle-state";
169*4882a593Smuzhiyun				local-timer-stop;
170*4882a593Smuzhiyun				arm,psci-suspend-param = <0x0010000>;
171*4882a593Smuzhiyun				entry-latency-us = <400>;
172*4882a593Smuzhiyun				exit-latency-us = <650>;
173*4882a593Smuzhiyun				min-residency-us = <1500>;
174*4882a593Smuzhiyun			};
175*4882a593Smuzhiyun			CLUSTER_SLEEP_0: cluster-sleep-0 {
176*4882a593Smuzhiyun				compatible = "arm,idle-state";
177*4882a593Smuzhiyun				local-timer-stop;
178*4882a593Smuzhiyun				arm,psci-suspend-param = <0x1010000>;
179*4882a593Smuzhiyun				entry-latency-us = <500>;
180*4882a593Smuzhiyun				exit-latency-us = <1600>;
181*4882a593Smuzhiyun				min-residency-us = <3500>;
182*4882a593Smuzhiyun			};
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun			CPU_SLEEP_1: cpu-sleep-1 {
186*4882a593Smuzhiyun				compatible = "arm,idle-state";
187*4882a593Smuzhiyun				local-timer-stop;
188*4882a593Smuzhiyun				arm,psci-suspend-param = <0x0010000>;
189*4882a593Smuzhiyun				entry-latency-us = <400>;
190*4882a593Smuzhiyun				exit-latency-us = <550>;
191*4882a593Smuzhiyun				min-residency-us = <1500>;
192*4882a593Smuzhiyun			};
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun			CLUSTER_SLEEP_1: cluster-sleep-1 {
195*4882a593Smuzhiyun				compatible = "arm,idle-state";
196*4882a593Smuzhiyun				local-timer-stop;
197*4882a593Smuzhiyun				arm,psci-suspend-param = <0x1010000>;
198*4882a593Smuzhiyun				entry-latency-us = <800>;
199*4882a593Smuzhiyun				exit-latency-us = <2900>;
200*4882a593Smuzhiyun				min-residency-us = <3500>;
201*4882a593Smuzhiyun			};
202*4882a593Smuzhiyun		};
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun		A53_L2: l2-cache0 {
205*4882a593Smuzhiyun			compatible = "cache";
206*4882a593Smuzhiyun		};
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun		A73_L2: l2-cache1 {
209*4882a593Smuzhiyun			compatible = "cache";
210*4882a593Smuzhiyun		};
211*4882a593Smuzhiyun	};
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun	cluster0_opp: opp_table0 {
214*4882a593Smuzhiyun		compatible = "operating-points-v2";
215*4882a593Smuzhiyun		opp-shared;
216*4882a593Smuzhiyun
217*4882a593Smuzhiyun		opp00 {
218*4882a593Smuzhiyun			opp-hz = /bits/ 64 <533000000>;
219*4882a593Smuzhiyun			opp-microvolt = <700000>;
220*4882a593Smuzhiyun			clock-latency-ns = <300000>;
221*4882a593Smuzhiyun		};
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun		opp01 {
224*4882a593Smuzhiyun			opp-hz = /bits/ 64 <999000000>;
225*4882a593Smuzhiyun			opp-microvolt = <800000>;
226*4882a593Smuzhiyun			clock-latency-ns = <300000>;
227*4882a593Smuzhiyun		};
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun		opp02 {
230*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1402000000>;
231*4882a593Smuzhiyun			opp-microvolt = <900000>;
232*4882a593Smuzhiyun			clock-latency-ns = <300000>;
233*4882a593Smuzhiyun		};
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun		opp03 {
236*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1709000000>;
237*4882a593Smuzhiyun			opp-microvolt = <1000000>;
238*4882a593Smuzhiyun			clock-latency-ns = <300000>;
239*4882a593Smuzhiyun		};
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun		opp04 {
242*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1844000000>;
243*4882a593Smuzhiyun			opp-microvolt = <1100000>;
244*4882a593Smuzhiyun			clock-latency-ns = <300000>;
245*4882a593Smuzhiyun		};
246*4882a593Smuzhiyun	};
247*4882a593Smuzhiyun
248*4882a593Smuzhiyun	cluster1_opp: opp_table1 {
249*4882a593Smuzhiyun		compatible = "operating-points-v2";
250*4882a593Smuzhiyun		opp-shared;
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun		opp10 {
253*4882a593Smuzhiyun			opp-hz = /bits/ 64 <903000000>;
254*4882a593Smuzhiyun			opp-microvolt = <700000>;
255*4882a593Smuzhiyun			clock-latency-ns = <300000>;
256*4882a593Smuzhiyun		};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun		opp11 {
259*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1421000000>;
260*4882a593Smuzhiyun			opp-microvolt = <800000>;
261*4882a593Smuzhiyun			clock-latency-ns = <300000>;
262*4882a593Smuzhiyun		};
263*4882a593Smuzhiyun
264*4882a593Smuzhiyun		opp12 {
265*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1805000000>;
266*4882a593Smuzhiyun			opp-microvolt = <900000>;
267*4882a593Smuzhiyun			clock-latency-ns = <300000>;
268*4882a593Smuzhiyun		};
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun		opp13 {
271*4882a593Smuzhiyun			opp-hz = /bits/ 64 <2112000000>;
272*4882a593Smuzhiyun			opp-microvolt = <1000000>;
273*4882a593Smuzhiyun			clock-latency-ns = <300000>;
274*4882a593Smuzhiyun		};
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun		opp14 {
277*4882a593Smuzhiyun			opp-hz = /bits/ 64 <2362000000>;
278*4882a593Smuzhiyun			opp-microvolt = <1100000>;
279*4882a593Smuzhiyun			clock-latency-ns = <300000>;
280*4882a593Smuzhiyun		};
281*4882a593Smuzhiyun	};
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun	gic: interrupt-controller@e82b0000 {
284*4882a593Smuzhiyun		compatible = "arm,gic-400";
285*4882a593Smuzhiyun		reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
286*4882a593Smuzhiyun		      <0x0 0xe82b2000 0 0x2000>, /* GICC */
287*4882a593Smuzhiyun		      <0x0 0xe82b4000 0 0x2000>, /* GICH */
288*4882a593Smuzhiyun		      <0x0 0xe82b6000 0 0x2000>; /* GICV */
289*4882a593Smuzhiyun		#address-cells = <0>;
290*4882a593Smuzhiyun		#interrupt-cells = <3>;
291*4882a593Smuzhiyun		interrupt-controller;
292*4882a593Smuzhiyun		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
293*4882a593Smuzhiyun					 IRQ_TYPE_LEVEL_HIGH)>;
294*4882a593Smuzhiyun	};
295*4882a593Smuzhiyun
296*4882a593Smuzhiyun	a53-pmu {
297*4882a593Smuzhiyun		compatible = "arm,cortex-a53-pmu";
298*4882a593Smuzhiyun		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
299*4882a593Smuzhiyun			     <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
300*4882a593Smuzhiyun			     <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
301*4882a593Smuzhiyun			     <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
302*4882a593Smuzhiyun		interrupt-affinity = <&cpu0>,
303*4882a593Smuzhiyun				     <&cpu1>,
304*4882a593Smuzhiyun				     <&cpu2>,
305*4882a593Smuzhiyun				     <&cpu3>;
306*4882a593Smuzhiyun	};
307*4882a593Smuzhiyun
308*4882a593Smuzhiyun	a73-pmu {
309*4882a593Smuzhiyun		compatible = "arm,cortex-a73-pmu";
310*4882a593Smuzhiyun		interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
311*4882a593Smuzhiyun			     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
312*4882a593Smuzhiyun			     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
313*4882a593Smuzhiyun			     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
314*4882a593Smuzhiyun		interrupt-affinity = <&cpu4>,
315*4882a593Smuzhiyun				     <&cpu5>,
316*4882a593Smuzhiyun				     <&cpu6>,
317*4882a593Smuzhiyun				     <&cpu7>;
318*4882a593Smuzhiyun	};
319*4882a593Smuzhiyun
320*4882a593Smuzhiyun	timer {
321*4882a593Smuzhiyun		compatible = "arm,armv8-timer";
322*4882a593Smuzhiyun		interrupt-parent = <&gic>;
323*4882a593Smuzhiyun		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
324*4882a593Smuzhiyun					  IRQ_TYPE_LEVEL_LOW)>,
325*4882a593Smuzhiyun			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
326*4882a593Smuzhiyun					  IRQ_TYPE_LEVEL_LOW)>,
327*4882a593Smuzhiyun			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
328*4882a593Smuzhiyun					  IRQ_TYPE_LEVEL_LOW)>,
329*4882a593Smuzhiyun			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
330*4882a593Smuzhiyun					  IRQ_TYPE_LEVEL_LOW)>;
331*4882a593Smuzhiyun	};
332*4882a593Smuzhiyun
333*4882a593Smuzhiyun	soc {
334*4882a593Smuzhiyun		compatible = "simple-bus";
335*4882a593Smuzhiyun		#address-cells = <2>;
336*4882a593Smuzhiyun		#size-cells = <2>;
337*4882a593Smuzhiyun		ranges;
338*4882a593Smuzhiyun
339*4882a593Smuzhiyun		crg_ctrl: crg_ctrl@fff35000 {
340*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-crgctrl", "syscon";
341*4882a593Smuzhiyun			reg = <0x0 0xfff35000 0x0 0x1000>;
342*4882a593Smuzhiyun			#clock-cells = <1>;
343*4882a593Smuzhiyun		};
344*4882a593Smuzhiyun
345*4882a593Smuzhiyun		crg_rst: crg_rst_controller {
346*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-reset";
347*4882a593Smuzhiyun			#reset-cells = <2>;
348*4882a593Smuzhiyun			hisi,rst-syscon = <&crg_ctrl>;
349*4882a593Smuzhiyun		};
350*4882a593Smuzhiyun
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun		pctrl: pctrl@e8a09000 {
353*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-pctrl", "syscon";
354*4882a593Smuzhiyun			reg = <0x0 0xe8a09000 0x0 0x2000>;
355*4882a593Smuzhiyun			#clock-cells = <1>;
356*4882a593Smuzhiyun		};
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun		pmuctrl: crg_ctrl@fff34000 {
359*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-pmuctrl", "syscon";
360*4882a593Smuzhiyun			reg = <0x0 0xfff34000 0x0 0x1000>;
361*4882a593Smuzhiyun			#clock-cells = <1>;
362*4882a593Smuzhiyun		};
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun		sctrl: sctrl@fff0a000 {
365*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-sctrl", "syscon";
366*4882a593Smuzhiyun			reg = <0x0 0xfff0a000 0x0 0x1000>;
367*4882a593Smuzhiyun			#clock-cells = <1>;
368*4882a593Smuzhiyun		};
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun		iomcu: iomcu@ffd7e000 {
371*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-iomcu", "syscon";
372*4882a593Smuzhiyun			reg = <0x0 0xffd7e000 0x0 0x1000>;
373*4882a593Smuzhiyun			#clock-cells = <1>;
374*4882a593Smuzhiyun
375*4882a593Smuzhiyun		};
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun		iomcu_rst: reset {
378*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-reset";
379*4882a593Smuzhiyun			hisi,rst-syscon = <&iomcu>;
380*4882a593Smuzhiyun			#reset-cells = <2>;
381*4882a593Smuzhiyun		};
382*4882a593Smuzhiyun
383*4882a593Smuzhiyun		mailbox: mailbox@e896b000 {
384*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-mbox";
385*4882a593Smuzhiyun			reg = <0x0 0xe896b000 0x0 0x1000>;
386*4882a593Smuzhiyun			interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
387*4882a593Smuzhiyun				     <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
388*4882a593Smuzhiyun			#mbox-cells = <3>;
389*4882a593Smuzhiyun		};
390*4882a593Smuzhiyun
391*4882a593Smuzhiyun		stub_clock: stub_clock@e896b500 {
392*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-stub-clk";
393*4882a593Smuzhiyun			reg = <0x0 0xe896b500 0x0 0x0100>;
394*4882a593Smuzhiyun			#clock-cells = <1>;
395*4882a593Smuzhiyun			mboxes = <&mailbox 13 3 0>;
396*4882a593Smuzhiyun		};
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun		dual_timer0: timer@fff14000 {
399*4882a593Smuzhiyun			compatible = "arm,sp804", "arm,primecell";
400*4882a593Smuzhiyun			reg = <0x0 0xfff14000 0x0 0x1000>;
401*4882a593Smuzhiyun			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
402*4882a593Smuzhiyun				     <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
403*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_OSC32K>,
404*4882a593Smuzhiyun				 <&crg_ctrl HI3660_OSC32K>,
405*4882a593Smuzhiyun				 <&crg_ctrl HI3660_OSC32K>;
406*4882a593Smuzhiyun			clock-names = "timer1", "timer2", "apb_pclk";
407*4882a593Smuzhiyun		};
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun		i2c0: i2c@ffd71000 {
410*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
411*4882a593Smuzhiyun			reg = <0x0 0xffd71000 0x0 0x1000>;
412*4882a593Smuzhiyun			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
413*4882a593Smuzhiyun			#address-cells = <1>;
414*4882a593Smuzhiyun			#size-cells = <0>;
415*4882a593Smuzhiyun			clock-frequency = <400000>;
416*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_I2C0>;
417*4882a593Smuzhiyun			resets = <&iomcu_rst 0x20 3>;
418*4882a593Smuzhiyun			pinctrl-names = "default";
419*4882a593Smuzhiyun			pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>;
420*4882a593Smuzhiyun			status = "disabled";
421*4882a593Smuzhiyun		};
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun		i2c1: i2c@ffd72000 {
424*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
425*4882a593Smuzhiyun			reg = <0x0 0xffd72000 0x0 0x1000>;
426*4882a593Smuzhiyun			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
427*4882a593Smuzhiyun			#address-cells = <1>;
428*4882a593Smuzhiyun			#size-cells = <0>;
429*4882a593Smuzhiyun			clock-frequency = <400000>;
430*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_I2C1>;
431*4882a593Smuzhiyun			resets = <&iomcu_rst 0x20 4>;
432*4882a593Smuzhiyun			pinctrl-names = "default";
433*4882a593Smuzhiyun			pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>;
434*4882a593Smuzhiyun			status = "ok";
435*4882a593Smuzhiyun		};
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun		i2c3: i2c@fdf0c000 {
438*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
439*4882a593Smuzhiyun			reg = <0x0 0xfdf0c000 0x0 0x1000>;
440*4882a593Smuzhiyun			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
441*4882a593Smuzhiyun			#address-cells = <1>;
442*4882a593Smuzhiyun			#size-cells = <0>;
443*4882a593Smuzhiyun			clock-frequency = <400000>;
444*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_I2C3>;
445*4882a593Smuzhiyun			resets = <&crg_rst 0x78 7>;
446*4882a593Smuzhiyun			pinctrl-names = "default";
447*4882a593Smuzhiyun			pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>;
448*4882a593Smuzhiyun			status = "disabled";
449*4882a593Smuzhiyun		};
450*4882a593Smuzhiyun
451*4882a593Smuzhiyun		i2c7: i2c@fdf0b000 {
452*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
453*4882a593Smuzhiyun			reg = <0x0 0xfdf0b000 0x0 0x1000>;
454*4882a593Smuzhiyun			interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
455*4882a593Smuzhiyun			#address-cells = <1>;
456*4882a593Smuzhiyun			#size-cells = <0>;
457*4882a593Smuzhiyun			clock-frequency = <400000>;
458*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_I2C7>;
459*4882a593Smuzhiyun			resets = <&crg_rst 0x60 14>;
460*4882a593Smuzhiyun			pinctrl-names = "default";
461*4882a593Smuzhiyun			pinctrl-0 = <&i2c7_pmx_func &i2c7_cfg_func>;
462*4882a593Smuzhiyun			status = "disabled";
463*4882a593Smuzhiyun		};
464*4882a593Smuzhiyun
465*4882a593Smuzhiyun		uart0: serial@fdf02000 {
466*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
467*4882a593Smuzhiyun			reg = <0x0 0xfdf02000 0x0 0x1000>;
468*4882a593Smuzhiyun			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
469*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
470*4882a593Smuzhiyun				 <&crg_ctrl HI3660_PCLK>;
471*4882a593Smuzhiyun			clock-names = "uartclk", "apb_pclk";
472*4882a593Smuzhiyun			pinctrl-names = "default";
473*4882a593Smuzhiyun			pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
474*4882a593Smuzhiyun			status = "disabled";
475*4882a593Smuzhiyun		};
476*4882a593Smuzhiyun
477*4882a593Smuzhiyun		uart1: serial@fdf00000 {
478*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
479*4882a593Smuzhiyun			reg = <0x0 0xfdf00000 0x0 0x1000>;
480*4882a593Smuzhiyun			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
481*4882a593Smuzhiyun			dma-names = "rx", "tx";
482*4882a593Smuzhiyun			dmas =  <&dma0 2 &dma0 3>;
483*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>,
484*4882a593Smuzhiyun				 <&crg_ctrl HI3660_CLK_GATE_UART1>;
485*4882a593Smuzhiyun			clock-names = "uartclk", "apb_pclk";
486*4882a593Smuzhiyun			pinctrl-names = "default";
487*4882a593Smuzhiyun			pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>;
488*4882a593Smuzhiyun			status = "disabled";
489*4882a593Smuzhiyun		};
490*4882a593Smuzhiyun
491*4882a593Smuzhiyun		uart2: serial@fdf03000 {
492*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
493*4882a593Smuzhiyun			reg = <0x0 0xfdf03000 0x0 0x1000>;
494*4882a593Smuzhiyun			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
495*4882a593Smuzhiyun			dma-names = "rx", "tx";
496*4882a593Smuzhiyun			dmas =  <&dma0 4 &dma0 5>;
497*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>,
498*4882a593Smuzhiyun				 <&crg_ctrl HI3660_PCLK>;
499*4882a593Smuzhiyun			clock-names = "uartclk", "apb_pclk";
500*4882a593Smuzhiyun			pinctrl-names = "default";
501*4882a593Smuzhiyun			pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
502*4882a593Smuzhiyun			status = "disabled";
503*4882a593Smuzhiyun		};
504*4882a593Smuzhiyun
505*4882a593Smuzhiyun		uart3: serial@ffd74000 {
506*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
507*4882a593Smuzhiyun			reg = <0x0 0xffd74000 0x0 0x1000>;
508*4882a593Smuzhiyun			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
509*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_FACTOR_UART3>,
510*4882a593Smuzhiyun				 <&crg_ctrl HI3660_PCLK>;
511*4882a593Smuzhiyun			clock-names = "uartclk", "apb_pclk";
512*4882a593Smuzhiyun			pinctrl-names = "default";
513*4882a593Smuzhiyun			pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
514*4882a593Smuzhiyun			status = "disabled";
515*4882a593Smuzhiyun		};
516*4882a593Smuzhiyun
517*4882a593Smuzhiyun		uart4: serial@fdf01000 {
518*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
519*4882a593Smuzhiyun			reg = <0x0 0xfdf01000 0x0 0x1000>;
520*4882a593Smuzhiyun			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
521*4882a593Smuzhiyun			dma-names = "rx", "tx";
522*4882a593Smuzhiyun			dmas =  <&dma0 6 &dma0 7>;
523*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>,
524*4882a593Smuzhiyun				 <&crg_ctrl HI3660_CLK_GATE_UART4>;
525*4882a593Smuzhiyun			clock-names = "uartclk", "apb_pclk";
526*4882a593Smuzhiyun			pinctrl-names = "default";
527*4882a593Smuzhiyun			pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
528*4882a593Smuzhiyun			status = "disabled";
529*4882a593Smuzhiyun		};
530*4882a593Smuzhiyun
531*4882a593Smuzhiyun		uart5: serial@fdf05000 {
532*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
533*4882a593Smuzhiyun			reg = <0x0 0xfdf05000 0x0 0x1000>;
534*4882a593Smuzhiyun			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
535*4882a593Smuzhiyun			dma-names = "rx", "tx";
536*4882a593Smuzhiyun			dmas =  <&dma0 8 &dma0 9>;
537*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>,
538*4882a593Smuzhiyun				 <&crg_ctrl HI3660_CLK_GATE_UART5>;
539*4882a593Smuzhiyun			clock-names = "uartclk", "apb_pclk";
540*4882a593Smuzhiyun			pinctrl-names = "default";
541*4882a593Smuzhiyun			pinctrl-0 = <&uart5_pmx_func &uart5_cfg_func>;
542*4882a593Smuzhiyun			status = "disabled";
543*4882a593Smuzhiyun		};
544*4882a593Smuzhiyun
545*4882a593Smuzhiyun		uart6: serial@fff32000 {
546*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
547*4882a593Smuzhiyun			reg = <0x0 0xfff32000 0x0 0x1000>;
548*4882a593Smuzhiyun			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
549*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_UART6>,
550*4882a593Smuzhiyun				 <&crg_ctrl HI3660_PCLK>;
551*4882a593Smuzhiyun			clock-names = "uartclk", "apb_pclk";
552*4882a593Smuzhiyun			pinctrl-names = "default";
553*4882a593Smuzhiyun			pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>;
554*4882a593Smuzhiyun			status = "disabled";
555*4882a593Smuzhiyun		};
556*4882a593Smuzhiyun
557*4882a593Smuzhiyun		dma0: dma@fdf30000 {
558*4882a593Smuzhiyun			compatible = "hisilicon,k3-dma-1.0";
559*4882a593Smuzhiyun			reg = <0x0 0xfdf30000 0x0 0x1000>;
560*4882a593Smuzhiyun			#dma-cells = <1>;
561*4882a593Smuzhiyun			dma-channels = <16>;
562*4882a593Smuzhiyun			dma-requests = <32>;
563*4882a593Smuzhiyun			dma-channel-mask = <0xfffe>;
564*4882a593Smuzhiyun			interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
565*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_DMAC>;
566*4882a593Smuzhiyun			dma-no-cci;
567*4882a593Smuzhiyun			dma-type = "hi3660_dma";
568*4882a593Smuzhiyun		};
569*4882a593Smuzhiyun
570*4882a593Smuzhiyun		asp_dmac: dma-controller@e804b000 {
571*4882a593Smuzhiyun			compatible = "hisilicon,hisi-pcm-asp-dma-1.0";
572*4882a593Smuzhiyun			reg = <0x0 0xe804b000 0x0 0x1000>;
573*4882a593Smuzhiyun			#dma-cells = <1>;
574*4882a593Smuzhiyun			dma-channels = <16>;
575*4882a593Smuzhiyun			dma-requests = <32>;
576*4882a593Smuzhiyun			interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
577*4882a593Smuzhiyun			interrupt-names = "asp_dma_irq";
578*4882a593Smuzhiyun		};
579*4882a593Smuzhiyun
580*4882a593Smuzhiyun		rtc0: rtc@fff04000 {
581*4882a593Smuzhiyun			compatible = "arm,pl031", "arm,primecell";
582*4882a593Smuzhiyun			reg = <0x0 0Xfff04000 0x0 0x1000>;
583*4882a593Smuzhiyun			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
584*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK>;
585*4882a593Smuzhiyun			clock-names = "apb_pclk";
586*4882a593Smuzhiyun		};
587*4882a593Smuzhiyun
588*4882a593Smuzhiyun		gpio0: gpio@e8a0b000 {
589*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
590*4882a593Smuzhiyun			reg = <0 0xe8a0b000 0 0x1000>;
591*4882a593Smuzhiyun			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
592*4882a593Smuzhiyun			gpio-controller;
593*4882a593Smuzhiyun			#gpio-cells = <2>;
594*4882a593Smuzhiyun			gpio-ranges = <&pmx0 1 0 7>;
595*4882a593Smuzhiyun			interrupt-controller;
596*4882a593Smuzhiyun			#interrupt-cells = <2>;
597*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO0>;
598*4882a593Smuzhiyun			clock-names = "apb_pclk";
599*4882a593Smuzhiyun		};
600*4882a593Smuzhiyun
601*4882a593Smuzhiyun		gpio1: gpio@e8a0c000 {
602*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
603*4882a593Smuzhiyun			reg = <0 0xe8a0c000 0 0x1000>;
604*4882a593Smuzhiyun			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
605*4882a593Smuzhiyun			gpio-controller;
606*4882a593Smuzhiyun			#gpio-cells = <2>;
607*4882a593Smuzhiyun			gpio-ranges = <&pmx0 1 7 7>;
608*4882a593Smuzhiyun			interrupt-controller;
609*4882a593Smuzhiyun			#interrupt-cells = <2>;
610*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO1>;
611*4882a593Smuzhiyun			clock-names = "apb_pclk";
612*4882a593Smuzhiyun		};
613*4882a593Smuzhiyun
614*4882a593Smuzhiyun		gpio2: gpio@e8a0d000 {
615*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
616*4882a593Smuzhiyun			reg = <0 0xe8a0d000 0 0x1000>;
617*4882a593Smuzhiyun			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
618*4882a593Smuzhiyun			gpio-controller;
619*4882a593Smuzhiyun			#gpio-cells = <2>;
620*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 14 8>;
621*4882a593Smuzhiyun			interrupt-controller;
622*4882a593Smuzhiyun			#interrupt-cells = <2>;
623*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO2>;
624*4882a593Smuzhiyun			clock-names = "apb_pclk";
625*4882a593Smuzhiyun		};
626*4882a593Smuzhiyun
627*4882a593Smuzhiyun		gpio3: gpio@e8a0e000 {
628*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
629*4882a593Smuzhiyun			reg = <0 0xe8a0e000 0 0x1000>;
630*4882a593Smuzhiyun			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
631*4882a593Smuzhiyun			gpio-controller;
632*4882a593Smuzhiyun			#gpio-cells = <2>;
633*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 22 8>;
634*4882a593Smuzhiyun			interrupt-controller;
635*4882a593Smuzhiyun			#interrupt-cells = <2>;
636*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO3>;
637*4882a593Smuzhiyun			clock-names = "apb_pclk";
638*4882a593Smuzhiyun		};
639*4882a593Smuzhiyun
640*4882a593Smuzhiyun		gpio4: gpio@e8a0f000 {
641*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
642*4882a593Smuzhiyun			reg = <0 0xe8a0f000 0 0x1000>;
643*4882a593Smuzhiyun			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
644*4882a593Smuzhiyun			gpio-controller;
645*4882a593Smuzhiyun			#gpio-cells = <2>;
646*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 30 8>;
647*4882a593Smuzhiyun			interrupt-controller;
648*4882a593Smuzhiyun			#interrupt-cells = <2>;
649*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO4>;
650*4882a593Smuzhiyun			clock-names = "apb_pclk";
651*4882a593Smuzhiyun		};
652*4882a593Smuzhiyun
653*4882a593Smuzhiyun		gpio5: gpio@e8a10000 {
654*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
655*4882a593Smuzhiyun			reg = <0 0xe8a10000 0 0x1000>;
656*4882a593Smuzhiyun			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
657*4882a593Smuzhiyun			gpio-controller;
658*4882a593Smuzhiyun			#gpio-cells = <2>;
659*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 38 8>;
660*4882a593Smuzhiyun			interrupt-controller;
661*4882a593Smuzhiyun			#interrupt-cells = <2>;
662*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO5>;
663*4882a593Smuzhiyun			clock-names = "apb_pclk";
664*4882a593Smuzhiyun		};
665*4882a593Smuzhiyun
666*4882a593Smuzhiyun		gpio6: gpio@e8a11000 {
667*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
668*4882a593Smuzhiyun			reg = <0 0xe8a11000 0 0x1000>;
669*4882a593Smuzhiyun			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
670*4882a593Smuzhiyun			gpio-controller;
671*4882a593Smuzhiyun			#gpio-cells = <2>;
672*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 46 8>;
673*4882a593Smuzhiyun			interrupt-controller;
674*4882a593Smuzhiyun			#interrupt-cells = <2>;
675*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO6>;
676*4882a593Smuzhiyun			clock-names = "apb_pclk";
677*4882a593Smuzhiyun		};
678*4882a593Smuzhiyun
679*4882a593Smuzhiyun		gpio7: gpio@e8a12000 {
680*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
681*4882a593Smuzhiyun			reg = <0 0xe8a12000 0 0x1000>;
682*4882a593Smuzhiyun			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
683*4882a593Smuzhiyun			gpio-controller;
684*4882a593Smuzhiyun			#gpio-cells = <2>;
685*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 54 8>;
686*4882a593Smuzhiyun			interrupt-controller;
687*4882a593Smuzhiyun			#interrupt-cells = <2>;
688*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO7>;
689*4882a593Smuzhiyun			clock-names = "apb_pclk";
690*4882a593Smuzhiyun		};
691*4882a593Smuzhiyun
692*4882a593Smuzhiyun		gpio8: gpio@e8a13000 {
693*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
694*4882a593Smuzhiyun			reg = <0 0xe8a13000 0 0x1000>;
695*4882a593Smuzhiyun			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
696*4882a593Smuzhiyun			gpio-controller;
697*4882a593Smuzhiyun			#gpio-cells = <2>;
698*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 62 8>;
699*4882a593Smuzhiyun			interrupt-controller;
700*4882a593Smuzhiyun			#interrupt-cells = <2>;
701*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO8>;
702*4882a593Smuzhiyun			clock-names = "apb_pclk";
703*4882a593Smuzhiyun		};
704*4882a593Smuzhiyun
705*4882a593Smuzhiyun		gpio9: gpio@e8a14000 {
706*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
707*4882a593Smuzhiyun			reg = <0 0xe8a14000 0 0x1000>;
708*4882a593Smuzhiyun			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
709*4882a593Smuzhiyun			gpio-controller;
710*4882a593Smuzhiyun			#gpio-cells = <2>;
711*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 70 8>;
712*4882a593Smuzhiyun			interrupt-controller;
713*4882a593Smuzhiyun			#interrupt-cells = <2>;
714*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO9>;
715*4882a593Smuzhiyun			clock-names = "apb_pclk";
716*4882a593Smuzhiyun		};
717*4882a593Smuzhiyun
718*4882a593Smuzhiyun		gpio10: gpio@e8a15000 {
719*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
720*4882a593Smuzhiyun			reg = <0 0xe8a15000 0 0x1000>;
721*4882a593Smuzhiyun			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
722*4882a593Smuzhiyun			gpio-controller;
723*4882a593Smuzhiyun			#gpio-cells = <2>;
724*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 78 8>;
725*4882a593Smuzhiyun			interrupt-controller;
726*4882a593Smuzhiyun			#interrupt-cells = <2>;
727*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO10>;
728*4882a593Smuzhiyun			clock-names = "apb_pclk";
729*4882a593Smuzhiyun		};
730*4882a593Smuzhiyun
731*4882a593Smuzhiyun		gpio11: gpio@e8a16000 {
732*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
733*4882a593Smuzhiyun			reg = <0 0xe8a16000 0 0x1000>;
734*4882a593Smuzhiyun			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
735*4882a593Smuzhiyun			gpio-controller;
736*4882a593Smuzhiyun			#gpio-cells = <2>;
737*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 86 8>;
738*4882a593Smuzhiyun			interrupt-controller;
739*4882a593Smuzhiyun			#interrupt-cells = <2>;
740*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO11>;
741*4882a593Smuzhiyun			clock-names = "apb_pclk";
742*4882a593Smuzhiyun		};
743*4882a593Smuzhiyun
744*4882a593Smuzhiyun		gpio12: gpio@e8a17000 {
745*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
746*4882a593Smuzhiyun			reg = <0 0xe8a17000 0 0x1000>;
747*4882a593Smuzhiyun			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
748*4882a593Smuzhiyun			gpio-controller;
749*4882a593Smuzhiyun			#gpio-cells = <2>;
750*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 94 3 &pmx0 7 101 1>;
751*4882a593Smuzhiyun			interrupt-controller;
752*4882a593Smuzhiyun			#interrupt-cells = <2>;
753*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO12>;
754*4882a593Smuzhiyun			clock-names = "apb_pclk";
755*4882a593Smuzhiyun		};
756*4882a593Smuzhiyun
757*4882a593Smuzhiyun		gpio13: gpio@e8a18000 {
758*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
759*4882a593Smuzhiyun			reg = <0 0xe8a18000 0 0x1000>;
760*4882a593Smuzhiyun			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
761*4882a593Smuzhiyun			gpio-controller;
762*4882a593Smuzhiyun			#gpio-cells = <2>;
763*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 102 8>;
764*4882a593Smuzhiyun			interrupt-controller;
765*4882a593Smuzhiyun			#interrupt-cells = <2>;
766*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO13>;
767*4882a593Smuzhiyun			clock-names = "apb_pclk";
768*4882a593Smuzhiyun		};
769*4882a593Smuzhiyun
770*4882a593Smuzhiyun		gpio14: gpio@e8a19000 {
771*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
772*4882a593Smuzhiyun			reg = <0 0xe8a19000 0 0x1000>;
773*4882a593Smuzhiyun			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
774*4882a593Smuzhiyun			gpio-controller;
775*4882a593Smuzhiyun			#gpio-cells = <2>;
776*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 110 8>;
777*4882a593Smuzhiyun			interrupt-controller;
778*4882a593Smuzhiyun			#interrupt-cells = <2>;
779*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO14>;
780*4882a593Smuzhiyun			clock-names = "apb_pclk";
781*4882a593Smuzhiyun		};
782*4882a593Smuzhiyun
783*4882a593Smuzhiyun		gpio15: gpio@e8a1a000 {
784*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
785*4882a593Smuzhiyun			reg = <0 0xe8a1a000 0 0x1000>;
786*4882a593Smuzhiyun			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
787*4882a593Smuzhiyun			gpio-controller;
788*4882a593Smuzhiyun			#gpio-cells = <2>;
789*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 118 6>;
790*4882a593Smuzhiyun			interrupt-controller;
791*4882a593Smuzhiyun			#interrupt-cells = <2>;
792*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO15>;
793*4882a593Smuzhiyun			clock-names = "apb_pclk";
794*4882a593Smuzhiyun		};
795*4882a593Smuzhiyun
796*4882a593Smuzhiyun		gpio16: gpio@e8a1b000 {
797*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
798*4882a593Smuzhiyun			reg = <0 0xe8a1b000 0 0x1000>;
799*4882a593Smuzhiyun			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
800*4882a593Smuzhiyun			gpio-controller;
801*4882a593Smuzhiyun			#gpio-cells = <2>;
802*4882a593Smuzhiyun			interrupt-controller;
803*4882a593Smuzhiyun			#interrupt-cells = <2>;
804*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO16>;
805*4882a593Smuzhiyun			clock-names = "apb_pclk";
806*4882a593Smuzhiyun		};
807*4882a593Smuzhiyun
808*4882a593Smuzhiyun		gpio17: gpio@e8a1c000 {
809*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
810*4882a593Smuzhiyun			reg = <0 0xe8a1c000 0 0x1000>;
811*4882a593Smuzhiyun			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
812*4882a593Smuzhiyun			gpio-controller;
813*4882a593Smuzhiyun			#gpio-cells = <2>;
814*4882a593Smuzhiyun			interrupt-controller;
815*4882a593Smuzhiyun			#interrupt-cells = <2>;
816*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO17>;
817*4882a593Smuzhiyun			clock-names = "apb_pclk";
818*4882a593Smuzhiyun		};
819*4882a593Smuzhiyun
820*4882a593Smuzhiyun		gpio18: gpio@ff3b4000 {
821*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
822*4882a593Smuzhiyun			reg = <0 0xff3b4000 0 0x1000>;
823*4882a593Smuzhiyun			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
824*4882a593Smuzhiyun			gpio-controller;
825*4882a593Smuzhiyun			#gpio-cells = <2>;
826*4882a593Smuzhiyun			gpio-ranges = <&pmx2 0 0 8>;
827*4882a593Smuzhiyun			interrupt-controller;
828*4882a593Smuzhiyun			#interrupt-cells = <2>;
829*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO18>;
830*4882a593Smuzhiyun			clock-names = "apb_pclk";
831*4882a593Smuzhiyun		};
832*4882a593Smuzhiyun
833*4882a593Smuzhiyun		gpio19: gpio@ff3b5000 {
834*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
835*4882a593Smuzhiyun			reg = <0 0xff3b5000 0 0x1000>;
836*4882a593Smuzhiyun			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
837*4882a593Smuzhiyun			gpio-controller;
838*4882a593Smuzhiyun			#gpio-cells = <2>;
839*4882a593Smuzhiyun			gpio-ranges = <&pmx2 0 8 4>;
840*4882a593Smuzhiyun			interrupt-controller;
841*4882a593Smuzhiyun			#interrupt-cells = <2>;
842*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO19>;
843*4882a593Smuzhiyun			clock-names = "apb_pclk";
844*4882a593Smuzhiyun		};
845*4882a593Smuzhiyun
846*4882a593Smuzhiyun		gpio20: gpio@e8a1f000 {
847*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
848*4882a593Smuzhiyun			reg = <0 0xe8a1f000 0 0x1000>;
849*4882a593Smuzhiyun			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
850*4882a593Smuzhiyun			gpio-controller;
851*4882a593Smuzhiyun			#gpio-cells = <2>;
852*4882a593Smuzhiyun			gpio-ranges = <&pmx1 0 0 6>;
853*4882a593Smuzhiyun			interrupt-controller;
854*4882a593Smuzhiyun			#interrupt-cells = <2>;
855*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO20>;
856*4882a593Smuzhiyun			clock-names = "apb_pclk";
857*4882a593Smuzhiyun		};
858*4882a593Smuzhiyun
859*4882a593Smuzhiyun		gpio21: gpio@e8a20000 {
860*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
861*4882a593Smuzhiyun			reg = <0 0xe8a20000 0 0x1000>;
862*4882a593Smuzhiyun			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
863*4882a593Smuzhiyun			gpio-controller;
864*4882a593Smuzhiyun			#gpio-cells = <2>;
865*4882a593Smuzhiyun			interrupt-controller;
866*4882a593Smuzhiyun			#interrupt-cells = <2>;
867*4882a593Smuzhiyun			gpio-ranges = <&pmx3 0 0 6>;
868*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCLK_GPIO21>;
869*4882a593Smuzhiyun			clock-names = "apb_pclk";
870*4882a593Smuzhiyun		};
871*4882a593Smuzhiyun
872*4882a593Smuzhiyun		gpio22: gpio@fff0b000 {
873*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
874*4882a593Smuzhiyun			reg = <0 0xfff0b000 0 0x1000>;
875*4882a593Smuzhiyun			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
876*4882a593Smuzhiyun			gpio-controller;
877*4882a593Smuzhiyun			#gpio-cells = <2>;
878*4882a593Smuzhiyun			/* GPIO176 */
879*4882a593Smuzhiyun			gpio-ranges = <&pmx4 2 0 6>;
880*4882a593Smuzhiyun			interrupt-controller;
881*4882a593Smuzhiyun			#interrupt-cells = <2>;
882*4882a593Smuzhiyun			clocks = <&sctrl HI3660_PCLK_AO_GPIO0>;
883*4882a593Smuzhiyun			clock-names = "apb_pclk";
884*4882a593Smuzhiyun		};
885*4882a593Smuzhiyun
886*4882a593Smuzhiyun		gpio23: gpio@fff0c000 {
887*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
888*4882a593Smuzhiyun			reg = <0 0xfff0c000 0 0x1000>;
889*4882a593Smuzhiyun			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
890*4882a593Smuzhiyun			gpio-controller;
891*4882a593Smuzhiyun			#gpio-cells = <2>;
892*4882a593Smuzhiyun			/* GPIO184 */
893*4882a593Smuzhiyun			gpio-ranges = <&pmx4 0 6 7>;
894*4882a593Smuzhiyun			interrupt-controller;
895*4882a593Smuzhiyun			#interrupt-cells = <2>;
896*4882a593Smuzhiyun			clocks = <&sctrl HI3660_PCLK_AO_GPIO1>;
897*4882a593Smuzhiyun			clock-names = "apb_pclk";
898*4882a593Smuzhiyun		};
899*4882a593Smuzhiyun
900*4882a593Smuzhiyun		gpio24: gpio@fff0d000 {
901*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
902*4882a593Smuzhiyun			reg = <0 0xfff0d000 0 0x1000>;
903*4882a593Smuzhiyun			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
904*4882a593Smuzhiyun			gpio-controller;
905*4882a593Smuzhiyun			#gpio-cells = <2>;
906*4882a593Smuzhiyun			/* GPIO192 */
907*4882a593Smuzhiyun			gpio-ranges = <&pmx4 0 13 8>;
908*4882a593Smuzhiyun			interrupt-controller;
909*4882a593Smuzhiyun			#interrupt-cells = <2>;
910*4882a593Smuzhiyun			clocks = <&sctrl HI3660_PCLK_AO_GPIO2>;
911*4882a593Smuzhiyun			clock-names = "apb_pclk";
912*4882a593Smuzhiyun		};
913*4882a593Smuzhiyun
914*4882a593Smuzhiyun		gpio25: gpio@fff0e000 {
915*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
916*4882a593Smuzhiyun			reg = <0 0xfff0e000 0 0x1000>;
917*4882a593Smuzhiyun			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
918*4882a593Smuzhiyun			gpio-controller;
919*4882a593Smuzhiyun			#gpio-cells = <2>;
920*4882a593Smuzhiyun			/* GPIO200 */
921*4882a593Smuzhiyun			gpio-ranges = <&pmx4 0 21 4 &pmx4 5 25 3>;
922*4882a593Smuzhiyun			interrupt-controller;
923*4882a593Smuzhiyun			#interrupt-cells = <2>;
924*4882a593Smuzhiyun			clocks = <&sctrl HI3660_PCLK_AO_GPIO3>;
925*4882a593Smuzhiyun			clock-names = "apb_pclk";
926*4882a593Smuzhiyun		};
927*4882a593Smuzhiyun
928*4882a593Smuzhiyun		gpio26: gpio@fff0f000 {
929*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
930*4882a593Smuzhiyun			reg = <0 0xfff0f000 0 0x1000>;
931*4882a593Smuzhiyun			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
932*4882a593Smuzhiyun			gpio-controller;
933*4882a593Smuzhiyun			#gpio-cells = <2>;
934*4882a593Smuzhiyun			/* GPIO208 */
935*4882a593Smuzhiyun			gpio-ranges = <&pmx4 0 28 8>;
936*4882a593Smuzhiyun			interrupt-controller;
937*4882a593Smuzhiyun			#interrupt-cells = <2>;
938*4882a593Smuzhiyun			clocks = <&sctrl HI3660_PCLK_AO_GPIO4>;
939*4882a593Smuzhiyun			clock-names = "apb_pclk";
940*4882a593Smuzhiyun		};
941*4882a593Smuzhiyun
942*4882a593Smuzhiyun		gpio27: gpio@fff10000 {
943*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
944*4882a593Smuzhiyun			reg = <0 0xfff10000 0 0x1000>;
945*4882a593Smuzhiyun			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
946*4882a593Smuzhiyun			gpio-controller;
947*4882a593Smuzhiyun			#gpio-cells = <2>;
948*4882a593Smuzhiyun			/* GPIO216 */
949*4882a593Smuzhiyun			gpio-ranges = <&pmx4 0 36 6>;
950*4882a593Smuzhiyun			interrupt-controller;
951*4882a593Smuzhiyun			#interrupt-cells = <2>;
952*4882a593Smuzhiyun			clocks = <&sctrl HI3660_PCLK_AO_GPIO5>;
953*4882a593Smuzhiyun			clock-names = "apb_pclk";
954*4882a593Smuzhiyun		};
955*4882a593Smuzhiyun
956*4882a593Smuzhiyun		gpio28: gpio@fff1d000 {
957*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
958*4882a593Smuzhiyun			reg = <0 0xfff1d000 0 0x1000>;
959*4882a593Smuzhiyun			interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
960*4882a593Smuzhiyun			gpio-controller;
961*4882a593Smuzhiyun			#gpio-cells = <2>;
962*4882a593Smuzhiyun			interrupt-controller;
963*4882a593Smuzhiyun			#interrupt-cells = <2>;
964*4882a593Smuzhiyun			clocks = <&sctrl HI3660_PCLK_AO_GPIO6>;
965*4882a593Smuzhiyun			clock-names = "apb_pclk";
966*4882a593Smuzhiyun		};
967*4882a593Smuzhiyun
968*4882a593Smuzhiyun		spi2: spi@ffd68000 {
969*4882a593Smuzhiyun			compatible = "arm,pl022", "arm,primecell";
970*4882a593Smuzhiyun			reg = <0x0 0xffd68000 0x0 0x1000>;
971*4882a593Smuzhiyun			#address-cells = <1>;
972*4882a593Smuzhiyun			#size-cells = <0>;
973*4882a593Smuzhiyun			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
974*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_SPI2>;
975*4882a593Smuzhiyun			clock-names = "apb_pclk";
976*4882a593Smuzhiyun			pinctrl-names = "default";
977*4882a593Smuzhiyun			pinctrl-0 = <&spi2_pmx_func &spi2_cfg_func>;
978*4882a593Smuzhiyun			num-cs = <1>;
979*4882a593Smuzhiyun			cs-gpios = <&gpio27 2 0>;
980*4882a593Smuzhiyun			status = "disabled";
981*4882a593Smuzhiyun		};
982*4882a593Smuzhiyun
983*4882a593Smuzhiyun		spi3: spi@ff3b3000 {
984*4882a593Smuzhiyun			compatible = "arm,pl022", "arm,primecell";
985*4882a593Smuzhiyun			reg = <0x0 0xff3b3000 0x0 0x1000>;
986*4882a593Smuzhiyun			#address-cells = <1>;
987*4882a593Smuzhiyun			#size-cells = <0>;
988*4882a593Smuzhiyun			interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>;
989*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_SPI3>;
990*4882a593Smuzhiyun			clock-names = "apb_pclk";
991*4882a593Smuzhiyun			pinctrl-names = "default";
992*4882a593Smuzhiyun			pinctrl-0 = <&spi3_pmx_func &spi3_cfg_func>;
993*4882a593Smuzhiyun			num-cs = <1>;
994*4882a593Smuzhiyun			cs-gpios = <&gpio18 5 0>;
995*4882a593Smuzhiyun			status = "disabled";
996*4882a593Smuzhiyun		};
997*4882a593Smuzhiyun
998*4882a593Smuzhiyun		pcie@f4000000 {
999*4882a593Smuzhiyun			compatible = "hisilicon,kirin960-pcie";
1000*4882a593Smuzhiyun			reg = <0x0 0xf4000000 0x0 0x1000>,
1001*4882a593Smuzhiyun			      <0x0 0xff3fe000 0x0 0x1000>,
1002*4882a593Smuzhiyun			      <0x0 0xf3f20000 0x0 0x40000>,
1003*4882a593Smuzhiyun			      <0x0 0xf5000000 0x0 0x2000>;
1004*4882a593Smuzhiyun			reg-names = "dbi", "apb", "phy", "config";
1005*4882a593Smuzhiyun			bus-range = <0x0  0x1>;
1006*4882a593Smuzhiyun			#address-cells = <3>;
1007*4882a593Smuzhiyun			#size-cells = <2>;
1008*4882a593Smuzhiyun			device_type = "pci";
1009*4882a593Smuzhiyun			ranges = <0x02000000 0x0 0x00000000
1010*4882a593Smuzhiyun				  0x0 0xf6000000
1011*4882a593Smuzhiyun				  0x0 0x02000000>;
1012*4882a593Smuzhiyun			num-lanes = <1>;
1013*4882a593Smuzhiyun			#interrupt-cells = <1>;
1014*4882a593Smuzhiyun			interrupts = <0 283 4>;
1015*4882a593Smuzhiyun			interrupt-names = "msi";
1016*4882a593Smuzhiyun			interrupt-map-mask = <0xf800 0 0 7>;
1017*4882a593Smuzhiyun			interrupt-map = <0x0 0 0 1
1018*4882a593Smuzhiyun					 &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
1019*4882a593Smuzhiyun					<0x0 0 0 2
1020*4882a593Smuzhiyun					 &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
1021*4882a593Smuzhiyun					<0x0 0 0 3
1022*4882a593Smuzhiyun					 &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
1023*4882a593Smuzhiyun					<0x0 0 0 4
1024*4882a593Smuzhiyun					 &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>;
1025*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_PCIEPHY_REF>,
1026*4882a593Smuzhiyun				 <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>,
1027*4882a593Smuzhiyun				 <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>,
1028*4882a593Smuzhiyun				 <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>,
1029*4882a593Smuzhiyun				 <&crg_ctrl HI3660_ACLK_GATE_PCIE>;
1030*4882a593Smuzhiyun			clock-names = "pcie_phy_ref", "pcie_aux",
1031*4882a593Smuzhiyun				      "pcie_apb_phy", "pcie_apb_sys",
1032*4882a593Smuzhiyun				      "pcie_aclk";
1033*4882a593Smuzhiyun			reset-gpios = <&gpio11 1 0 >;
1034*4882a593Smuzhiyun		};
1035*4882a593Smuzhiyun
1036*4882a593Smuzhiyun		/* UFS */
1037*4882a593Smuzhiyun		ufs: ufs@ff3b0000 {
1038*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-ufs", "jedec,ufs-1.1";
1039*4882a593Smuzhiyun			/* 0: HCI standard */
1040*4882a593Smuzhiyun			/* 1: UFS SYS CTRL */
1041*4882a593Smuzhiyun			reg = <0x0 0xff3b0000 0x0 0x1000>,
1042*4882a593Smuzhiyun				<0x0 0xff3b1000 0x0 0x1000>;
1043*4882a593Smuzhiyun			interrupt-parent = <&gic>;
1044*4882a593Smuzhiyun			interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
1045*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_UFSIO_REF>,
1046*4882a593Smuzhiyun				<&crg_ctrl HI3660_CLK_GATE_UFSPHY_CFG>;
1047*4882a593Smuzhiyun			clock-names = "ref_clk", "phy_clk";
1048*4882a593Smuzhiyun			freq-table-hz = <0 0>, <0 0>;
1049*4882a593Smuzhiyun			/* offset: 0x84; bit: 12 */
1050*4882a593Smuzhiyun			resets = <&crg_rst 0x84 12>;
1051*4882a593Smuzhiyun			reset-names = "rst";
1052*4882a593Smuzhiyun		};
1053*4882a593Smuzhiyun
1054*4882a593Smuzhiyun		/* SD */
1055*4882a593Smuzhiyun		dwmmc1: dwmmc1@ff37f000 {
1056*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-dw-mshc";
1057*4882a593Smuzhiyun			reg = <0x0 0xff37f000 0x0 0x1000>;
1058*4882a593Smuzhiyun			#address-cells = <1>;
1059*4882a593Smuzhiyun			#size-cells = <0>;
1060*4882a593Smuzhiyun			interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
1061*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_SD>,
1062*4882a593Smuzhiyun				<&crg_ctrl HI3660_HCLK_GATE_SD>;
1063*4882a593Smuzhiyun			clock-names = "ciu", "biu";
1064*4882a593Smuzhiyun			clock-frequency = <3200000>;
1065*4882a593Smuzhiyun			resets = <&crg_rst 0x94 18>;
1066*4882a593Smuzhiyun			reset-names = "reset";
1067*4882a593Smuzhiyun			hisilicon,peripheral-syscon = <&sctrl>;
1068*4882a593Smuzhiyun			card-detect-delay = <200>;
1069*4882a593Smuzhiyun			status = "disabled";
1070*4882a593Smuzhiyun		};
1071*4882a593Smuzhiyun
1072*4882a593Smuzhiyun		/* SDIO */
1073*4882a593Smuzhiyun		dwmmc2: dwmmc2@ff3ff000 {
1074*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-dw-mshc";
1075*4882a593Smuzhiyun			reg = <0x0 0xff3ff000 0x0 0x1000>;
1076*4882a593Smuzhiyun			#address-cells = <0x1>;
1077*4882a593Smuzhiyun			#size-cells = <0x0>;
1078*4882a593Smuzhiyun			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1079*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_GATE_SDIO0>,
1080*4882a593Smuzhiyun				 <&crg_ctrl HI3660_HCLK_GATE_SDIO0>;
1081*4882a593Smuzhiyun			clock-names = "ciu", "biu";
1082*4882a593Smuzhiyun			resets = <&crg_rst 0x94 20>;
1083*4882a593Smuzhiyun			reset-names = "reset";
1084*4882a593Smuzhiyun			card-detect-delay = <200>;
1085*4882a593Smuzhiyun			status = "disabled";
1086*4882a593Smuzhiyun		};
1087*4882a593Smuzhiyun
1088*4882a593Smuzhiyun		watchdog0: watchdog@e8a06000 {
1089*4882a593Smuzhiyun			compatible = "arm,sp805", "arm,primecell";
1090*4882a593Smuzhiyun			reg = <0x0 0xe8a06000 0x0 0x1000>;
1091*4882a593Smuzhiyun			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1092*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_OSC32K>,
1093*4882a593Smuzhiyun				 <&crg_ctrl HI3660_OSC32K>;
1094*4882a593Smuzhiyun			clock-names = "wdog_clk", "apb_pclk";
1095*4882a593Smuzhiyun		};
1096*4882a593Smuzhiyun
1097*4882a593Smuzhiyun		watchdog1: watchdog@e8a07000 {
1098*4882a593Smuzhiyun			compatible = "arm,sp805", "arm,primecell";
1099*4882a593Smuzhiyun			reg = <0x0 0xe8a07000 0x0 0x1000>;
1100*4882a593Smuzhiyun			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
1101*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_OSC32K>,
1102*4882a593Smuzhiyun				 <&crg_ctrl HI3660_OSC32K>;
1103*4882a593Smuzhiyun			clock-names = "wdog_clk", "apb_pclk";
1104*4882a593Smuzhiyun		};
1105*4882a593Smuzhiyun
1106*4882a593Smuzhiyun		tsensor: tsensor@fff30000 {
1107*4882a593Smuzhiyun			compatible = "hisilicon,hi3660-tsensor";
1108*4882a593Smuzhiyun			reg = <0x0 0xfff30000 0x0 0x1000>;
1109*4882a593Smuzhiyun			interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
1110*4882a593Smuzhiyun			#thermal-sensor-cells = <1>;
1111*4882a593Smuzhiyun		};
1112*4882a593Smuzhiyun
1113*4882a593Smuzhiyun		thermal-zones {
1114*4882a593Smuzhiyun
1115*4882a593Smuzhiyun			cls0: cls0 {
1116*4882a593Smuzhiyun				polling-delay = <1000>;
1117*4882a593Smuzhiyun				polling-delay-passive = <100>;
1118*4882a593Smuzhiyun				sustainable-power = <4500>;
1119*4882a593Smuzhiyun
1120*4882a593Smuzhiyun				/* sensor ID */
1121*4882a593Smuzhiyun				thermal-sensors = <&tsensor 1>;
1122*4882a593Smuzhiyun
1123*4882a593Smuzhiyun				trips {
1124*4882a593Smuzhiyun					threshold: trip-point@0 {
1125*4882a593Smuzhiyun						temperature = <65000>;
1126*4882a593Smuzhiyun						hysteresis = <1000>;
1127*4882a593Smuzhiyun						type = "passive";
1128*4882a593Smuzhiyun					};
1129*4882a593Smuzhiyun
1130*4882a593Smuzhiyun					target: trip-point@1 {
1131*4882a593Smuzhiyun						temperature = <75000>;
1132*4882a593Smuzhiyun						hysteresis = <1000>;
1133*4882a593Smuzhiyun						type = "passive";
1134*4882a593Smuzhiyun					};
1135*4882a593Smuzhiyun				};
1136*4882a593Smuzhiyun
1137*4882a593Smuzhiyun				cooling-maps {
1138*4882a593Smuzhiyun					map0 {
1139*4882a593Smuzhiyun						trip = <&target>;
1140*4882a593Smuzhiyun						contribution = <1024>;
1141*4882a593Smuzhiyun						cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1142*4882a593Smuzhiyun								 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1143*4882a593Smuzhiyun								 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1144*4882a593Smuzhiyun								 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1145*4882a593Smuzhiyun					};
1146*4882a593Smuzhiyun					map1 {
1147*4882a593Smuzhiyun						trip = <&target>;
1148*4882a593Smuzhiyun						contribution = <512>;
1149*4882a593Smuzhiyun						cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1150*4882a593Smuzhiyun								 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1151*4882a593Smuzhiyun								 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1152*4882a593Smuzhiyun								 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1153*4882a593Smuzhiyun					};
1154*4882a593Smuzhiyun				};
1155*4882a593Smuzhiyun			};
1156*4882a593Smuzhiyun		};
1157*4882a593Smuzhiyun
1158*4882a593Smuzhiyun		usb3_otg_bc: usb3_otg_bc@ff200000 {
1159*4882a593Smuzhiyun			compatible = "syscon", "simple-mfd";
1160*4882a593Smuzhiyun			reg = <0x0 0xff200000 0x0 0x1000>;
1161*4882a593Smuzhiyun
1162*4882a593Smuzhiyun			usb_phy: usb-phy {
1163*4882a593Smuzhiyun				compatible = "hisilicon,hi3660-usb-phy";
1164*4882a593Smuzhiyun				#phy-cells = <0>;
1165*4882a593Smuzhiyun				hisilicon,pericrg-syscon = <&crg_ctrl>;
1166*4882a593Smuzhiyun				hisilicon,pctrl-syscon = <&pctrl>;
1167*4882a593Smuzhiyun				hisilicon,eye-diagram-param = <0x22466e4>;
1168*4882a593Smuzhiyun			};
1169*4882a593Smuzhiyun		};
1170*4882a593Smuzhiyun
1171*4882a593Smuzhiyun		dwc3: dwc3@ff100000 {
1172*4882a593Smuzhiyun			compatible = "snps,dwc3";
1173*4882a593Smuzhiyun			reg = <0x0 0xff100000 0x0 0x100000>;
1174*4882a593Smuzhiyun
1175*4882a593Smuzhiyun			clocks = <&crg_ctrl HI3660_CLK_ABB_USB>,
1176*4882a593Smuzhiyun				 <&crg_ctrl HI3660_ACLK_GATE_USB3OTG>;
1177*4882a593Smuzhiyun			clock-names = "ref", "bus_early";
1178*4882a593Smuzhiyun
1179*4882a593Smuzhiyun			assigned-clocks = <&crg_ctrl HI3660_ACLK_GATE_USB3OTG>;
1180*4882a593Smuzhiyun			assigned-clock-rates = <229000000>;
1181*4882a593Smuzhiyun
1182*4882a593Smuzhiyun			resets = <&crg_rst 0x90 8>,
1183*4882a593Smuzhiyun				 <&crg_rst 0x90 7>,
1184*4882a593Smuzhiyun				 <&crg_rst 0x90 6>,
1185*4882a593Smuzhiyun				 <&crg_rst 0x90 5>;
1186*4882a593Smuzhiyun
1187*4882a593Smuzhiyun			interrupts = <0 159 4>, <0 161 4>;
1188*4882a593Smuzhiyun			phys = <&usb_phy>;
1189*4882a593Smuzhiyun			phy-names = "usb3-phy";
1190*4882a593Smuzhiyun		};
1191*4882a593Smuzhiyun	};
1192*4882a593Smuzhiyun};
1193*4882a593Smuzhiyun
1194*4882a593Smuzhiyun#include "hi3660-coresight.dtsi"
1195