xref: /OK3568_Linux_fs/u-boot/arch/arm/dts/imx7ulp.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * Copyright 2015-2016 Freescale Semiconductor, Inc.
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify
5*4882a593Smuzhiyun * it under the terms of the GNU General Public License version 2 as
6*4882a593Smuzhiyun * published by the Free Software Foundation.
7*4882a593Smuzhiyun */
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include <dt-bindings/clock/imx7ulp-clock.h>
10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
11*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
12*4882a593Smuzhiyun#include "skeleton.dtsi"
13*4882a593Smuzhiyun#include "imx7ulp-pinfunc.h"
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun/ {
16*4882a593Smuzhiyun	interrupt-parent = <&intc>;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	aliases {
19*4882a593Smuzhiyun		gpio0 = &gpio0;
20*4882a593Smuzhiyun		gpio1 = &gpio1;
21*4882a593Smuzhiyun		gpio2 = &gpio2;
22*4882a593Smuzhiyun		gpio3 = &gpio3;
23*4882a593Smuzhiyun		mmc0 = &usdhc0;
24*4882a593Smuzhiyun		mmc1 = &usdhc1;
25*4882a593Smuzhiyun		serial0 = &lpuart4;
26*4882a593Smuzhiyun		serial1 = &lpuart5;
27*4882a593Smuzhiyun		serial2 = &lpuart6;
28*4882a593Smuzhiyun		serial3 = &lpuart7;
29*4882a593Smuzhiyun		usbphy0 = &usbphy1;
30*4882a593Smuzhiyun		i2c0 = &lpi2c4;
31*4882a593Smuzhiyun		i2c1 = &lpi2c5;
32*4882a593Smuzhiyun		i2c2 = &lpi2c6;
33*4882a593Smuzhiyun		i2c3 = &lpi2c7;
34*4882a593Smuzhiyun	};
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun	cpus {
37*4882a593Smuzhiyun		#address-cells = <1>;
38*4882a593Smuzhiyun		#size-cells = <0>;
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun		cpu0: cpu@0 {
41*4882a593Smuzhiyun			compatible = "arm,cortex-a7";
42*4882a593Smuzhiyun			device_type = "cpu";
43*4882a593Smuzhiyun			reg = <0>;
44*4882a593Smuzhiyun		};
45*4882a593Smuzhiyun	};
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun	reserved-memory {
48*4882a593Smuzhiyun		#address-cells = <1>;
49*4882a593Smuzhiyun		#size-cells = <1>;
50*4882a593Smuzhiyun		ranges;
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun		/* global autoconfigured region for contiguous allocations */
53*4882a593Smuzhiyun		linux,cma {
54*4882a593Smuzhiyun			compatible = "shared-dma-pool";
55*4882a593Smuzhiyun			reusable;
56*4882a593Smuzhiyun			size = <0xC000000>;
57*4882a593Smuzhiyun			alignment = <0x2000>;
58*4882a593Smuzhiyun			linux,cma-default;
59*4882a593Smuzhiyun		};
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun		rpmsg_reserved: rpmsg@9FFF0000 {
62*4882a593Smuzhiyun			no-map;
63*4882a593Smuzhiyun			reg = <0x9FF00000 0x100000>;
64*4882a593Smuzhiyun		};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun	};
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun	intc: interrupt-controller@40021000 {
69*4882a593Smuzhiyun		compatible = "arm,cortex-a7-gic";
70*4882a593Smuzhiyun		#interrupt-cells = <3>;
71*4882a593Smuzhiyun		interrupt-controller;
72*4882a593Smuzhiyun		reg = <0x40021000 0x1000>,
73*4882a593Smuzhiyun		      <0x40022000 0x100>;
74*4882a593Smuzhiyun	};
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	clocks {
77*4882a593Smuzhiyun		#address-cells = <1>;
78*4882a593Smuzhiyun		#size-cells = <0>;
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun		ckil: clock@0 {
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@1 {
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		sirc: clock@2 {
95*4882a593Smuzhiyun			compatible = "fixed-clock";
96*4882a593Smuzhiyun			#clock-cells = <0>;
97*4882a593Smuzhiyun			clock-frequency = <16000000>;
98*4882a593Smuzhiyun			clock-output-names = "sirc";
99*4882a593Smuzhiyun		};
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun		firc: clock@3 {
102*4882a593Smuzhiyun			compatible = "fixed-clock";
103*4882a593Smuzhiyun			#clock-cells = <0>;
104*4882a593Smuzhiyun			clock-frequency = <48000000>;
105*4882a593Smuzhiyun			clock-output-names = "firc";
106*4882a593Smuzhiyun		};
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun		upll: clock@4 {
109*4882a593Smuzhiyun			compatible = "fixed-clock";
110*4882a593Smuzhiyun			#clock-cells = <0>;
111*4882a593Smuzhiyun			clock-frequency = <480000000>;
112*4882a593Smuzhiyun			clock-output-names = "upll";
113*4882a593Smuzhiyun		};
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun		mpll: clock@5 {
116*4882a593Smuzhiyun			compatible = "fixed-clock";
117*4882a593Smuzhiyun			#clock-cells = <0>;
118*4882a593Smuzhiyun			clock-frequency = <480000000>;
119*4882a593Smuzhiyun			clock-output-names = "mpll";
120*4882a593Smuzhiyun		};
121*4882a593Smuzhiyun	};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun	sram: sram@20000000 {
124*4882a593Smuzhiyun		compatible = "fsl,lpm-sram";
125*4882a593Smuzhiyun		reg = <0x1fffc000 0x4000>;
126*4882a593Smuzhiyun	};
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun	ahbbridge0: ahb-bridge0@40000000 {
129*4882a593Smuzhiyun		compatible = "fsl,aips-bus", "simple-bus";
130*4882a593Smuzhiyun		#address-cells = <1>;
131*4882a593Smuzhiyun		#size-cells = <1>;
132*4882a593Smuzhiyun		reg = <0x40000000 0x800000>;
133*4882a593Smuzhiyun		ranges;
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun		edma0: dma-controller@40080000 {
136*4882a593Smuzhiyun			#dma-cells = <2>;
137*4882a593Smuzhiyun			compatible = "nxp,imx7ulp-edma";
138*4882a593Smuzhiyun			reg = <0x40080000 0x2000>,
139*4882a593Smuzhiyun				<0x40210000 0x1000>;
140*4882a593Smuzhiyun			dma-channels = <32>;
141*4882a593Smuzhiyun			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
142*4882a593Smuzhiyun					<GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
143*4882a593Smuzhiyun					<GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
144*4882a593Smuzhiyun					<GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
145*4882a593Smuzhiyun					<GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
146*4882a593Smuzhiyun					<GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
147*4882a593Smuzhiyun					<GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
148*4882a593Smuzhiyun					<GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
149*4882a593Smuzhiyun					<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
150*4882a593Smuzhiyun					<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
151*4882a593Smuzhiyun					<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
152*4882a593Smuzhiyun					<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
153*4882a593Smuzhiyun					<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
154*4882a593Smuzhiyun					<GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
155*4882a593Smuzhiyun					<GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
156*4882a593Smuzhiyun					<GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
157*4882a593Smuzhiyun					<GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
158*4882a593Smuzhiyun			clock-names = "dma", "dmamux0";
159*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_DMA1>, <&clks IMX7ULP_CLK_DMA_MUX1>;
160*4882a593Smuzhiyun		};
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun		mu: mu@40220000 {
163*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-mu", "fsl,imx6sx-mu";
164*4882a593Smuzhiyun			reg = <0x40220000 0x1000>;
165*4882a593Smuzhiyun			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
166*4882a593Smuzhiyun					<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
167*4882a593Smuzhiyun			status = "okay";
168*4882a593Smuzhiyun		};
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun		nmi: nmi@40220000 {
171*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-nmi";
172*4882a593Smuzhiyun			reg = <0x40220000 0x1000>;
173*4882a593Smuzhiyun			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
174*4882a593Smuzhiyun			status = "okay";
175*4882a593Smuzhiyun		};
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun		rpmsg: rpmsg{
178*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-rpmsg";
179*4882a593Smuzhiyun			memory-region = <&rpmsg_reserved>;
180*4882a593Smuzhiyun			status = "disabled";
181*4882a593Smuzhiyun		};
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun		snvs: snvs@40230000 {
184*4882a593Smuzhiyun			compatible = "fsl,sec-v4.0-mon","syscon", "simple-mfd";
185*4882a593Smuzhiyun			reg = <0x40230000 0x10000>;
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun			snvs_rtc: snvs-rtc-lp{
188*4882a593Smuzhiyun				compatible = "fsl,sec-v4.0-mon-rtc-lp";
189*4882a593Smuzhiyun				regmap =<&snvs>;
190*4882a593Smuzhiyun				offset = <0x34>;
191*4882a593Smuzhiyun				interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
192*4882a593Smuzhiyun				clock-names = "snvs-rtc";
193*4882a593Smuzhiyun				clocks = <&clks IMX7ULP_CLK_SNVS>;
194*4882a593Smuzhiyun			};
195*4882a593Smuzhiyun		};
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun		tpm5: tpm@40260000 {
198*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-tpm";
199*4882a593Smuzhiyun			reg = <0x40260000 0x1000>;
200*4882a593Smuzhiyun			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
201*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPTPM5>;
202*4882a593Smuzhiyun		};
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun		lpit: 1@40270000 {
205*4882a593Smuzhiyun			compatible = "fsl,imx-lpit";
206*4882a593Smuzhiyun			reg = <0x40270000 0x1000>;
207*4882a593Smuzhiyun			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
208*4882a593Smuzhiyun			/*    clocks = <&lpclk>;*/
209*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPIT1>;
210*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
211*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPIT1>;
212*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
213*4882a593Smuzhiyun		};
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun		lpi2c4: lpi2c4@402B0000 {
216*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lpi2c";
217*4882a593Smuzhiyun			reg = <0x402B0000 0x10000>;
218*4882a593Smuzhiyun			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
219*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPI2C4>;
220*4882a593Smuzhiyun			clock-names = "ipg";
221*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPI2C4>;
222*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
223*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
224*4882a593Smuzhiyun			status = "disabled";
225*4882a593Smuzhiyun		};
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun		lpi2c5: lpi2c4@402C0000 {
228*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lpi2c";
229*4882a593Smuzhiyun			reg = <0x402C0000 0x10000>;
230*4882a593Smuzhiyun			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
231*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPI2C5>;
232*4882a593Smuzhiyun			clock-names = "ipg";
233*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPI2C5>;
234*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
235*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
236*4882a593Smuzhiyun			status = "disabled";
237*4882a593Smuzhiyun		};
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun		lpspi2: lpspi@40290000 {
240*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-spi";
241*4882a593Smuzhiyun			reg = <0x40290000 0x10000>;
242*4882a593Smuzhiyun			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
243*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPSPI2>;
244*4882a593Smuzhiyun			clock-names = "ipg";
245*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPSPI2>;
246*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
247*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
248*4882a593Smuzhiyun			status = "disabled";
249*4882a593Smuzhiyun		};
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun		lpspi3: lpspi@402A0000 {
252*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-spi";
253*4882a593Smuzhiyun			reg = <0x402A0000 0x10000>;
254*4882a593Smuzhiyun			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
255*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPSPI3>;
256*4882a593Smuzhiyun			clock-names = "ipg";
257*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPSPI3>;
258*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
259*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
260*4882a593Smuzhiyun			status = "disabled";
261*4882a593Smuzhiyun		};
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun		lpuart4: serial@402D0000 {
264*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lpuart";
265*4882a593Smuzhiyun			reg = <0x402D0000 0x1000>;
266*4882a593Smuzhiyun			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
267*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPUART4>;
268*4882a593Smuzhiyun			clock-names = "ipg";
269*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPUART4>;
270*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_OSC>;
271*4882a593Smuzhiyun			assigned-clock-rates = <24000000>;
272*4882a593Smuzhiyun			status = "disabled";
273*4882a593Smuzhiyun		};
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun		lpuart5: serial@402E0000 {
276*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lpuart";
277*4882a593Smuzhiyun			reg = <0x402E0000 0x1000>;
278*4882a593Smuzhiyun			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
279*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPUART5>;
280*4882a593Smuzhiyun			clock-names = "ipg";
281*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPUART5>;
282*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
283*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
284*4882a593Smuzhiyun			dmas = <&edma0 0 20>, <&edma0 0 19>;
285*4882a593Smuzhiyun			dma-names = "tx","rx";
286*4882a593Smuzhiyun			status = "disabled";
287*4882a593Smuzhiyun		};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun		usbotg1: usb@40330000 {
290*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-usb", "fsl,imx6ul-usb",
291*4882a593Smuzhiyun				"fsl,imx27-usb";
292*4882a593Smuzhiyun			reg = <0x40330000 0x200>;
293*4882a593Smuzhiyun			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
294*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_USB0>;
295*4882a593Smuzhiyun			fsl,usbphy = <&usbphy1>;
296*4882a593Smuzhiyun			fsl,usbmisc = <&usbmisc1 0>;
297*4882a593Smuzhiyun			ahb-burst-config = <0x0>;
298*4882a593Smuzhiyun			tx-burst-size-dword = <0x8>;
299*4882a593Smuzhiyun			rx-burst-size-dword = <0x8>;
300*4882a593Smuzhiyun			status = "disabled";
301*4882a593Smuzhiyun		};
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun		usbmisc1: usbmisc@40330200 {
304*4882a593Smuzhiyun			#index-cells = <1>;
305*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-usbmisc", "fsl,imx7d-usbmisc",
306*4882a593Smuzhiyun				"fsl,imx6q-usbmisc";
307*4882a593Smuzhiyun			reg = <0x40330200 0x200>;
308*4882a593Smuzhiyun		};
309*4882a593Smuzhiyun
310*4882a593Smuzhiyun		usbphy1: usbphy@0x40350000 {
311*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-usbphy",
312*4882a593Smuzhiyun				"fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
313*4882a593Smuzhiyun			reg = <0x40350000 0x1000>;
314*4882a593Smuzhiyun			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
315*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_USB_PHY>;
316*4882a593Smuzhiyun			nxp,sim = <&sim>;
317*4882a593Smuzhiyun		};
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun		usdhc0: usdhc@40370000 {
320*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-usdhc";
321*4882a593Smuzhiyun			reg = <0x40370000 0x10000>;
322*4882a593Smuzhiyun			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
323*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_NIC1_BUS_DIV>,
324*4882a593Smuzhiyun				 <&clks IMX7ULP_CLK_NIC1_DIV>,
325*4882a593Smuzhiyun				 <&clks IMX7ULP_CLK_USDHC0>;
326*4882a593Smuzhiyun			clock-names ="ipg", "ahb", "per";
327*4882a593Smuzhiyun			bus-width = <4>;
328*4882a593Smuzhiyun			fsl,tuning-start-tap = <20>;
329*4882a593Smuzhiyun			fsl,tuning-step= <2>;
330*4882a593Smuzhiyun			status = "disabled";
331*4882a593Smuzhiyun		};
332*4882a593Smuzhiyun
333*4882a593Smuzhiyun		usdhc1: usdhc@40380000 {
334*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-usdhc";
335*4882a593Smuzhiyun			reg = <0x40380000 0x10000>;
336*4882a593Smuzhiyun			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
337*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_NIC1_BUS_DIV>,
338*4882a593Smuzhiyun				 <&clks IMX7ULP_CLK_NIC1_DIV>,
339*4882a593Smuzhiyun				 <&clks IMX7ULP_CLK_USDHC1>;
340*4882a593Smuzhiyun			clock-names ="ipg", "ahb", "per";
341*4882a593Smuzhiyun			bus-width = <4>;
342*4882a593Smuzhiyun			fsl,tuning-start-tap = <20>;
343*4882a593Smuzhiyun			fsl,tuning-step= <2>;
344*4882a593Smuzhiyun			status = "disabled";
345*4882a593Smuzhiyun		};
346*4882a593Smuzhiyun
347*4882a593Smuzhiyun		wdog1: wdog@403D0000 {
348*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-wdt";
349*4882a593Smuzhiyun			reg = <0x403D0000 0x10000>;
350*4882a593Smuzhiyun			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
351*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_WDG1>;
352*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_WDG1>;
353*4882a593Smuzhiyun			assigned-clocks-parents = <&clks IMX7ULP_CLK_FIRC>;
354*4882a593Smuzhiyun			/*
355*4882a593Smuzhiyun			 * As the 1KHz LPO clock rate is not trimed,the actually clock
356*4882a593Smuzhiyun			 * is about 667Hz, so the init timeout 60s should set 40*1000
357*4882a593Smuzhiyun			 * in the TOVAL register.
358*4882a593Smuzhiyun			 */
359*4882a593Smuzhiyun			timeout-sec = <40>;
360*4882a593Smuzhiyun		};
361*4882a593Smuzhiyun
362*4882a593Smuzhiyun		wdog2: wdog@40430000 {
363*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-wdt";
364*4882a593Smuzhiyun			reg = <0x40430000 0x10000>;
365*4882a593Smuzhiyun			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
366*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_WDG2>;
367*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_WDG2>;
368*4882a593Smuzhiyun			assigned-clocks-parents = <&clks IMX7ULP_CLK_FIRC>;
369*4882a593Smuzhiyun			timeout-sec = <40>;
370*4882a593Smuzhiyun		};
371*4882a593Smuzhiyun
372*4882a593Smuzhiyun		clks: scg1@403E0000 {
373*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-scg1";
374*4882a593Smuzhiyun			reg = <0x403E0000 0x10000>;
375*4882a593Smuzhiyun			clocks = <&ckil>, <&osc>, <&sirc>,
376*4882a593Smuzhiyun				<&firc>, <&upll>, <&mpll>;
377*4882a593Smuzhiyun			clock-names = "ckil", "osc", "sirc",
378*4882a593Smuzhiyun				"firc", "upll", "mpll";
379*4882a593Smuzhiyun			#clock-cells = <1>;
380*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPTPM5>,
381*4882a593Smuzhiyun					  <&clks IMX7ULP_CLK_USDHC1>;
382*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_OSC>,
383*4882a593Smuzhiyun						 <&clks IMX7ULP_CLK_NIC1_DIV>;
384*4882a593Smuzhiyun		};
385*4882a593Smuzhiyun
386*4882a593Smuzhiyun		pcc2: pcc2@403F0000 {
387*4882a593Smuzhiyun			compatible  = "fsl,imx7ulp-pcc2";
388*4882a593Smuzhiyun			reg = <0x403F0000 0x10000>;
389*4882a593Smuzhiyun		};
390*4882a593Smuzhiyun
391*4882a593Smuzhiyun		pmc1: pmc1@40400000 {
392*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-pmc1";
393*4882a593Smuzhiyun			reg = <0x40400000 0x1000>;
394*4882a593Smuzhiyun		};
395*4882a593Smuzhiyun
396*4882a593Smuzhiyun		smc1: smc1@40410000 {
397*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-smc1";
398*4882a593Smuzhiyun			reg = <0x40410000 0x1000>;
399*4882a593Smuzhiyun		};
400*4882a593Smuzhiyun
401*4882a593Smuzhiyun	};
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun	ahbbridge1: ahb-bridge1@40800000 {
404*4882a593Smuzhiyun		compatible = "fsl,aips-bus", "simple-bus";
405*4882a593Smuzhiyun		#address-cells = <1>;
406*4882a593Smuzhiyun		#size-cells = <1>;
407*4882a593Smuzhiyun		reg = <0x40800000 0x800000>;
408*4882a593Smuzhiyun		ranges;
409*4882a593Smuzhiyun
410*4882a593Smuzhiyun		lpi2c6: lpi2c6@40A40000 {
411*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lpi2c";
412*4882a593Smuzhiyun			reg = <0x40A40000 0x10000>;
413*4882a593Smuzhiyun			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
414*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPI2C6>;
415*4882a593Smuzhiyun			clock-names = "ipg";
416*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPI2C6>;
417*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
418*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
419*4882a593Smuzhiyun			status = "disabled";
420*4882a593Smuzhiyun		};
421*4882a593Smuzhiyun
422*4882a593Smuzhiyun		lpi2c7: lpi2c7@40A50000 {
423*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lpi2c";
424*4882a593Smuzhiyun			reg = <0x40A50000 0x10000>;
425*4882a593Smuzhiyun			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
426*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPI2C7>;
427*4882a593Smuzhiyun			clock-names = "ipg";
428*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPI2C7>;
429*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
430*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
431*4882a593Smuzhiyun			status = "disabled";
432*4882a593Smuzhiyun		};
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun		lpuart6: serial@40A60000 {
435*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lpuart";
436*4882a593Smuzhiyun			reg = <0x40A60000 0x1000>;
437*4882a593Smuzhiyun			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
438*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPUART6>;
439*4882a593Smuzhiyun			clock-names = "ipg";
440*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPUART6>;
441*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
442*4882a593Smuzhiyun			assigned-clock-rates = <48000000>;
443*4882a593Smuzhiyun			dmas = <&edma0 0 22>, <&edma0 0 21>;
444*4882a593Smuzhiyun			dma-names = "tx","rx";
445*4882a593Smuzhiyun			status = "disabled";
446*4882a593Smuzhiyun		};
447*4882a593Smuzhiyun
448*4882a593Smuzhiyun		lpuart7: serial@40A70000 {
449*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lpuart";
450*4882a593Smuzhiyun			reg = <0x40A70000 0x1000>;
451*4882a593Smuzhiyun			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
452*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_LPUART7>;
453*4882a593Smuzhiyun			clock-names = "ipg";
454*4882a593Smuzhiyun			assigned-clocks = <&clks IMX7ULP_CLK_LPUART7>;
455*4882a593Smuzhiyun			assigned-clock-parents = <&clks IMX7ULP_CLK_FIRC>;
456*4882a593Smuzhiyun			assigned-clock-rates = <50000000>;
457*4882a593Smuzhiyun			dmas = <&edma0 0 24>, <&edma0 0 23>;
458*4882a593Smuzhiyun			dma-names = "tx","rx";
459*4882a593Smuzhiyun			status = "disabled";
460*4882a593Smuzhiyun		};
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun		lcdif: lcdif@40AA0000 {
463*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-lcdif";
464*4882a593Smuzhiyun			reg = <0x40aa0000 0x10000>;
465*4882a593Smuzhiyun			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
466*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_DUMMY>,
467*4882a593Smuzhiyun				 <&clks IMX7ULP_CLK_LCDIF>,
468*4882a593Smuzhiyun				 <&clks IMX7ULP_CLK_DUMMY>;
469*4882a593Smuzhiyun			clock-names = "axi", "pix", "disp_axi";
470*4882a593Smuzhiyun			status = "disabled";
471*4882a593Smuzhiyun		};
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun		mipi_dsi: mipi_dsi@40A90000 {
474*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-mipi-dsi";
475*4882a593Smuzhiyun			reg = <0x40A90000 0x10000>;
476*4882a593Smuzhiyun			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
477*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_DSI>;
478*4882a593Smuzhiyun			clock-names = "mipi_dsi_clk";
479*4882a593Smuzhiyun			sim = <&sim>;
480*4882a593Smuzhiyun			status = "disabled";
481*4882a593Smuzhiyun		};
482*4882a593Smuzhiyun
483*4882a593Smuzhiyun		mmdc: mmdc@40ab0000 {
484*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-mmdc";
485*4882a593Smuzhiyun			reg = <0x40ab0000 0x4000>;
486*4882a593Smuzhiyun		};
487*4882a593Smuzhiyun
488*4882a593Smuzhiyun		pcc3: pcc3@40B30000 {
489*4882a593Smuzhiyun			compatible  = "fsl,imx7ulp-pcc3";
490*4882a593Smuzhiyun			reg = <0x40B30000 0x10000>;
491*4882a593Smuzhiyun		};
492*4882a593Smuzhiyun
493*4882a593Smuzhiyun		iomuxc: iomuxc@4103D000 {
494*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-iomuxc-0";
495*4882a593Smuzhiyun			reg = <0x4103D000 0x1000>;
496*4882a593Smuzhiyun			fsl,mux_mask = <0xf00>;
497*4882a593Smuzhiyun			status = "disabled";
498*4882a593Smuzhiyun		};
499*4882a593Smuzhiyun
500*4882a593Smuzhiyun		iomuxc1: iomuxc1@40ac0000 {
501*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-iomuxc-1";
502*4882a593Smuzhiyun			reg = <0x40ac0000 0x1000>;
503*4882a593Smuzhiyun			fsl,mux_mask = <0xf00>;
504*4882a593Smuzhiyun		};
505*4882a593Smuzhiyun
506*4882a593Smuzhiyun		gpio0: gpio@40ae0000 {
507*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-gpio";
508*4882a593Smuzhiyun			reg = <0x40ae0000 0x1000 0x400F0000 0x40>;
509*4882a593Smuzhiyun			gpio-controller;
510*4882a593Smuzhiyun			#gpio-cells = <2>;
511*4882a593Smuzhiyun			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
512*4882a593Smuzhiyun			interrupt-controller;
513*4882a593Smuzhiyun			#interrupt-cells = <2>;
514*4882a593Smuzhiyun			gpio-ranges = <&iomuxc1 0 0 32>;
515*4882a593Smuzhiyun		};
516*4882a593Smuzhiyun
517*4882a593Smuzhiyun		gpio1: gpio@40af0000 {
518*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-gpio";
519*4882a593Smuzhiyun			reg = <0x40af0000 0x1000 0x400F0040 0x40>;
520*4882a593Smuzhiyun			gpio-controller;
521*4882a593Smuzhiyun			#gpio-cells = <2>;
522*4882a593Smuzhiyun			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
523*4882a593Smuzhiyun			interrupt-controller;
524*4882a593Smuzhiyun			#interrupt-cells = <2>;
525*4882a593Smuzhiyun			gpio-ranges = <&iomuxc1 0 32 32>;
526*4882a593Smuzhiyun		};
527*4882a593Smuzhiyun
528*4882a593Smuzhiyun		gpio2: gpio@40b00000 {
529*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-gpio";
530*4882a593Smuzhiyun			reg = <0x40b00000 0x1000 0x400F0080 0x40>;
531*4882a593Smuzhiyun			gpio-controller;
532*4882a593Smuzhiyun			#gpio-cells = <2>;
533*4882a593Smuzhiyun			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
534*4882a593Smuzhiyun			interrupt-controller;
535*4882a593Smuzhiyun			#interrupt-cells = <2>;
536*4882a593Smuzhiyun			gpio-ranges = <&iomuxc1 0 64 32>;
537*4882a593Smuzhiyun		};
538*4882a593Smuzhiyun
539*4882a593Smuzhiyun		gpio3: gpio@40b10000 {
540*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-gpio";
541*4882a593Smuzhiyun			reg = <0x40b10000 0x1000 0x400F00c0 0x40>;
542*4882a593Smuzhiyun			gpio-controller;
543*4882a593Smuzhiyun			#gpio-cells = <2>;
544*4882a593Smuzhiyun			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
545*4882a593Smuzhiyun			interrupt-controller;
546*4882a593Smuzhiyun			#interrupt-cells = <2>;
547*4882a593Smuzhiyun			gpio-ranges = <&iomuxc1 0 96 32>;
548*4882a593Smuzhiyun		};
549*4882a593Smuzhiyun
550*4882a593Smuzhiyun		pmc0: pmc0@410a1000 {
551*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-pmc0";
552*4882a593Smuzhiyun			reg = <0x410a1000 0x1000>;
553*4882a593Smuzhiyun		};
554*4882a593Smuzhiyun
555*4882a593Smuzhiyun		sim: sim@410a3000 {
556*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-sim", "syscon";
557*4882a593Smuzhiyun			reg = <0x410a3000 0x1000>;
558*4882a593Smuzhiyun		};
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun		qspi1: qspi@410A5000 {
561*4882a593Smuzhiyun			#address-cells = <1>;
562*4882a593Smuzhiyun			#size-cells = <0>;
563*4882a593Smuzhiyun			compatible = "fsl,imx7ulp-qspi";
564*4882a593Smuzhiyun			reg = <0x410A5000 0x10000>, <0xC0000000 0x10000000>;
565*4882a593Smuzhiyun			reg-names = "QuadSPI", "QuadSPI-memory";
566*4882a593Smuzhiyun			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
567*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_DUMMY>,
568*4882a593Smuzhiyun				 <&clks IMX7ULP_CLK_DUMMY>;
569*4882a593Smuzhiyun			clock-names = "qspi_en", "qspi";
570*4882a593Smuzhiyun			status = "disabled";
571*4882a593Smuzhiyun		};
572*4882a593Smuzhiyun
573*4882a593Smuzhiyun		gpu: gpu@41800000 {
574*4882a593Smuzhiyun			compatible = "fsl,imx6q-gpu";
575*4882a593Smuzhiyun			reg = <0x41800000 0x80000>, <0x41880000 0x80000>,
576*4882a593Smuzhiyun				<0x60000000 0x40000000>, <0x0 0x4000000>;
577*4882a593Smuzhiyun			reg-names = "iobase_3d", "iobase_2d",
578*4882a593Smuzhiyun				"phys_baseaddr", "contiguous_mem";
579*4882a593Smuzhiyun			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
580*4882a593Smuzhiyun				<GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
581*4882a593Smuzhiyun			interrupt-names = "irq_3d", "irq_2d";
582*4882a593Smuzhiyun			clocks = <&clks IMX7ULP_CLK_GPU3D>,
583*4882a593Smuzhiyun				<&clks IMX7ULP_CLK_NIC1_DIV>,
584*4882a593Smuzhiyun				<&clks IMX7ULP_CLK_GPU_DIV>,
585*4882a593Smuzhiyun				<&clks IMX7ULP_CLK_GPU2D>,
586*4882a593Smuzhiyun				<&clks IMX7ULP_CLK_NIC1_DIV>,
587*4882a593Smuzhiyun				<&clks IMX7ULP_CLK_NIC1_DIV>;
588*4882a593Smuzhiyun			clock-names = "gpu3d_clk", "gpu3d_shader_clk",
589*4882a593Smuzhiyun				"gpu3d_axi_clk", "gpu2d_clk",
590*4882a593Smuzhiyun				"gpu2d_shader_clk", "gpu2d_axi_clk";
591*4882a593Smuzhiyun		};
592*4882a593Smuzhiyun	};
593*4882a593Smuzhiyun
594*4882a593Smuzhiyun  imx_ion {
595*4882a593Smuzhiyun    compatible = "fsl,mxc-ion";
596*4882a593Smuzhiyun    fsl,heap-id = <0>;
597*4882a593Smuzhiyun  };
598*4882a593Smuzhiyun};
599