xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/imx7s.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+ OR MIT
2*4882a593Smuzhiyun//
3*4882a593Smuzhiyun// Copyright 2015 Freescale Semiconductor, Inc.
4*4882a593Smuzhiyun// Copyright 2016 Toradex AG
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun#include <dt-bindings/clock/imx7d-clock.h>
7*4882a593Smuzhiyun#include <dt-bindings/power/imx7-power.h>
8*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
9*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
11*4882a593Smuzhiyun#include <dt-bindings/reset/imx7-reset.h>
12*4882a593Smuzhiyun#include "imx7d-pinfunc.h"
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun/ {
15*4882a593Smuzhiyun	#address-cells = <1>;
16*4882a593Smuzhiyun	#size-cells = <1>;
17*4882a593Smuzhiyun	/*
18*4882a593Smuzhiyun	 * The decompressor and also some bootloaders rely on a
19*4882a593Smuzhiyun	 * pre-existing /chosen node to be available to insert the
20*4882a593Smuzhiyun	 * command line and merge other ATAGS info.
21*4882a593Smuzhiyun	 */
22*4882a593Smuzhiyun	chosen {};
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun	aliases {
25*4882a593Smuzhiyun		gpio0 = &gpio1;
26*4882a593Smuzhiyun		gpio1 = &gpio2;
27*4882a593Smuzhiyun		gpio2 = &gpio3;
28*4882a593Smuzhiyun		gpio3 = &gpio4;
29*4882a593Smuzhiyun		gpio4 = &gpio5;
30*4882a593Smuzhiyun		gpio5 = &gpio6;
31*4882a593Smuzhiyun		gpio6 = &gpio7;
32*4882a593Smuzhiyun		i2c0 = &i2c1;
33*4882a593Smuzhiyun		i2c1 = &i2c2;
34*4882a593Smuzhiyun		i2c2 = &i2c3;
35*4882a593Smuzhiyun		i2c3 = &i2c4;
36*4882a593Smuzhiyun		mmc0 = &usdhc1;
37*4882a593Smuzhiyun		mmc1 = &usdhc2;
38*4882a593Smuzhiyun		mmc2 = &usdhc3;
39*4882a593Smuzhiyun		serial0 = &uart1;
40*4882a593Smuzhiyun		serial1 = &uart2;
41*4882a593Smuzhiyun		serial2 = &uart3;
42*4882a593Smuzhiyun		serial3 = &uart4;
43*4882a593Smuzhiyun		serial4 = &uart5;
44*4882a593Smuzhiyun		serial5 = &uart6;
45*4882a593Smuzhiyun		serial6 = &uart7;
46*4882a593Smuzhiyun		spi0 = &ecspi1;
47*4882a593Smuzhiyun		spi1 = &ecspi2;
48*4882a593Smuzhiyun		spi2 = &ecspi3;
49*4882a593Smuzhiyun		spi3 = &ecspi4;
50*4882a593Smuzhiyun	};
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun	cpus {
53*4882a593Smuzhiyun		#address-cells = <1>;
54*4882a593Smuzhiyun		#size-cells = <0>;
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun		idle-states {
57*4882a593Smuzhiyun			entry-method = "psci";
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun			cpu_sleep_wait: cpu-sleep-wait {
60*4882a593Smuzhiyun				compatible = "arm,idle-state";
61*4882a593Smuzhiyun				arm,psci-suspend-param = <0x0010000>;
62*4882a593Smuzhiyun				local-timer-stop;
63*4882a593Smuzhiyun				entry-latency-us = <100>;
64*4882a593Smuzhiyun				exit-latency-us = <50>;
65*4882a593Smuzhiyun				min-residency-us = <1000>;
66*4882a593Smuzhiyun			};
67*4882a593Smuzhiyun		};
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun		cpu0: cpu@0 {
70*4882a593Smuzhiyun			compatible = "arm,cortex-a7";
71*4882a593Smuzhiyun			device_type = "cpu";
72*4882a593Smuzhiyun			reg = <0>;
73*4882a593Smuzhiyun			clock-frequency = <792000000>;
74*4882a593Smuzhiyun			clock-latency = <61036>; /* two CLK32 periods */
75*4882a593Smuzhiyun			clocks = <&clks IMX7D_CLK_ARM>;
76*4882a593Smuzhiyun			cpu-idle-states = <&cpu_sleep_wait>;
77*4882a593Smuzhiyun		};
78*4882a593Smuzhiyun	};
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun	ckil: clock-cki {
81*4882a593Smuzhiyun		compatible = "fixed-clock";
82*4882a593Smuzhiyun		#clock-cells = <0>;
83*4882a593Smuzhiyun		clock-frequency = <32768>;
84*4882a593Smuzhiyun		clock-output-names = "ckil";
85*4882a593Smuzhiyun	};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	osc: clock-osc {
88*4882a593Smuzhiyun		compatible = "fixed-clock";
89*4882a593Smuzhiyun		#clock-cells = <0>;
90*4882a593Smuzhiyun		clock-frequency = <24000000>;
91*4882a593Smuzhiyun		clock-output-names = "osc";
92*4882a593Smuzhiyun	};
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun	usbphynop1: usbphynop1 {
95*4882a593Smuzhiyun		compatible = "usb-nop-xceiv";
96*4882a593Smuzhiyun		clocks = <&clks IMX7D_USB_PHY1_CLK>;
97*4882a593Smuzhiyun		clock-names = "main_clk";
98*4882a593Smuzhiyun		#phy-cells = <0>;
99*4882a593Smuzhiyun	};
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun	usbphynop3: usbphynop3 {
102*4882a593Smuzhiyun		compatible = "usb-nop-xceiv";
103*4882a593Smuzhiyun		clocks = <&clks IMX7D_USB_HSIC_ROOT_CLK>;
104*4882a593Smuzhiyun		clock-names = "main_clk";
105*4882a593Smuzhiyun		power-domains = <&pgc_hsic_phy>;
106*4882a593Smuzhiyun		#phy-cells = <0>;
107*4882a593Smuzhiyun	};
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun	pmu {
110*4882a593Smuzhiyun		compatible = "arm,cortex-a7-pmu";
111*4882a593Smuzhiyun		interrupt-parent = <&gpc>;
112*4882a593Smuzhiyun		interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
113*4882a593Smuzhiyun		interrupt-affinity = <&cpu0>;
114*4882a593Smuzhiyun	};
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun	replicator {
117*4882a593Smuzhiyun		/*
118*4882a593Smuzhiyun		 * non-configurable replicators don't show up on the
119*4882a593Smuzhiyun		 * AMBA bus.  As such no need to add "arm,primecell"
120*4882a593Smuzhiyun		 */
121*4882a593Smuzhiyun		compatible = "arm,coresight-static-replicator";
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun		out-ports {
124*4882a593Smuzhiyun			#address-cells = <1>;
125*4882a593Smuzhiyun			#size-cells = <0>;
126*4882a593Smuzhiyun				/* replicator output ports */
127*4882a593Smuzhiyun			port@0 {
128*4882a593Smuzhiyun				reg = <0>;
129*4882a593Smuzhiyun				replicator_out_port0: endpoint {
130*4882a593Smuzhiyun					remote-endpoint = <&tpiu_in_port>;
131*4882a593Smuzhiyun				};
132*4882a593Smuzhiyun			};
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun			port@1 {
135*4882a593Smuzhiyun				reg = <1>;
136*4882a593Smuzhiyun				replicator_out_port1: endpoint {
137*4882a593Smuzhiyun					remote-endpoint = <&etr_in_port>;
138*4882a593Smuzhiyun				};
139*4882a593Smuzhiyun			};
140*4882a593Smuzhiyun		};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun		in-ports {
143*4882a593Smuzhiyun			port {
144*4882a593Smuzhiyun				replicator_in_port0: endpoint {
145*4882a593Smuzhiyun					remote-endpoint = <&etf_out_port>;
146*4882a593Smuzhiyun				};
147*4882a593Smuzhiyun			};
148*4882a593Smuzhiyun		};
149*4882a593Smuzhiyun	};
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun	timer {
152*4882a593Smuzhiyun		compatible = "arm,armv7-timer";
153*4882a593Smuzhiyun		interrupt-parent = <&intc>;
154*4882a593Smuzhiyun		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
155*4882a593Smuzhiyun			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
156*4882a593Smuzhiyun			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
157*4882a593Smuzhiyun			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
158*4882a593Smuzhiyun	};
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun	soc {
161*4882a593Smuzhiyun		#address-cells = <1>;
162*4882a593Smuzhiyun		#size-cells = <1>;
163*4882a593Smuzhiyun		compatible = "simple-bus";
164*4882a593Smuzhiyun		interrupt-parent = <&gpc>;
165*4882a593Smuzhiyun		ranges;
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun		funnel@30041000 {
168*4882a593Smuzhiyun			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
169*4882a593Smuzhiyun			reg = <0x30041000 0x1000>;
170*4882a593Smuzhiyun			clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
171*4882a593Smuzhiyun			clock-names = "apb_pclk";
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun			ca_funnel_in_ports: in-ports {
174*4882a593Smuzhiyun				port {
175*4882a593Smuzhiyun					ca_funnel_in_port0: endpoint {
176*4882a593Smuzhiyun						remote-endpoint = <&etm0_out_port>;
177*4882a593Smuzhiyun					};
178*4882a593Smuzhiyun				};
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun				/* the other input ports are not connect to anything */
181*4882a593Smuzhiyun			};
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun			out-ports {
184*4882a593Smuzhiyun				port {
185*4882a593Smuzhiyun					ca_funnel_out_port0: endpoint {
186*4882a593Smuzhiyun						remote-endpoint = <&hugo_funnel_in_port0>;
187*4882a593Smuzhiyun					};
188*4882a593Smuzhiyun				};
189*4882a593Smuzhiyun
190*4882a593Smuzhiyun			};
191*4882a593Smuzhiyun		};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun		etm@3007c000 {
194*4882a593Smuzhiyun			compatible = "arm,coresight-etm3x", "arm,primecell";
195*4882a593Smuzhiyun			reg = <0x3007c000 0x1000>;
196*4882a593Smuzhiyun			cpu = <&cpu0>;
197*4882a593Smuzhiyun			clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
198*4882a593Smuzhiyun			clock-names = "apb_pclk";
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun			out-ports {
201*4882a593Smuzhiyun				port {
202*4882a593Smuzhiyun					etm0_out_port: endpoint {
203*4882a593Smuzhiyun						remote-endpoint = <&ca_funnel_in_port0>;
204*4882a593Smuzhiyun					};
205*4882a593Smuzhiyun				};
206*4882a593Smuzhiyun			};
207*4882a593Smuzhiyun		};
208*4882a593Smuzhiyun
209*4882a593Smuzhiyun		funnel@30083000 {
210*4882a593Smuzhiyun			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
211*4882a593Smuzhiyun			reg = <0x30083000 0x1000>;
212*4882a593Smuzhiyun			clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
213*4882a593Smuzhiyun			clock-names = "apb_pclk";
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun			in-ports {
216*4882a593Smuzhiyun				#address-cells = <1>;
217*4882a593Smuzhiyun				#size-cells = <0>;
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun				port@0 {
220*4882a593Smuzhiyun					reg = <0>;
221*4882a593Smuzhiyun					hugo_funnel_in_port0: endpoint {
222*4882a593Smuzhiyun						remote-endpoint = <&ca_funnel_out_port0>;
223*4882a593Smuzhiyun					};
224*4882a593Smuzhiyun				};
225*4882a593Smuzhiyun
226*4882a593Smuzhiyun				port@1 {
227*4882a593Smuzhiyun					reg = <1>;
228*4882a593Smuzhiyun					hugo_funnel_in_port1: endpoint {
229*4882a593Smuzhiyun						/* M4 input */
230*4882a593Smuzhiyun					};
231*4882a593Smuzhiyun				};
232*4882a593Smuzhiyun				/* the other input ports are not connect to anything */
233*4882a593Smuzhiyun			};
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun			out-ports {
236*4882a593Smuzhiyun				port {
237*4882a593Smuzhiyun					hugo_funnel_out_port0: endpoint {
238*4882a593Smuzhiyun						remote-endpoint = <&etf_in_port>;
239*4882a593Smuzhiyun					};
240*4882a593Smuzhiyun				};
241*4882a593Smuzhiyun			};
242*4882a593Smuzhiyun		};
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun		etf@30084000 {
245*4882a593Smuzhiyun			compatible = "arm,coresight-tmc", "arm,primecell";
246*4882a593Smuzhiyun			reg = <0x30084000 0x1000>;
247*4882a593Smuzhiyun			clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
248*4882a593Smuzhiyun			clock-names = "apb_pclk";
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun			in-ports {
251*4882a593Smuzhiyun				port {
252*4882a593Smuzhiyun					etf_in_port: endpoint {
253*4882a593Smuzhiyun						remote-endpoint = <&hugo_funnel_out_port0>;
254*4882a593Smuzhiyun					};
255*4882a593Smuzhiyun				};
256*4882a593Smuzhiyun			};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun			out-ports {
259*4882a593Smuzhiyun				port {
260*4882a593Smuzhiyun					etf_out_port: endpoint {
261*4882a593Smuzhiyun						remote-endpoint = <&replicator_in_port0>;
262*4882a593Smuzhiyun					};
263*4882a593Smuzhiyun				};
264*4882a593Smuzhiyun			};
265*4882a593Smuzhiyun		};
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun		etr@30086000 {
268*4882a593Smuzhiyun			compatible = "arm,coresight-tmc", "arm,primecell";
269*4882a593Smuzhiyun			reg = <0x30086000 0x1000>;
270*4882a593Smuzhiyun			clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
271*4882a593Smuzhiyun			clock-names = "apb_pclk";
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun			in-ports {
274*4882a593Smuzhiyun				port {
275*4882a593Smuzhiyun					etr_in_port: endpoint {
276*4882a593Smuzhiyun						remote-endpoint = <&replicator_out_port1>;
277*4882a593Smuzhiyun					};
278*4882a593Smuzhiyun				};
279*4882a593Smuzhiyun			};
280*4882a593Smuzhiyun		};
281*4882a593Smuzhiyun
282*4882a593Smuzhiyun		tpiu@30087000 {
283*4882a593Smuzhiyun			compatible = "arm,coresight-tpiu", "arm,primecell";
284*4882a593Smuzhiyun			reg = <0x30087000 0x1000>;
285*4882a593Smuzhiyun			clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
286*4882a593Smuzhiyun			clock-names = "apb_pclk";
287*4882a593Smuzhiyun
288*4882a593Smuzhiyun			in-ports {
289*4882a593Smuzhiyun				port {
290*4882a593Smuzhiyun					tpiu_in_port: endpoint {
291*4882a593Smuzhiyun						remote-endpoint = <&replicator_out_port0>;
292*4882a593Smuzhiyun					};
293*4882a593Smuzhiyun				};
294*4882a593Smuzhiyun			};
295*4882a593Smuzhiyun		};
296*4882a593Smuzhiyun
297*4882a593Smuzhiyun		intc: interrupt-controller@31001000 {
298*4882a593Smuzhiyun			compatible = "arm,cortex-a7-gic";
299*4882a593Smuzhiyun			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
300*4882a593Smuzhiyun			#interrupt-cells = <3>;
301*4882a593Smuzhiyun			interrupt-controller;
302*4882a593Smuzhiyun			interrupt-parent = <&intc>;
303*4882a593Smuzhiyun			reg = <0x31001000 0x1000>,
304*4882a593Smuzhiyun			      <0x31002000 0x2000>,
305*4882a593Smuzhiyun			      <0x31004000 0x2000>,
306*4882a593Smuzhiyun			      <0x31006000 0x2000>;
307*4882a593Smuzhiyun		};
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun		aips1: bus@30000000 {
310*4882a593Smuzhiyun			compatible = "fsl,aips-bus", "simple-bus";
311*4882a593Smuzhiyun			#address-cells = <1>;
312*4882a593Smuzhiyun			#size-cells = <1>;
313*4882a593Smuzhiyun			reg = <0x30000000 0x400000>;
314*4882a593Smuzhiyun			ranges;
315*4882a593Smuzhiyun
316*4882a593Smuzhiyun			gpio1: gpio@30200000 {
317*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
318*4882a593Smuzhiyun				reg = <0x30200000 0x10000>;
319*4882a593Smuzhiyun				interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* GPIO1_INT15_0 */
320*4882a593Smuzhiyun					     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; /* GPIO1_INT31_16 */
321*4882a593Smuzhiyun				gpio-controller;
322*4882a593Smuzhiyun				#gpio-cells = <2>;
323*4882a593Smuzhiyun				interrupt-controller;
324*4882a593Smuzhiyun				#interrupt-cells = <2>;
325*4882a593Smuzhiyun				gpio-ranges = <&iomuxc_lpsr 0 0 8>, <&iomuxc 8 5 8>;
326*4882a593Smuzhiyun			};
327*4882a593Smuzhiyun
328*4882a593Smuzhiyun			gpio2: gpio@30210000 {
329*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
330*4882a593Smuzhiyun				reg = <0x30210000 0x10000>;
331*4882a593Smuzhiyun				interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
332*4882a593Smuzhiyun					     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
333*4882a593Smuzhiyun				gpio-controller;
334*4882a593Smuzhiyun				#gpio-cells = <2>;
335*4882a593Smuzhiyun				interrupt-controller;
336*4882a593Smuzhiyun				#interrupt-cells = <2>;
337*4882a593Smuzhiyun				gpio-ranges = <&iomuxc 0 13 32>;
338*4882a593Smuzhiyun			};
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun			gpio3: gpio@30220000 {
341*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
342*4882a593Smuzhiyun				reg = <0x30220000 0x10000>;
343*4882a593Smuzhiyun				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
344*4882a593Smuzhiyun					     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
345*4882a593Smuzhiyun				gpio-controller;
346*4882a593Smuzhiyun				#gpio-cells = <2>;
347*4882a593Smuzhiyun				interrupt-controller;
348*4882a593Smuzhiyun				#interrupt-cells = <2>;
349*4882a593Smuzhiyun				gpio-ranges = <&iomuxc 0 45 29>;
350*4882a593Smuzhiyun			};
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun			gpio4: gpio@30230000 {
353*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
354*4882a593Smuzhiyun				reg = <0x30230000 0x10000>;
355*4882a593Smuzhiyun				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
356*4882a593Smuzhiyun					     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
357*4882a593Smuzhiyun				gpio-controller;
358*4882a593Smuzhiyun				#gpio-cells = <2>;
359*4882a593Smuzhiyun				interrupt-controller;
360*4882a593Smuzhiyun				#interrupt-cells = <2>;
361*4882a593Smuzhiyun				gpio-ranges = <&iomuxc 0 74 24>;
362*4882a593Smuzhiyun			};
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun			gpio5: gpio@30240000 {
365*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
366*4882a593Smuzhiyun				reg = <0x30240000 0x10000>;
367*4882a593Smuzhiyun				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
368*4882a593Smuzhiyun					     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
369*4882a593Smuzhiyun				gpio-controller;
370*4882a593Smuzhiyun				#gpio-cells = <2>;
371*4882a593Smuzhiyun				interrupt-controller;
372*4882a593Smuzhiyun				#interrupt-cells = <2>;
373*4882a593Smuzhiyun				gpio-ranges = <&iomuxc 0 98 18>;
374*4882a593Smuzhiyun			};
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun			gpio6: gpio@30250000 {
377*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
378*4882a593Smuzhiyun				reg = <0x30250000 0x10000>;
379*4882a593Smuzhiyun				interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
380*4882a593Smuzhiyun					     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
381*4882a593Smuzhiyun				gpio-controller;
382*4882a593Smuzhiyun				#gpio-cells = <2>;
383*4882a593Smuzhiyun				interrupt-controller;
384*4882a593Smuzhiyun				#interrupt-cells = <2>;
385*4882a593Smuzhiyun				gpio-ranges = <&iomuxc 0 116 23>;
386*4882a593Smuzhiyun			};
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun			gpio7: gpio@30260000 {
389*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
390*4882a593Smuzhiyun				reg = <0x30260000 0x10000>;
391*4882a593Smuzhiyun				interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
392*4882a593Smuzhiyun					     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
393*4882a593Smuzhiyun				gpio-controller;
394*4882a593Smuzhiyun				#gpio-cells = <2>;
395*4882a593Smuzhiyun				interrupt-controller;
396*4882a593Smuzhiyun				#interrupt-cells = <2>;
397*4882a593Smuzhiyun				gpio-ranges = <&iomuxc 0 139 16>;
398*4882a593Smuzhiyun			};
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun			wdog1: watchdog@30280000 {
401*4882a593Smuzhiyun				compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
402*4882a593Smuzhiyun				reg = <0x30280000 0x10000>;
403*4882a593Smuzhiyun				interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
404*4882a593Smuzhiyun				clocks = <&clks IMX7D_WDOG1_ROOT_CLK>;
405*4882a593Smuzhiyun			};
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun			wdog2: watchdog@30290000 {
408*4882a593Smuzhiyun				compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
409*4882a593Smuzhiyun				reg = <0x30290000 0x10000>;
410*4882a593Smuzhiyun				interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
411*4882a593Smuzhiyun				clocks = <&clks IMX7D_WDOG2_ROOT_CLK>;
412*4882a593Smuzhiyun				status = "disabled";
413*4882a593Smuzhiyun			};
414*4882a593Smuzhiyun
415*4882a593Smuzhiyun			wdog3: watchdog@302a0000 {
416*4882a593Smuzhiyun				compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
417*4882a593Smuzhiyun				reg = <0x302a0000 0x10000>;
418*4882a593Smuzhiyun				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
419*4882a593Smuzhiyun				clocks = <&clks IMX7D_WDOG3_ROOT_CLK>;
420*4882a593Smuzhiyun				status = "disabled";
421*4882a593Smuzhiyun			};
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun			wdog4: watchdog@302b0000 {
424*4882a593Smuzhiyun				compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
425*4882a593Smuzhiyun				reg = <0x302b0000 0x10000>;
426*4882a593Smuzhiyun				interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
427*4882a593Smuzhiyun				clocks = <&clks IMX7D_WDOG4_ROOT_CLK>;
428*4882a593Smuzhiyun				status = "disabled";
429*4882a593Smuzhiyun			};
430*4882a593Smuzhiyun
431*4882a593Smuzhiyun			iomuxc_lpsr: iomuxc-lpsr@302c0000 {
432*4882a593Smuzhiyun				compatible = "fsl,imx7d-iomuxc-lpsr";
433*4882a593Smuzhiyun				reg = <0x302c0000 0x10000>;
434*4882a593Smuzhiyun				fsl,input-sel = <&iomuxc>;
435*4882a593Smuzhiyun			};
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun			gpt1: timer@302d0000 {
438*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
439*4882a593Smuzhiyun				reg = <0x302d0000 0x10000>;
440*4882a593Smuzhiyun				interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
441*4882a593Smuzhiyun				clocks = <&clks IMX7D_GPT1_ROOT_CLK>,
442*4882a593Smuzhiyun					 <&clks IMX7D_GPT1_ROOT_CLK>;
443*4882a593Smuzhiyun				clock-names = "ipg", "per";
444*4882a593Smuzhiyun			};
445*4882a593Smuzhiyun
446*4882a593Smuzhiyun			gpt2: timer@302e0000 {
447*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
448*4882a593Smuzhiyun				reg = <0x302e0000 0x10000>;
449*4882a593Smuzhiyun				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
450*4882a593Smuzhiyun				clocks = <&clks IMX7D_GPT2_ROOT_CLK>,
451*4882a593Smuzhiyun					 <&clks IMX7D_GPT2_ROOT_CLK>;
452*4882a593Smuzhiyun				clock-names = "ipg", "per";
453*4882a593Smuzhiyun				status = "disabled";
454*4882a593Smuzhiyun			};
455*4882a593Smuzhiyun
456*4882a593Smuzhiyun			gpt3: timer@302f0000 {
457*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
458*4882a593Smuzhiyun				reg = <0x302f0000 0x10000>;
459*4882a593Smuzhiyun				interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
460*4882a593Smuzhiyun				clocks = <&clks IMX7D_GPT3_ROOT_CLK>,
461*4882a593Smuzhiyun					 <&clks IMX7D_GPT3_ROOT_CLK>;
462*4882a593Smuzhiyun				clock-names = "ipg", "per";
463*4882a593Smuzhiyun				status = "disabled";
464*4882a593Smuzhiyun			};
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun			gpt4: timer@30300000 {
467*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
468*4882a593Smuzhiyun				reg = <0x30300000 0x10000>;
469*4882a593Smuzhiyun				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
470*4882a593Smuzhiyun				clocks = <&clks IMX7D_GPT4_ROOT_CLK>,
471*4882a593Smuzhiyun					 <&clks IMX7D_GPT4_ROOT_CLK>;
472*4882a593Smuzhiyun				clock-names = "ipg", "per";
473*4882a593Smuzhiyun				status = "disabled";
474*4882a593Smuzhiyun			};
475*4882a593Smuzhiyun
476*4882a593Smuzhiyun			kpp: keypad@30320000 {
477*4882a593Smuzhiyun				compatible = "fsl,imx7d-kpp", "fsl,imx21-kpp";
478*4882a593Smuzhiyun				reg = <0x30320000 0x10000>;
479*4882a593Smuzhiyun				interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
480*4882a593Smuzhiyun				clocks = <&clks IMX7D_KPP_ROOT_CLK>;
481*4882a593Smuzhiyun				status = "disabled";
482*4882a593Smuzhiyun			};
483*4882a593Smuzhiyun
484*4882a593Smuzhiyun			iomuxc: pinctrl@30330000 {
485*4882a593Smuzhiyun				compatible = "fsl,imx7d-iomuxc";
486*4882a593Smuzhiyun				reg = <0x30330000 0x10000>;
487*4882a593Smuzhiyun			};
488*4882a593Smuzhiyun
489*4882a593Smuzhiyun			gpr: iomuxc-gpr@30340000 {
490*4882a593Smuzhiyun				compatible = "fsl,imx7d-iomuxc-gpr",
491*4882a593Smuzhiyun					"fsl,imx6q-iomuxc-gpr", "syscon",
492*4882a593Smuzhiyun					"simple-mfd";
493*4882a593Smuzhiyun				reg = <0x30340000 0x10000>;
494*4882a593Smuzhiyun
495*4882a593Smuzhiyun				mux: mux-controller {
496*4882a593Smuzhiyun					compatible = "mmio-mux";
497*4882a593Smuzhiyun					#mux-control-cells = <0>;
498*4882a593Smuzhiyun					mux-reg-masks = <0x14 0x00000010>;
499*4882a593Smuzhiyun				};
500*4882a593Smuzhiyun
501*4882a593Smuzhiyun				video_mux: csi-mux {
502*4882a593Smuzhiyun					compatible = "video-mux";
503*4882a593Smuzhiyun					mux-controls = <&mux 0>;
504*4882a593Smuzhiyun					#address-cells = <1>;
505*4882a593Smuzhiyun					#size-cells = <0>;
506*4882a593Smuzhiyun					status = "disabled";
507*4882a593Smuzhiyun
508*4882a593Smuzhiyun					port@0 {
509*4882a593Smuzhiyun						reg = <0>;
510*4882a593Smuzhiyun					};
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun					port@1 {
513*4882a593Smuzhiyun						reg = <1>;
514*4882a593Smuzhiyun
515*4882a593Smuzhiyun						csi_mux_from_mipi_vc0: endpoint {
516*4882a593Smuzhiyun							remote-endpoint = <&mipi_vc0_to_csi_mux>;
517*4882a593Smuzhiyun						};
518*4882a593Smuzhiyun					};
519*4882a593Smuzhiyun
520*4882a593Smuzhiyun					port@2 {
521*4882a593Smuzhiyun						reg = <2>;
522*4882a593Smuzhiyun
523*4882a593Smuzhiyun						csi_mux_to_csi: endpoint {
524*4882a593Smuzhiyun							remote-endpoint = <&csi_from_csi_mux>;
525*4882a593Smuzhiyun						};
526*4882a593Smuzhiyun					};
527*4882a593Smuzhiyun				};
528*4882a593Smuzhiyun			};
529*4882a593Smuzhiyun
530*4882a593Smuzhiyun			ocotp: efuse@30350000 {
531*4882a593Smuzhiyun				#address-cells = <1>;
532*4882a593Smuzhiyun				#size-cells = <1>;
533*4882a593Smuzhiyun				compatible = "fsl,imx7d-ocotp", "syscon";
534*4882a593Smuzhiyun				reg = <0x30350000 0x10000>;
535*4882a593Smuzhiyun				clocks = <&clks IMX7D_OCOTP_CLK>;
536*4882a593Smuzhiyun
537*4882a593Smuzhiyun				tempmon_calib: calib@3c {
538*4882a593Smuzhiyun					reg = <0x3c 0x4>;
539*4882a593Smuzhiyun				};
540*4882a593Smuzhiyun
541*4882a593Smuzhiyun				fuse_grade: fuse-grade@10 {
542*4882a593Smuzhiyun					reg = <0x10 0x4>;
543*4882a593Smuzhiyun				};
544*4882a593Smuzhiyun			};
545*4882a593Smuzhiyun
546*4882a593Smuzhiyun			anatop: anatop@30360000 {
547*4882a593Smuzhiyun				compatible = "fsl,imx7d-anatop", "fsl,imx6q-anatop",
548*4882a593Smuzhiyun					"syscon", "simple-mfd";
549*4882a593Smuzhiyun				reg = <0x30360000 0x10000>;
550*4882a593Smuzhiyun				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
551*4882a593Smuzhiyun					<GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
552*4882a593Smuzhiyun
553*4882a593Smuzhiyun				reg_1p0d: regulator-vdd1p0d {
554*4882a593Smuzhiyun					compatible = "fsl,anatop-regulator";
555*4882a593Smuzhiyun					regulator-name = "vdd1p0d";
556*4882a593Smuzhiyun					regulator-min-microvolt = <800000>;
557*4882a593Smuzhiyun					regulator-max-microvolt = <1200000>;
558*4882a593Smuzhiyun					anatop-reg-offset = <0x210>;
559*4882a593Smuzhiyun					anatop-vol-bit-shift = <8>;
560*4882a593Smuzhiyun					anatop-vol-bit-width = <5>;
561*4882a593Smuzhiyun					anatop-min-bit-val = <8>;
562*4882a593Smuzhiyun					anatop-min-voltage = <800000>;
563*4882a593Smuzhiyun					anatop-max-voltage = <1200000>;
564*4882a593Smuzhiyun					anatop-enable-bit = <0>;
565*4882a593Smuzhiyun				};
566*4882a593Smuzhiyun
567*4882a593Smuzhiyun				reg_1p2: regulator-vdd1p2 {
568*4882a593Smuzhiyun					compatible = "fsl,anatop-regulator";
569*4882a593Smuzhiyun					regulator-name = "vdd1p2";
570*4882a593Smuzhiyun					regulator-min-microvolt = <1100000>;
571*4882a593Smuzhiyun					regulator-max-microvolt = <1300000>;
572*4882a593Smuzhiyun					anatop-reg-offset = <0x220>;
573*4882a593Smuzhiyun					anatop-vol-bit-shift = <8>;
574*4882a593Smuzhiyun					anatop-vol-bit-width = <5>;
575*4882a593Smuzhiyun					anatop-min-bit-val = <0x14>;
576*4882a593Smuzhiyun					anatop-min-voltage = <1100000>;
577*4882a593Smuzhiyun					anatop-max-voltage = <1300000>;
578*4882a593Smuzhiyun					anatop-enable-bit = <0>;
579*4882a593Smuzhiyun				};
580*4882a593Smuzhiyun
581*4882a593Smuzhiyun				tempmon: tempmon {
582*4882a593Smuzhiyun					compatible = "fsl,imx7d-tempmon";
583*4882a593Smuzhiyun					interrupt-parent = <&gpc>;
584*4882a593Smuzhiyun					interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
585*4882a593Smuzhiyun					fsl,tempmon = <&anatop>;
586*4882a593Smuzhiyun					nvmem-cells = <&tempmon_calib>,	<&fuse_grade>;
587*4882a593Smuzhiyun					nvmem-cell-names = "calib", "temp_grade";
588*4882a593Smuzhiyun					clocks = <&clks IMX7D_PLL_SYS_MAIN_CLK>;
589*4882a593Smuzhiyun				};
590*4882a593Smuzhiyun			};
591*4882a593Smuzhiyun
592*4882a593Smuzhiyun			snvs: snvs@30370000 {
593*4882a593Smuzhiyun				compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
594*4882a593Smuzhiyun				reg = <0x30370000 0x10000>;
595*4882a593Smuzhiyun
596*4882a593Smuzhiyun				snvs_rtc: snvs-rtc-lp {
597*4882a593Smuzhiyun					compatible = "fsl,sec-v4.0-mon-rtc-lp";
598*4882a593Smuzhiyun					regmap = <&snvs>;
599*4882a593Smuzhiyun					offset = <0x34>;
600*4882a593Smuzhiyun					interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
601*4882a593Smuzhiyun						     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
602*4882a593Smuzhiyun					clocks = <&clks IMX7D_SNVS_CLK>;
603*4882a593Smuzhiyun					clock-names = "snvs-rtc";
604*4882a593Smuzhiyun				};
605*4882a593Smuzhiyun
606*4882a593Smuzhiyun				snvs_pwrkey: snvs-powerkey {
607*4882a593Smuzhiyun					compatible = "fsl,sec-v4.0-pwrkey";
608*4882a593Smuzhiyun					regmap = <&snvs>;
609*4882a593Smuzhiyun					interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
610*4882a593Smuzhiyun					clocks = <&clks IMX7D_SNVS_CLK>;
611*4882a593Smuzhiyun					clock-names = "snvs-pwrkey";
612*4882a593Smuzhiyun					linux,keycode = <KEY_POWER>;
613*4882a593Smuzhiyun					wakeup-source;
614*4882a593Smuzhiyun					status = "disabled";
615*4882a593Smuzhiyun				};
616*4882a593Smuzhiyun			};
617*4882a593Smuzhiyun
618*4882a593Smuzhiyun			clks: clock-controller@30380000 {
619*4882a593Smuzhiyun				compatible = "fsl,imx7d-ccm";
620*4882a593Smuzhiyun				reg = <0x30380000 0x10000>;
621*4882a593Smuzhiyun				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
622*4882a593Smuzhiyun					     <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
623*4882a593Smuzhiyun				#clock-cells = <1>;
624*4882a593Smuzhiyun				clocks = <&ckil>, <&osc>;
625*4882a593Smuzhiyun				clock-names = "ckil", "osc";
626*4882a593Smuzhiyun			};
627*4882a593Smuzhiyun
628*4882a593Smuzhiyun			src: reset-controller@30390000 {
629*4882a593Smuzhiyun				compatible = "fsl,imx7d-src", "syscon";
630*4882a593Smuzhiyun				reg = <0x30390000 0x10000>;
631*4882a593Smuzhiyun				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
632*4882a593Smuzhiyun				#reset-cells = <1>;
633*4882a593Smuzhiyun			};
634*4882a593Smuzhiyun
635*4882a593Smuzhiyun			gpc: gpc@303a0000 {
636*4882a593Smuzhiyun				compatible = "fsl,imx7d-gpc";
637*4882a593Smuzhiyun				reg = <0x303a0000 0x10000>;
638*4882a593Smuzhiyun				interrupt-controller;
639*4882a593Smuzhiyun				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
640*4882a593Smuzhiyun				#interrupt-cells = <3>;
641*4882a593Smuzhiyun				interrupt-parent = <&intc>;
642*4882a593Smuzhiyun				#power-domain-cells = <1>;
643*4882a593Smuzhiyun
644*4882a593Smuzhiyun				pgc {
645*4882a593Smuzhiyun					#address-cells = <1>;
646*4882a593Smuzhiyun					#size-cells = <0>;
647*4882a593Smuzhiyun
648*4882a593Smuzhiyun					pgc_mipi_phy: power-domain@0 {
649*4882a593Smuzhiyun						#power-domain-cells = <0>;
650*4882a593Smuzhiyun						reg = <0>;
651*4882a593Smuzhiyun						power-supply = <&reg_1p0d>;
652*4882a593Smuzhiyun					};
653*4882a593Smuzhiyun
654*4882a593Smuzhiyun					pgc_pcie_phy: power-domain@1 {
655*4882a593Smuzhiyun						#power-domain-cells = <0>;
656*4882a593Smuzhiyun						reg = <1>;
657*4882a593Smuzhiyun						power-supply = <&reg_1p0d>;
658*4882a593Smuzhiyun					};
659*4882a593Smuzhiyun
660*4882a593Smuzhiyun					pgc_hsic_phy: power-domain@2 {
661*4882a593Smuzhiyun						#power-domain-cells = <0>;
662*4882a593Smuzhiyun						reg = <2>;
663*4882a593Smuzhiyun						power-supply = <&reg_1p2>;
664*4882a593Smuzhiyun					};
665*4882a593Smuzhiyun				};
666*4882a593Smuzhiyun			};
667*4882a593Smuzhiyun		};
668*4882a593Smuzhiyun
669*4882a593Smuzhiyun		aips2: bus@30400000 {
670*4882a593Smuzhiyun			compatible = "fsl,aips-bus", "simple-bus";
671*4882a593Smuzhiyun			#address-cells = <1>;
672*4882a593Smuzhiyun			#size-cells = <1>;
673*4882a593Smuzhiyun			reg = <0x30400000 0x400000>;
674*4882a593Smuzhiyun			ranges;
675*4882a593Smuzhiyun
676*4882a593Smuzhiyun			adc1: adc@30610000 {
677*4882a593Smuzhiyun				compatible = "fsl,imx7d-adc";
678*4882a593Smuzhiyun				reg = <0x30610000 0x10000>;
679*4882a593Smuzhiyun				interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
680*4882a593Smuzhiyun				clocks = <&clks IMX7D_ADC_ROOT_CLK>;
681*4882a593Smuzhiyun				clock-names = "adc";
682*4882a593Smuzhiyun				#io-channel-cells = <1>;
683*4882a593Smuzhiyun				status = "disabled";
684*4882a593Smuzhiyun			};
685*4882a593Smuzhiyun
686*4882a593Smuzhiyun			adc2: adc@30620000 {
687*4882a593Smuzhiyun				compatible = "fsl,imx7d-adc";
688*4882a593Smuzhiyun				reg = <0x30620000 0x10000>;
689*4882a593Smuzhiyun				interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
690*4882a593Smuzhiyun				clocks = <&clks IMX7D_ADC_ROOT_CLK>;
691*4882a593Smuzhiyun				clock-names = "adc";
692*4882a593Smuzhiyun				#io-channel-cells = <1>;
693*4882a593Smuzhiyun				status = "disabled";
694*4882a593Smuzhiyun			};
695*4882a593Smuzhiyun
696*4882a593Smuzhiyun			ecspi4: spi@30630000 {
697*4882a593Smuzhiyun				#address-cells = <1>;
698*4882a593Smuzhiyun				#size-cells = <0>;
699*4882a593Smuzhiyun				compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
700*4882a593Smuzhiyun				reg = <0x30630000 0x10000>;
701*4882a593Smuzhiyun				interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
702*4882a593Smuzhiyun				clocks = <&clks IMX7D_ECSPI4_ROOT_CLK>,
703*4882a593Smuzhiyun					<&clks IMX7D_ECSPI4_ROOT_CLK>;
704*4882a593Smuzhiyun				clock-names = "ipg", "per";
705*4882a593Smuzhiyun				status = "disabled";
706*4882a593Smuzhiyun			};
707*4882a593Smuzhiyun
708*4882a593Smuzhiyun			pwm1: pwm@30660000 {
709*4882a593Smuzhiyun				compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
710*4882a593Smuzhiyun				reg = <0x30660000 0x10000>;
711*4882a593Smuzhiyun				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
712*4882a593Smuzhiyun				clocks = <&clks IMX7D_PWM1_ROOT_CLK>,
713*4882a593Smuzhiyun					 <&clks IMX7D_PWM1_ROOT_CLK>;
714*4882a593Smuzhiyun				clock-names = "ipg", "per";
715*4882a593Smuzhiyun				#pwm-cells = <3>;
716*4882a593Smuzhiyun				status = "disabled";
717*4882a593Smuzhiyun			};
718*4882a593Smuzhiyun
719*4882a593Smuzhiyun			pwm2: pwm@30670000 {
720*4882a593Smuzhiyun				compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
721*4882a593Smuzhiyun				reg = <0x30670000 0x10000>;
722*4882a593Smuzhiyun				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
723*4882a593Smuzhiyun				clocks = <&clks IMX7D_PWM2_ROOT_CLK>,
724*4882a593Smuzhiyun					 <&clks IMX7D_PWM2_ROOT_CLK>;
725*4882a593Smuzhiyun				clock-names = "ipg", "per";
726*4882a593Smuzhiyun				#pwm-cells = <3>;
727*4882a593Smuzhiyun				status = "disabled";
728*4882a593Smuzhiyun			};
729*4882a593Smuzhiyun
730*4882a593Smuzhiyun			pwm3: pwm@30680000 {
731*4882a593Smuzhiyun				compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
732*4882a593Smuzhiyun				reg = <0x30680000 0x10000>;
733*4882a593Smuzhiyun				interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
734*4882a593Smuzhiyun				clocks = <&clks IMX7D_PWM3_ROOT_CLK>,
735*4882a593Smuzhiyun					 <&clks IMX7D_PWM3_ROOT_CLK>;
736*4882a593Smuzhiyun				clock-names = "ipg", "per";
737*4882a593Smuzhiyun				#pwm-cells = <3>;
738*4882a593Smuzhiyun				status = "disabled";
739*4882a593Smuzhiyun			};
740*4882a593Smuzhiyun
741*4882a593Smuzhiyun			pwm4: pwm@30690000 {
742*4882a593Smuzhiyun				compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
743*4882a593Smuzhiyun				reg = <0x30690000 0x10000>;
744*4882a593Smuzhiyun				interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
745*4882a593Smuzhiyun				clocks = <&clks IMX7D_PWM4_ROOT_CLK>,
746*4882a593Smuzhiyun					 <&clks IMX7D_PWM4_ROOT_CLK>;
747*4882a593Smuzhiyun				clock-names = "ipg", "per";
748*4882a593Smuzhiyun				#pwm-cells = <3>;
749*4882a593Smuzhiyun				status = "disabled";
750*4882a593Smuzhiyun			};
751*4882a593Smuzhiyun
752*4882a593Smuzhiyun			csi: csi@30710000 {
753*4882a593Smuzhiyun				compatible = "fsl,imx7-csi";
754*4882a593Smuzhiyun				reg = <0x30710000 0x10000>;
755*4882a593Smuzhiyun				interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
756*4882a593Smuzhiyun				clocks = <&clks IMX7D_CLK_DUMMY>,
757*4882a593Smuzhiyun					 <&clks IMX7D_CSI_MCLK_ROOT_CLK>,
758*4882a593Smuzhiyun					 <&clks IMX7D_CLK_DUMMY>;
759*4882a593Smuzhiyun				clock-names = "axi", "mclk", "dcic";
760*4882a593Smuzhiyun				status = "disabled";
761*4882a593Smuzhiyun
762*4882a593Smuzhiyun				port {
763*4882a593Smuzhiyun					csi_from_csi_mux: endpoint {
764*4882a593Smuzhiyun						remote-endpoint = <&csi_mux_to_csi>;
765*4882a593Smuzhiyun					};
766*4882a593Smuzhiyun				};
767*4882a593Smuzhiyun			};
768*4882a593Smuzhiyun
769*4882a593Smuzhiyun			lcdif: lcdif@30730000 {
770*4882a593Smuzhiyun				compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
771*4882a593Smuzhiyun				reg = <0x30730000 0x10000>;
772*4882a593Smuzhiyun				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
773*4882a593Smuzhiyun				clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
774*4882a593Smuzhiyun					<&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>;
775*4882a593Smuzhiyun				clock-names = "pix", "axi";
776*4882a593Smuzhiyun				status = "disabled";
777*4882a593Smuzhiyun			};
778*4882a593Smuzhiyun
779*4882a593Smuzhiyun			mipi_csi: mipi-csi@30750000 {
780*4882a593Smuzhiyun				compatible = "fsl,imx7-mipi-csi2";
781*4882a593Smuzhiyun				reg = <0x30750000 0x10000>;
782*4882a593Smuzhiyun				#address-cells = <1>;
783*4882a593Smuzhiyun				#size-cells = <0>;
784*4882a593Smuzhiyun				interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
785*4882a593Smuzhiyun				clocks = <&clks IMX7D_IPG_ROOT_CLK>,
786*4882a593Smuzhiyun					 <&clks IMX7D_MIPI_CSI_ROOT_CLK>,
787*4882a593Smuzhiyun					 <&clks IMX7D_MIPI_DPHY_ROOT_CLK>;
788*4882a593Smuzhiyun				clock-names = "pclk", "wrap", "phy";
789*4882a593Smuzhiyun				power-domains = <&pgc_mipi_phy>;
790*4882a593Smuzhiyun				phy-supply = <&reg_1p0d>;
791*4882a593Smuzhiyun				resets = <&src IMX7_RESET_MIPI_PHY_MRST>;
792*4882a593Smuzhiyun				reset-names = "mrst";
793*4882a593Smuzhiyun				status = "disabled";
794*4882a593Smuzhiyun
795*4882a593Smuzhiyun				port@0 {
796*4882a593Smuzhiyun					reg = <0>;
797*4882a593Smuzhiyun				};
798*4882a593Smuzhiyun
799*4882a593Smuzhiyun				port@1 {
800*4882a593Smuzhiyun					reg = <1>;
801*4882a593Smuzhiyun
802*4882a593Smuzhiyun					mipi_vc0_to_csi_mux: endpoint {
803*4882a593Smuzhiyun						remote-endpoint = <&csi_mux_from_mipi_vc0>;
804*4882a593Smuzhiyun					};
805*4882a593Smuzhiyun				};
806*4882a593Smuzhiyun			};
807*4882a593Smuzhiyun		};
808*4882a593Smuzhiyun
809*4882a593Smuzhiyun		aips3: bus@30800000 {
810*4882a593Smuzhiyun			compatible = "fsl,aips-bus", "simple-bus";
811*4882a593Smuzhiyun			#address-cells = <1>;
812*4882a593Smuzhiyun			#size-cells = <1>;
813*4882a593Smuzhiyun			reg = <0x30800000 0x400000>;
814*4882a593Smuzhiyun			ranges;
815*4882a593Smuzhiyun
816*4882a593Smuzhiyun			spba-bus@30800000 {
817*4882a593Smuzhiyun				compatible = "fsl,spba-bus", "simple-bus";
818*4882a593Smuzhiyun				#address-cells = <1>;
819*4882a593Smuzhiyun				#size-cells = <1>;
820*4882a593Smuzhiyun				reg = <0x30800000 0x100000>;
821*4882a593Smuzhiyun				ranges;
822*4882a593Smuzhiyun
823*4882a593Smuzhiyun				ecspi1: spi@30820000 {
824*4882a593Smuzhiyun					#address-cells = <1>;
825*4882a593Smuzhiyun					#size-cells = <0>;
826*4882a593Smuzhiyun					compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
827*4882a593Smuzhiyun					reg = <0x30820000 0x10000>;
828*4882a593Smuzhiyun					interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
829*4882a593Smuzhiyun					clocks = <&clks IMX7D_ECSPI1_ROOT_CLK>,
830*4882a593Smuzhiyun						<&clks IMX7D_ECSPI1_ROOT_CLK>;
831*4882a593Smuzhiyun					clock-names = "ipg", "per";
832*4882a593Smuzhiyun					status = "disabled";
833*4882a593Smuzhiyun				};
834*4882a593Smuzhiyun
835*4882a593Smuzhiyun				ecspi2: spi@30830000 {
836*4882a593Smuzhiyun					#address-cells = <1>;
837*4882a593Smuzhiyun					#size-cells = <0>;
838*4882a593Smuzhiyun					compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
839*4882a593Smuzhiyun					reg = <0x30830000 0x10000>;
840*4882a593Smuzhiyun					interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
841*4882a593Smuzhiyun					clocks = <&clks IMX7D_ECSPI2_ROOT_CLK>,
842*4882a593Smuzhiyun						<&clks IMX7D_ECSPI2_ROOT_CLK>;
843*4882a593Smuzhiyun					clock-names = "ipg", "per";
844*4882a593Smuzhiyun					status = "disabled";
845*4882a593Smuzhiyun				};
846*4882a593Smuzhiyun
847*4882a593Smuzhiyun				ecspi3: spi@30840000 {
848*4882a593Smuzhiyun					#address-cells = <1>;
849*4882a593Smuzhiyun					#size-cells = <0>;
850*4882a593Smuzhiyun					compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
851*4882a593Smuzhiyun					reg = <0x30840000 0x10000>;
852*4882a593Smuzhiyun					interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
853*4882a593Smuzhiyun					clocks = <&clks IMX7D_ECSPI3_ROOT_CLK>,
854*4882a593Smuzhiyun						<&clks IMX7D_ECSPI3_ROOT_CLK>;
855*4882a593Smuzhiyun					clock-names = "ipg", "per";
856*4882a593Smuzhiyun					status = "disabled";
857*4882a593Smuzhiyun				};
858*4882a593Smuzhiyun
859*4882a593Smuzhiyun				uart1: serial@30860000 {
860*4882a593Smuzhiyun					compatible = "fsl,imx7d-uart",
861*4882a593Smuzhiyun						     "fsl,imx6q-uart";
862*4882a593Smuzhiyun					reg = <0x30860000 0x10000>;
863*4882a593Smuzhiyun					interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
864*4882a593Smuzhiyun					clocks = <&clks IMX7D_UART1_ROOT_CLK>,
865*4882a593Smuzhiyun						<&clks IMX7D_UART1_ROOT_CLK>;
866*4882a593Smuzhiyun					clock-names = "ipg", "per";
867*4882a593Smuzhiyun					status = "disabled";
868*4882a593Smuzhiyun				};
869*4882a593Smuzhiyun
870*4882a593Smuzhiyun				uart2: serial@30890000 {
871*4882a593Smuzhiyun					compatible = "fsl,imx7d-uart",
872*4882a593Smuzhiyun						     "fsl,imx6q-uart";
873*4882a593Smuzhiyun					reg = <0x30890000 0x10000>;
874*4882a593Smuzhiyun					interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
875*4882a593Smuzhiyun					clocks = <&clks IMX7D_UART2_ROOT_CLK>,
876*4882a593Smuzhiyun						<&clks IMX7D_UART2_ROOT_CLK>;
877*4882a593Smuzhiyun					clock-names = "ipg", "per";
878*4882a593Smuzhiyun					status = "disabled";
879*4882a593Smuzhiyun				};
880*4882a593Smuzhiyun
881*4882a593Smuzhiyun				uart3: serial@30880000 {
882*4882a593Smuzhiyun					compatible = "fsl,imx7d-uart",
883*4882a593Smuzhiyun						     "fsl,imx6q-uart";
884*4882a593Smuzhiyun					reg = <0x30880000 0x10000>;
885*4882a593Smuzhiyun					interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
886*4882a593Smuzhiyun					clocks = <&clks IMX7D_UART3_ROOT_CLK>,
887*4882a593Smuzhiyun						<&clks IMX7D_UART3_ROOT_CLK>;
888*4882a593Smuzhiyun					clock-names = "ipg", "per";
889*4882a593Smuzhiyun					status = "disabled";
890*4882a593Smuzhiyun				};
891*4882a593Smuzhiyun
892*4882a593Smuzhiyun				sai1: sai@308a0000 {
893*4882a593Smuzhiyun					#sound-dai-cells = <0>;
894*4882a593Smuzhiyun					compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
895*4882a593Smuzhiyun					reg = <0x308a0000 0x10000>;
896*4882a593Smuzhiyun					interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
897*4882a593Smuzhiyun					clocks = <&clks IMX7D_SAI1_IPG_CLK>,
898*4882a593Smuzhiyun						 <&clks IMX7D_SAI1_ROOT_CLK>,
899*4882a593Smuzhiyun						 <&clks IMX7D_CLK_DUMMY>,
900*4882a593Smuzhiyun						 <&clks IMX7D_CLK_DUMMY>;
901*4882a593Smuzhiyun					clock-names = "bus", "mclk1", "mclk2", "mclk3";
902*4882a593Smuzhiyun					dma-names = "rx", "tx";
903*4882a593Smuzhiyun					dmas = <&sdma 8 24 0>, <&sdma 9 24 0>;
904*4882a593Smuzhiyun					status = "disabled";
905*4882a593Smuzhiyun				};
906*4882a593Smuzhiyun
907*4882a593Smuzhiyun				sai2: sai@308b0000 {
908*4882a593Smuzhiyun					#sound-dai-cells = <0>;
909*4882a593Smuzhiyun					compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
910*4882a593Smuzhiyun					reg = <0x308b0000 0x10000>;
911*4882a593Smuzhiyun					interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
912*4882a593Smuzhiyun					clocks = <&clks IMX7D_SAI2_IPG_CLK>,
913*4882a593Smuzhiyun						 <&clks IMX7D_SAI2_ROOT_CLK>,
914*4882a593Smuzhiyun						 <&clks IMX7D_CLK_DUMMY>,
915*4882a593Smuzhiyun						 <&clks IMX7D_CLK_DUMMY>;
916*4882a593Smuzhiyun					clock-names = "bus", "mclk1", "mclk2", "mclk3";
917*4882a593Smuzhiyun					dma-names = "rx", "tx";
918*4882a593Smuzhiyun					dmas = <&sdma 10 24 0>, <&sdma 11 24 0>;
919*4882a593Smuzhiyun					status = "disabled";
920*4882a593Smuzhiyun				};
921*4882a593Smuzhiyun
922*4882a593Smuzhiyun				sai3: sai@308c0000 {
923*4882a593Smuzhiyun					#sound-dai-cells = <0>;
924*4882a593Smuzhiyun					compatible = "fsl,imx7d-sai", "fsl,imx6sx-sai";
925*4882a593Smuzhiyun					reg = <0x308c0000 0x10000>;
926*4882a593Smuzhiyun					interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
927*4882a593Smuzhiyun					clocks = <&clks IMX7D_SAI3_IPG_CLK>,
928*4882a593Smuzhiyun						 <&clks IMX7D_SAI3_ROOT_CLK>,
929*4882a593Smuzhiyun						 <&clks IMX7D_CLK_DUMMY>,
930*4882a593Smuzhiyun						 <&clks IMX7D_CLK_DUMMY>;
931*4882a593Smuzhiyun					clock-names = "bus", "mclk1", "mclk2", "mclk3";
932*4882a593Smuzhiyun					dma-names = "rx", "tx";
933*4882a593Smuzhiyun					dmas = <&sdma 12 24 0>, <&sdma 13 24 0>;
934*4882a593Smuzhiyun					status = "disabled";
935*4882a593Smuzhiyun				};
936*4882a593Smuzhiyun			};
937*4882a593Smuzhiyun
938*4882a593Smuzhiyun			crypto: crypto@30900000 {
939*4882a593Smuzhiyun				compatible = "fsl,sec-v4.0";
940*4882a593Smuzhiyun				#address-cells = <1>;
941*4882a593Smuzhiyun				#size-cells = <1>;
942*4882a593Smuzhiyun				reg = <0x30900000 0x40000>;
943*4882a593Smuzhiyun				ranges = <0 0x30900000 0x40000>;
944*4882a593Smuzhiyun				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
945*4882a593Smuzhiyun				clocks = <&clks IMX7D_CAAM_CLK>,
946*4882a593Smuzhiyun					 <&clks IMX7D_AHB_CHANNEL_ROOT_CLK>;
947*4882a593Smuzhiyun				clock-names = "ipg", "aclk";
948*4882a593Smuzhiyun
949*4882a593Smuzhiyun				sec_jr0: jr@1000 {
950*4882a593Smuzhiyun					compatible = "fsl,sec-v4.0-job-ring";
951*4882a593Smuzhiyun					reg = <0x1000 0x1000>;
952*4882a593Smuzhiyun					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
953*4882a593Smuzhiyun				};
954*4882a593Smuzhiyun
955*4882a593Smuzhiyun				sec_jr1: jr@2000 {
956*4882a593Smuzhiyun					compatible = "fsl,sec-v4.0-job-ring";
957*4882a593Smuzhiyun					reg = <0x2000 0x1000>;
958*4882a593Smuzhiyun					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
959*4882a593Smuzhiyun				};
960*4882a593Smuzhiyun
961*4882a593Smuzhiyun				sec_jr2: jr@3000 {
962*4882a593Smuzhiyun					compatible = "fsl,sec-v4.0-job-ring";
963*4882a593Smuzhiyun					reg = <0x3000 0x1000>;
964*4882a593Smuzhiyun					interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
965*4882a593Smuzhiyun				};
966*4882a593Smuzhiyun			};
967*4882a593Smuzhiyun
968*4882a593Smuzhiyun			flexcan1: can@30a00000 {
969*4882a593Smuzhiyun				compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
970*4882a593Smuzhiyun				reg = <0x30a00000 0x10000>;
971*4882a593Smuzhiyun				interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
972*4882a593Smuzhiyun				clocks = <&clks IMX7D_CLK_DUMMY>,
973*4882a593Smuzhiyun					<&clks IMX7D_CAN1_ROOT_CLK>;
974*4882a593Smuzhiyun				clock-names = "ipg", "per";
975*4882a593Smuzhiyun				fsl,stop-mode = <&gpr 0x10 1 0x10 17>;
976*4882a593Smuzhiyun				status = "disabled";
977*4882a593Smuzhiyun			};
978*4882a593Smuzhiyun
979*4882a593Smuzhiyun			flexcan2: can@30a10000 {
980*4882a593Smuzhiyun				compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
981*4882a593Smuzhiyun				reg = <0x30a10000 0x10000>;
982*4882a593Smuzhiyun				interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
983*4882a593Smuzhiyun				clocks = <&clks IMX7D_CLK_DUMMY>,
984*4882a593Smuzhiyun					<&clks IMX7D_CAN2_ROOT_CLK>;
985*4882a593Smuzhiyun				clock-names = "ipg", "per";
986*4882a593Smuzhiyun				fsl,stop-mode = <&gpr 0x10 2 0x10 18>;
987*4882a593Smuzhiyun				status = "disabled";
988*4882a593Smuzhiyun			};
989*4882a593Smuzhiyun
990*4882a593Smuzhiyun			i2c1: i2c@30a20000 {
991*4882a593Smuzhiyun				#address-cells = <1>;
992*4882a593Smuzhiyun				#size-cells = <0>;
993*4882a593Smuzhiyun				compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
994*4882a593Smuzhiyun				reg = <0x30a20000 0x10000>;
995*4882a593Smuzhiyun				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
996*4882a593Smuzhiyun				clocks = <&clks IMX7D_I2C1_ROOT_CLK>;
997*4882a593Smuzhiyun				status = "disabled";
998*4882a593Smuzhiyun			};
999*4882a593Smuzhiyun
1000*4882a593Smuzhiyun			i2c2: i2c@30a30000 {
1001*4882a593Smuzhiyun				#address-cells = <1>;
1002*4882a593Smuzhiyun				#size-cells = <0>;
1003*4882a593Smuzhiyun				compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
1004*4882a593Smuzhiyun				reg = <0x30a30000 0x10000>;
1005*4882a593Smuzhiyun				interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
1006*4882a593Smuzhiyun				clocks = <&clks IMX7D_I2C2_ROOT_CLK>;
1007*4882a593Smuzhiyun				status = "disabled";
1008*4882a593Smuzhiyun			};
1009*4882a593Smuzhiyun
1010*4882a593Smuzhiyun			i2c3: i2c@30a40000 {
1011*4882a593Smuzhiyun				#address-cells = <1>;
1012*4882a593Smuzhiyun				#size-cells = <0>;
1013*4882a593Smuzhiyun				compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
1014*4882a593Smuzhiyun				reg = <0x30a40000 0x10000>;
1015*4882a593Smuzhiyun				interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1016*4882a593Smuzhiyun				clocks = <&clks IMX7D_I2C3_ROOT_CLK>;
1017*4882a593Smuzhiyun				status = "disabled";
1018*4882a593Smuzhiyun			};
1019*4882a593Smuzhiyun
1020*4882a593Smuzhiyun			i2c4: i2c@30a50000 {
1021*4882a593Smuzhiyun				#address-cells = <1>;
1022*4882a593Smuzhiyun				#size-cells = <0>;
1023*4882a593Smuzhiyun				compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
1024*4882a593Smuzhiyun				reg = <0x30a50000 0x10000>;
1025*4882a593Smuzhiyun				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
1026*4882a593Smuzhiyun				clocks = <&clks IMX7D_I2C4_ROOT_CLK>;
1027*4882a593Smuzhiyun				status = "disabled";
1028*4882a593Smuzhiyun			};
1029*4882a593Smuzhiyun
1030*4882a593Smuzhiyun			uart4: serial@30a60000 {
1031*4882a593Smuzhiyun				compatible = "fsl,imx7d-uart",
1032*4882a593Smuzhiyun					     "fsl,imx6q-uart";
1033*4882a593Smuzhiyun				reg = <0x30a60000 0x10000>;
1034*4882a593Smuzhiyun				interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1035*4882a593Smuzhiyun				clocks = <&clks IMX7D_UART4_ROOT_CLK>,
1036*4882a593Smuzhiyun					<&clks IMX7D_UART4_ROOT_CLK>;
1037*4882a593Smuzhiyun				clock-names = "ipg", "per";
1038*4882a593Smuzhiyun				status = "disabled";
1039*4882a593Smuzhiyun			};
1040*4882a593Smuzhiyun
1041*4882a593Smuzhiyun			uart5: serial@30a70000 {
1042*4882a593Smuzhiyun				compatible = "fsl,imx7d-uart",
1043*4882a593Smuzhiyun					     "fsl,imx6q-uart";
1044*4882a593Smuzhiyun				reg = <0x30a70000 0x10000>;
1045*4882a593Smuzhiyun				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
1046*4882a593Smuzhiyun				clocks = <&clks IMX7D_UART5_ROOT_CLK>,
1047*4882a593Smuzhiyun					<&clks IMX7D_UART5_ROOT_CLK>;
1048*4882a593Smuzhiyun				clock-names = "ipg", "per";
1049*4882a593Smuzhiyun				status = "disabled";
1050*4882a593Smuzhiyun			};
1051*4882a593Smuzhiyun
1052*4882a593Smuzhiyun			uart6: serial@30a80000 {
1053*4882a593Smuzhiyun				compatible = "fsl,imx7d-uart",
1054*4882a593Smuzhiyun					     "fsl,imx6q-uart";
1055*4882a593Smuzhiyun				reg = <0x30a80000 0x10000>;
1056*4882a593Smuzhiyun				interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1057*4882a593Smuzhiyun				clocks = <&clks IMX7D_UART6_ROOT_CLK>,
1058*4882a593Smuzhiyun					<&clks IMX7D_UART6_ROOT_CLK>;
1059*4882a593Smuzhiyun				clock-names = "ipg", "per";
1060*4882a593Smuzhiyun				status = "disabled";
1061*4882a593Smuzhiyun			};
1062*4882a593Smuzhiyun
1063*4882a593Smuzhiyun			uart7: serial@30a90000 {
1064*4882a593Smuzhiyun				compatible = "fsl,imx7d-uart",
1065*4882a593Smuzhiyun					     "fsl,imx6q-uart";
1066*4882a593Smuzhiyun				reg = <0x30a90000 0x10000>;
1067*4882a593Smuzhiyun				interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
1068*4882a593Smuzhiyun				clocks = <&clks IMX7D_UART7_ROOT_CLK>,
1069*4882a593Smuzhiyun					<&clks IMX7D_UART7_ROOT_CLK>;
1070*4882a593Smuzhiyun				clock-names = "ipg", "per";
1071*4882a593Smuzhiyun				status = "disabled";
1072*4882a593Smuzhiyun			};
1073*4882a593Smuzhiyun
1074*4882a593Smuzhiyun			mu0a: mailbox@30aa0000 {
1075*4882a593Smuzhiyun				compatible = "fsl,imx7s-mu", "fsl,imx6sx-mu";
1076*4882a593Smuzhiyun				reg = <0x30aa0000 0x10000>;
1077*4882a593Smuzhiyun				interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1078*4882a593Smuzhiyun				clocks = <&clks IMX7D_MU_ROOT_CLK>;
1079*4882a593Smuzhiyun				#mbox-cells = <2>;
1080*4882a593Smuzhiyun				status = "disabled";
1081*4882a593Smuzhiyun			};
1082*4882a593Smuzhiyun
1083*4882a593Smuzhiyun			mu0b: mailbox@30ab0000 {
1084*4882a593Smuzhiyun				compatible = "fsl,imx7s-mu", "fsl,imx6sx-mu";
1085*4882a593Smuzhiyun				reg = <0x30ab0000 0x10000>;
1086*4882a593Smuzhiyun				interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1087*4882a593Smuzhiyun				clocks = <&clks IMX7D_MU_ROOT_CLK>;
1088*4882a593Smuzhiyun				#mbox-cells = <2>;
1089*4882a593Smuzhiyun				fsl,mu-side-b;
1090*4882a593Smuzhiyun				status = "disabled";
1091*4882a593Smuzhiyun			};
1092*4882a593Smuzhiyun
1093*4882a593Smuzhiyun			usbotg1: usb@30b10000 {
1094*4882a593Smuzhiyun				compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
1095*4882a593Smuzhiyun				reg = <0x30b10000 0x200>;
1096*4882a593Smuzhiyun				interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
1097*4882a593Smuzhiyun				clocks = <&clks IMX7D_USB_CTRL_CLK>;
1098*4882a593Smuzhiyun				fsl,usbphy = <&usbphynop1>;
1099*4882a593Smuzhiyun				fsl,usbmisc = <&usbmisc1 0>;
1100*4882a593Smuzhiyun				phy-clkgate-delay-us = <400>;
1101*4882a593Smuzhiyun				status = "disabled";
1102*4882a593Smuzhiyun			};
1103*4882a593Smuzhiyun
1104*4882a593Smuzhiyun			usbh: usb@30b30000 {
1105*4882a593Smuzhiyun				compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
1106*4882a593Smuzhiyun				reg = <0x30b30000 0x200>;
1107*4882a593Smuzhiyun				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
1108*4882a593Smuzhiyun				clocks = <&clks IMX7D_USB_CTRL_CLK>;
1109*4882a593Smuzhiyun				fsl,usbphy = <&usbphynop3>;
1110*4882a593Smuzhiyun				fsl,usbmisc = <&usbmisc3 0>;
1111*4882a593Smuzhiyun				phy_type = "hsic";
1112*4882a593Smuzhiyun				dr_mode = "host";
1113*4882a593Smuzhiyun				phy-clkgate-delay-us = <400>;
1114*4882a593Smuzhiyun				status = "disabled";
1115*4882a593Smuzhiyun			};
1116*4882a593Smuzhiyun
1117*4882a593Smuzhiyun			usbmisc1: usbmisc@30b10200 {
1118*4882a593Smuzhiyun				#index-cells = <1>;
1119*4882a593Smuzhiyun				compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
1120*4882a593Smuzhiyun				reg = <0x30b10200 0x200>;
1121*4882a593Smuzhiyun			};
1122*4882a593Smuzhiyun
1123*4882a593Smuzhiyun			usbmisc3: usbmisc@30b30200 {
1124*4882a593Smuzhiyun				#index-cells = <1>;
1125*4882a593Smuzhiyun				compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
1126*4882a593Smuzhiyun				reg = <0x30b30200 0x200>;
1127*4882a593Smuzhiyun			};
1128*4882a593Smuzhiyun
1129*4882a593Smuzhiyun			usdhc1: mmc@30b40000 {
1130*4882a593Smuzhiyun				compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
1131*4882a593Smuzhiyun				reg = <0x30b40000 0x10000>;
1132*4882a593Smuzhiyun				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
1133*4882a593Smuzhiyun				clocks = <&clks IMX7D_IPG_ROOT_CLK>,
1134*4882a593Smuzhiyun					<&clks IMX7D_NAND_USDHC_BUS_ROOT_CLK>,
1135*4882a593Smuzhiyun					<&clks IMX7D_USDHC1_ROOT_CLK>;
1136*4882a593Smuzhiyun				clock-names = "ipg", "ahb", "per";
1137*4882a593Smuzhiyun				bus-width = <4>;
1138*4882a593Smuzhiyun				status = "disabled";
1139*4882a593Smuzhiyun			};
1140*4882a593Smuzhiyun
1141*4882a593Smuzhiyun			usdhc2: mmc@30b50000 {
1142*4882a593Smuzhiyun				compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
1143*4882a593Smuzhiyun				reg = <0x30b50000 0x10000>;
1144*4882a593Smuzhiyun				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
1145*4882a593Smuzhiyun				clocks = <&clks IMX7D_IPG_ROOT_CLK>,
1146*4882a593Smuzhiyun					<&clks IMX7D_NAND_USDHC_BUS_ROOT_CLK>,
1147*4882a593Smuzhiyun					<&clks IMX7D_USDHC2_ROOT_CLK>;
1148*4882a593Smuzhiyun				clock-names = "ipg", "ahb", "per";
1149*4882a593Smuzhiyun				bus-width = <4>;
1150*4882a593Smuzhiyun				status = "disabled";
1151*4882a593Smuzhiyun			};
1152*4882a593Smuzhiyun
1153*4882a593Smuzhiyun			usdhc3: mmc@30b60000 {
1154*4882a593Smuzhiyun				compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
1155*4882a593Smuzhiyun				reg = <0x30b60000 0x10000>;
1156*4882a593Smuzhiyun				interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
1157*4882a593Smuzhiyun				clocks = <&clks IMX7D_IPG_ROOT_CLK>,
1158*4882a593Smuzhiyun					<&clks IMX7D_NAND_USDHC_BUS_ROOT_CLK>,
1159*4882a593Smuzhiyun					<&clks IMX7D_USDHC3_ROOT_CLK>;
1160*4882a593Smuzhiyun				clock-names = "ipg", "ahb", "per";
1161*4882a593Smuzhiyun				bus-width = <4>;
1162*4882a593Smuzhiyun				status = "disabled";
1163*4882a593Smuzhiyun			};
1164*4882a593Smuzhiyun
1165*4882a593Smuzhiyun			qspi: spi@30bb0000 {
1166*4882a593Smuzhiyun				compatible = "fsl,imx7d-qspi";
1167*4882a593Smuzhiyun				reg = <0x30bb0000 0x10000>, <0x60000000 0x10000000>;
1168*4882a593Smuzhiyun				reg-names = "QuadSPI", "QuadSPI-memory";
1169*4882a593Smuzhiyun				#address-cells = <1>;
1170*4882a593Smuzhiyun				#size-cells = <0>;
1171*4882a593Smuzhiyun				interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1172*4882a593Smuzhiyun				clocks = <&clks IMX7D_QSPI_ROOT_CLK>,
1173*4882a593Smuzhiyun					<&clks IMX7D_QSPI_ROOT_CLK>;
1174*4882a593Smuzhiyun				clock-names = "qspi_en", "qspi";
1175*4882a593Smuzhiyun				status = "disabled";
1176*4882a593Smuzhiyun			};
1177*4882a593Smuzhiyun
1178*4882a593Smuzhiyun			sdma: sdma@30bd0000 {
1179*4882a593Smuzhiyun				compatible = "fsl,imx7d-sdma", "fsl,imx35-sdma";
1180*4882a593Smuzhiyun				reg = <0x30bd0000 0x10000>;
1181*4882a593Smuzhiyun				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
1182*4882a593Smuzhiyun				clocks = <&clks IMX7D_IPG_ROOT_CLK>,
1183*4882a593Smuzhiyun					 <&clks IMX7D_SDMA_CORE_CLK>;
1184*4882a593Smuzhiyun				clock-names = "ipg", "ahb";
1185*4882a593Smuzhiyun				#dma-cells = <3>;
1186*4882a593Smuzhiyun				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
1187*4882a593Smuzhiyun			};
1188*4882a593Smuzhiyun
1189*4882a593Smuzhiyun			fec1: ethernet@30be0000 {
1190*4882a593Smuzhiyun				compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
1191*4882a593Smuzhiyun				reg = <0x30be0000 0x10000>;
1192*4882a593Smuzhiyun				interrupt-names = "int0", "int1", "int2", "pps";
1193*4882a593Smuzhiyun				interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
1194*4882a593Smuzhiyun					<GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1195*4882a593Smuzhiyun					<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
1196*4882a593Smuzhiyun					<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
1197*4882a593Smuzhiyun				clocks = <&clks IMX7D_ENET1_IPG_ROOT_CLK>,
1198*4882a593Smuzhiyun					<&clks IMX7D_ENET_AXI_ROOT_CLK>,
1199*4882a593Smuzhiyun					<&clks IMX7D_ENET1_TIME_ROOT_CLK>,
1200*4882a593Smuzhiyun					<&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
1201*4882a593Smuzhiyun					<&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
1202*4882a593Smuzhiyun				clock-names = "ipg", "ahb", "ptp",
1203*4882a593Smuzhiyun					"enet_clk_ref", "enet_out";
1204*4882a593Smuzhiyun				fsl,num-tx-queues = <3>;
1205*4882a593Smuzhiyun				fsl,num-rx-queues = <3>;
1206*4882a593Smuzhiyun				fsl,stop-mode = <&gpr 0x10 3>;
1207*4882a593Smuzhiyun				status = "disabled";
1208*4882a593Smuzhiyun			};
1209*4882a593Smuzhiyun		};
1210*4882a593Smuzhiyun
1211*4882a593Smuzhiyun		dma_apbh: dma-apbh@33000000 {
1212*4882a593Smuzhiyun			compatible = "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh";
1213*4882a593Smuzhiyun			reg = <0x33000000 0x2000>;
1214*4882a593Smuzhiyun			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1215*4882a593Smuzhiyun				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1216*4882a593Smuzhiyun				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1217*4882a593Smuzhiyun				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1218*4882a593Smuzhiyun			interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
1219*4882a593Smuzhiyun			#dma-cells = <1>;
1220*4882a593Smuzhiyun			dma-channels = <4>;
1221*4882a593Smuzhiyun			clocks = <&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>;
1222*4882a593Smuzhiyun		};
1223*4882a593Smuzhiyun
1224*4882a593Smuzhiyun		gpmi: nand-controller@33002000{
1225*4882a593Smuzhiyun			compatible = "fsl,imx7d-gpmi-nand";
1226*4882a593Smuzhiyun			#address-cells = <1>;
1227*4882a593Smuzhiyun			#size-cells = <1>;
1228*4882a593Smuzhiyun			reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
1229*4882a593Smuzhiyun			reg-names = "gpmi-nand", "bch";
1230*4882a593Smuzhiyun			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1231*4882a593Smuzhiyun			interrupt-names = "bch";
1232*4882a593Smuzhiyun			clocks = <&clks IMX7D_NAND_RAWNAND_CLK>,
1233*4882a593Smuzhiyun				<&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>;
1234*4882a593Smuzhiyun			clock-names = "gpmi_io", "gpmi_bch_apb";
1235*4882a593Smuzhiyun			dmas = <&dma_apbh 0>;
1236*4882a593Smuzhiyun			dma-names = "rx-tx";
1237*4882a593Smuzhiyun			status = "disabled";
1238*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7D_NAND_ROOT_SRC>;
1239*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_500M_CLK>;
1240*4882a593Smuzhiyun		};
1241*4882a593Smuzhiyun	};
1242*4882a593Smuzhiyun};
1243