xref: /freebsd-src/sys/contrib/device-tree/src/arm/nxp/imx/imx7ulp.dtsi (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * Copyright (C) 2016 Freescale Semiconductor, Inc.
4*f126890aSEmmanuel Vadot * Copyright 2017-2018 NXP
5*f126890aSEmmanuel Vadot *   Dong Aisheng <aisheng.dong@nxp.com>
6*f126890aSEmmanuel Vadot */
7*f126890aSEmmanuel Vadot
8*f126890aSEmmanuel Vadot#include <dt-bindings/clock/imx7ulp-clock.h>
9*f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
10*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
11*f126890aSEmmanuel Vadot
12*f126890aSEmmanuel Vadot#include "imx7ulp-pinfunc.h"
13*f126890aSEmmanuel Vadot
14*f126890aSEmmanuel Vadot/ {
15*f126890aSEmmanuel Vadot	interrupt-parent = <&intc>;
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot	#address-cells = <1>;
18*f126890aSEmmanuel Vadot	#size-cells = <1>;
19*f126890aSEmmanuel Vadot
20*f126890aSEmmanuel Vadot	aliases {
21*f126890aSEmmanuel Vadot		gpio0 = &gpio_ptc;
22*f126890aSEmmanuel Vadot		gpio1 = &gpio_ptd;
23*f126890aSEmmanuel Vadot		gpio2 = &gpio_pte;
24*f126890aSEmmanuel Vadot		gpio3 = &gpio_ptf;
25*f126890aSEmmanuel Vadot		i2c0 = &lpi2c6;
26*f126890aSEmmanuel Vadot		i2c1 = &lpi2c7;
27*f126890aSEmmanuel Vadot		mmc0 = &usdhc0;
28*f126890aSEmmanuel Vadot		mmc1 = &usdhc1;
29*f126890aSEmmanuel Vadot		serial0 = &lpuart4;
30*f126890aSEmmanuel Vadot		serial1 = &lpuart5;
31*f126890aSEmmanuel Vadot		serial2 = &lpuart6;
32*f126890aSEmmanuel Vadot		serial3 = &lpuart7;
33*f126890aSEmmanuel Vadot		usbphy0 = &usbphy1;
34*f126890aSEmmanuel Vadot	};
35*f126890aSEmmanuel Vadot
36*f126890aSEmmanuel Vadot	cpus {
37*f126890aSEmmanuel Vadot		#address-cells = <1>;
38*f126890aSEmmanuel Vadot		#size-cells = <0>;
39*f126890aSEmmanuel Vadot
40*f126890aSEmmanuel Vadot		cpu0: cpu@f00 {
41*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
42*f126890aSEmmanuel Vadot			device_type = "cpu";
43*f126890aSEmmanuel Vadot			reg = <0xf00>;
44*f126890aSEmmanuel Vadot		};
45*f126890aSEmmanuel Vadot	};
46*f126890aSEmmanuel Vadot
47*f126890aSEmmanuel Vadot	intc: interrupt-controller@40021000 {
48*f126890aSEmmanuel Vadot		compatible = "arm,cortex-a7-gic";
49*f126890aSEmmanuel Vadot		#interrupt-cells = <3>;
50*f126890aSEmmanuel Vadot		interrupt-controller;
51*f126890aSEmmanuel Vadot		reg = <0x40021000 0x1000>,
52*f126890aSEmmanuel Vadot		      <0x40022000 0x1000>;
53*f126890aSEmmanuel Vadot	};
54*f126890aSEmmanuel Vadot
55*f126890aSEmmanuel Vadot	rosc: clock-rosc {
56*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
57*f126890aSEmmanuel Vadot		clock-frequency = <32768>;
58*f126890aSEmmanuel Vadot		clock-output-names = "rosc";
59*f126890aSEmmanuel Vadot		#clock-cells = <0>;
60*f126890aSEmmanuel Vadot	};
61*f126890aSEmmanuel Vadot
62*f126890aSEmmanuel Vadot	sosc: clock-sosc {
63*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
64*f126890aSEmmanuel Vadot		clock-frequency = <24000000>;
65*f126890aSEmmanuel Vadot		clock-output-names = "sosc";
66*f126890aSEmmanuel Vadot		#clock-cells = <0>;
67*f126890aSEmmanuel Vadot	};
68*f126890aSEmmanuel Vadot
69*f126890aSEmmanuel Vadot	sirc: clock-sirc {
70*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
71*f126890aSEmmanuel Vadot		clock-frequency = <16000000>;
72*f126890aSEmmanuel Vadot		clock-output-names = "sirc";
73*f126890aSEmmanuel Vadot		#clock-cells = <0>;
74*f126890aSEmmanuel Vadot	};
75*f126890aSEmmanuel Vadot
76*f126890aSEmmanuel Vadot	firc: clock-firc {
77*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
78*f126890aSEmmanuel Vadot		clock-frequency = <48000000>;
79*f126890aSEmmanuel Vadot		clock-output-names = "firc";
80*f126890aSEmmanuel Vadot		#clock-cells = <0>;
81*f126890aSEmmanuel Vadot	};
82*f126890aSEmmanuel Vadot
83*f126890aSEmmanuel Vadot	upll: clock-upll {
84*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
85*f126890aSEmmanuel Vadot		clock-frequency = <480000000>;
86*f126890aSEmmanuel Vadot		clock-output-names = "upll";
87*f126890aSEmmanuel Vadot		#clock-cells = <0>;
88*f126890aSEmmanuel Vadot	};
89*f126890aSEmmanuel Vadot
90*f126890aSEmmanuel Vadot	ahbbridge0: bus@40000000 {
91*f126890aSEmmanuel Vadot		compatible = "simple-bus";
92*f126890aSEmmanuel Vadot		#address-cells = <1>;
93*f126890aSEmmanuel Vadot		#size-cells = <1>;
94*f126890aSEmmanuel Vadot		reg = <0x40000000 0x800000>;
95*f126890aSEmmanuel Vadot		ranges;
96*f126890aSEmmanuel Vadot
97*f126890aSEmmanuel Vadot		edma1: dma-controller@40080000 {
98*f126890aSEmmanuel Vadot			#dma-cells = <2>;
99*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-edma";
100*f126890aSEmmanuel Vadot			reg = <0x40080000 0x2000>,
101*f126890aSEmmanuel Vadot				<0x40210000 0x1000>;
102*f126890aSEmmanuel Vadot			dma-channels = <32>;
103*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
104*f126890aSEmmanuel Vadot				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
105*f126890aSEmmanuel Vadot				     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
106*f126890aSEmmanuel Vadot				     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
107*f126890aSEmmanuel Vadot				     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
108*f126890aSEmmanuel Vadot				     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
109*f126890aSEmmanuel Vadot				     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
110*f126890aSEmmanuel Vadot				     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
111*f126890aSEmmanuel Vadot				     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
112*f126890aSEmmanuel Vadot				     <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
113*f126890aSEmmanuel Vadot				     <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
114*f126890aSEmmanuel Vadot				     <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
115*f126890aSEmmanuel Vadot				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
116*f126890aSEmmanuel Vadot				     <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
117*f126890aSEmmanuel Vadot				     <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
118*f126890aSEmmanuel Vadot				     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
119*f126890aSEmmanuel Vadot				     <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
120*f126890aSEmmanuel Vadot			clock-names = "dma", "dmamux0";
121*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_DMA1>,
122*f126890aSEmmanuel Vadot				 <&pcc2 IMX7ULP_CLK_DMA_MUX1>;
123*f126890aSEmmanuel Vadot		};
124*f126890aSEmmanuel Vadot
125*f126890aSEmmanuel Vadot		crypto: crypto@40240000 {
126*f126890aSEmmanuel Vadot			compatible = "fsl,sec-v4.0";
127*f126890aSEmmanuel Vadot			#address-cells = <1>;
128*f126890aSEmmanuel Vadot			#size-cells = <1>;
129*f126890aSEmmanuel Vadot			reg = <0x40240000 0x10000>;
130*f126890aSEmmanuel Vadot			ranges = <0 0x40240000 0x10000>;
131*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_CAAM>,
132*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>;
133*f126890aSEmmanuel Vadot			clock-names = "aclk", "ipg";
134*f126890aSEmmanuel Vadot
135*f126890aSEmmanuel Vadot			sec_jr0: jr@1000 {
136*f126890aSEmmanuel Vadot				compatible = "fsl,sec-v4.0-job-ring";
137*f126890aSEmmanuel Vadot				reg = <0x1000 0x1000>;
138*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
139*f126890aSEmmanuel Vadot			};
140*f126890aSEmmanuel Vadot
141*f126890aSEmmanuel Vadot			sec_jr1: jr@2000 {
142*f126890aSEmmanuel Vadot				compatible = "fsl,sec-v4.0-job-ring";
143*f126890aSEmmanuel Vadot				reg = <0x2000 0x1000>;
144*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
145*f126890aSEmmanuel Vadot			};
146*f126890aSEmmanuel Vadot		};
147*f126890aSEmmanuel Vadot
148*f126890aSEmmanuel Vadot		lpuart4: serial@402d0000 {
149*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-lpuart";
150*f126890aSEmmanuel Vadot			reg = <0x402d0000 0x1000>;
151*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
152*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_LPUART4>;
153*f126890aSEmmanuel Vadot			clock-names = "ipg";
154*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc2 IMX7ULP_CLK_LPUART4>;
155*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>;
156*f126890aSEmmanuel Vadot			assigned-clock-rates = <24000000>;
157*f126890aSEmmanuel Vadot			status = "disabled";
158*f126890aSEmmanuel Vadot		};
159*f126890aSEmmanuel Vadot
160*f126890aSEmmanuel Vadot		lpuart5: serial@402e0000 {
161*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-lpuart";
162*f126890aSEmmanuel Vadot			reg = <0x402e0000 0x1000>;
163*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
164*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_LPUART5>;
165*f126890aSEmmanuel Vadot			clock-names = "ipg";
166*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc2 IMX7ULP_CLK_LPUART5>;
167*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
168*f126890aSEmmanuel Vadot			assigned-clock-rates = <48000000>;
169*f126890aSEmmanuel Vadot			status = "disabled";
170*f126890aSEmmanuel Vadot		};
171*f126890aSEmmanuel Vadot
172*f126890aSEmmanuel Vadot		tpm4: pwm@40250000 {
173*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-pwm";
174*f126890aSEmmanuel Vadot			reg = <0x40250000 0x1000>;
175*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc2 IMX7ULP_CLK_LPTPM4>;
176*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>;
177*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_LPTPM4>;
178*f126890aSEmmanuel Vadot			#pwm-cells = <3>;
179*f126890aSEmmanuel Vadot			status = "disabled";
180*f126890aSEmmanuel Vadot		};
181*f126890aSEmmanuel Vadot
182*f126890aSEmmanuel Vadot		tpm5: tpm@40260000 {
183*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-tpm";
184*f126890aSEmmanuel Vadot			reg = <0x40260000 0x1000>;
185*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
186*f126890aSEmmanuel Vadot			clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
187*f126890aSEmmanuel Vadot				 <&pcc2 IMX7ULP_CLK_LPTPM5>;
188*f126890aSEmmanuel Vadot			clock-names = "ipg", "per";
189*f126890aSEmmanuel Vadot		};
190*f126890aSEmmanuel Vadot
191*f126890aSEmmanuel Vadot		usbotg1: usb@40330000 {
192*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-usb", "fsl,imx6ul-usb", "fsl,imx27-usb";
193*f126890aSEmmanuel Vadot			reg = <0x40330000 0x200>;
194*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
195*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_USB0>;
196*f126890aSEmmanuel Vadot			phys = <&usbphy1>;
197*f126890aSEmmanuel Vadot			fsl,usbmisc = <&usbmisc1 0>;
198*f126890aSEmmanuel Vadot			ahb-burst-config = <0x0>;
199*f126890aSEmmanuel Vadot			tx-burst-size-dword = <0x8>;
200*f126890aSEmmanuel Vadot			rx-burst-size-dword = <0x8>;
201*f126890aSEmmanuel Vadot			status = "disabled";
202*f126890aSEmmanuel Vadot		};
203*f126890aSEmmanuel Vadot
204*f126890aSEmmanuel Vadot		usbmisc1: usbmisc@40330200 {
205*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-usbmisc", "fsl,imx7d-usbmisc",
206*f126890aSEmmanuel Vadot				     "fsl,imx6q-usbmisc";
207*f126890aSEmmanuel Vadot			#index-cells = <1>;
208*f126890aSEmmanuel Vadot			reg = <0x40330200 0x200>;
209*f126890aSEmmanuel Vadot		};
210*f126890aSEmmanuel Vadot
211*f126890aSEmmanuel Vadot		usbphy1: usb-phy@40350000 {
212*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-usbphy", "fsl,imx6ul-usbphy";
213*f126890aSEmmanuel Vadot			reg = <0x40350000 0x1000>;
214*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
215*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_USB_PHY>;
216*f126890aSEmmanuel Vadot			#phy-cells = <0>;
217*f126890aSEmmanuel Vadot		};
218*f126890aSEmmanuel Vadot
219*f126890aSEmmanuel Vadot		usdhc0: mmc@40370000 {
220*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-usdhc", "fsl,imx6sx-usdhc";
221*f126890aSEmmanuel Vadot			reg = <0x40370000 0x10000>;
222*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
223*f126890aSEmmanuel Vadot			clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
224*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_NIC1_DIV>,
225*f126890aSEmmanuel Vadot				 <&pcc2 IMX7ULP_CLK_USDHC0>;
226*f126890aSEmmanuel Vadot			clock-names = "ipg", "ahb", "per";
227*f126890aSEmmanuel Vadot			bus-width = <4>;
228*f126890aSEmmanuel Vadot			fsl,tuning-start-tap = <20>;
229*f126890aSEmmanuel Vadot			fsl,tuning-step = <2>;
230*f126890aSEmmanuel Vadot			status = "disabled";
231*f126890aSEmmanuel Vadot		};
232*f126890aSEmmanuel Vadot
233*f126890aSEmmanuel Vadot		usdhc1: mmc@40380000 {
234*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-usdhc", "fsl,imx6sx-usdhc";
235*f126890aSEmmanuel Vadot			reg = <0x40380000 0x10000>;
236*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
237*f126890aSEmmanuel Vadot			clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
238*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_NIC1_DIV>,
239*f126890aSEmmanuel Vadot				 <&pcc2 IMX7ULP_CLK_USDHC1>;
240*f126890aSEmmanuel Vadot			clock-names = "ipg", "ahb", "per";
241*f126890aSEmmanuel Vadot			bus-width = <4>;
242*f126890aSEmmanuel Vadot			fsl,tuning-start-tap = <20>;
243*f126890aSEmmanuel Vadot			fsl,tuning-step = <2>;
244*f126890aSEmmanuel Vadot			status = "disabled";
245*f126890aSEmmanuel Vadot		};
246*f126890aSEmmanuel Vadot
247*f126890aSEmmanuel Vadot		scg1: clock-controller@403e0000 {
248*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-scg1";
249*f126890aSEmmanuel Vadot			reg = <0x403e0000 0x10000>;
250*f126890aSEmmanuel Vadot			clocks = <&rosc>, <&sosc>, <&sirc>,
251*f126890aSEmmanuel Vadot				 <&firc>, <&upll>;
252*f126890aSEmmanuel Vadot			clock-names = "rosc", "sosc", "sirc",
253*f126890aSEmmanuel Vadot				      "firc", "upll";
254*f126890aSEmmanuel Vadot			#clock-cells = <1>;
255*f126890aSEmmanuel Vadot		};
256*f126890aSEmmanuel Vadot
257*f126890aSEmmanuel Vadot		wdog1: watchdog@403d0000 {
258*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-wdt";
259*f126890aSEmmanuel Vadot			reg = <0x403d0000 0x10000>;
260*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
261*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_WDG1>;
262*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc2 IMX7ULP_CLK_WDG1>;
263*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>;
264*f126890aSEmmanuel Vadot			timeout-sec = <40>;
265*f126890aSEmmanuel Vadot		};
266*f126890aSEmmanuel Vadot
267*f126890aSEmmanuel Vadot		pcc2: clock-controller@403f0000 {
268*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-pcc2";
269*f126890aSEmmanuel Vadot			reg = <0x403f0000 0x10000>;
270*f126890aSEmmanuel Vadot			#clock-cells = <1>;
271*f126890aSEmmanuel Vadot			clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
272*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_NIC1_DIV>,
273*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_DDR_DIV>,
274*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_APLL_PFD2>,
275*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_APLL_PFD1>,
276*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_APLL_PFD0>,
277*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_UPLL>,
278*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>,
279*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>,
280*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_ROSC>,
281*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_SPLL_BUS_CLK>;
282*f126890aSEmmanuel Vadot			clock-names = "nic1_bus_clk", "nic1_clk", "ddr_clk",
283*f126890aSEmmanuel Vadot				      "apll_pfd2", "apll_pfd1", "apll_pfd0",
284*f126890aSEmmanuel Vadot				      "upll", "sosc_bus_clk",
285*f126890aSEmmanuel Vadot				      "firc_bus_clk", "rosc", "spll_bus_clk";
286*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc2 IMX7ULP_CLK_LPTPM5>;
287*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>;
288*f126890aSEmmanuel Vadot		};
289*f126890aSEmmanuel Vadot
290*f126890aSEmmanuel Vadot		smc1: clock-controller@40410000 {
291*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-smc1";
292*f126890aSEmmanuel Vadot			reg = <0x40410000 0x1000>;
293*f126890aSEmmanuel Vadot			#clock-cells = <1>;
294*f126890aSEmmanuel Vadot			clocks = <&scg1 IMX7ULP_CLK_CORE_DIV>,
295*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_HSRUN_CORE_DIV>;
296*f126890aSEmmanuel Vadot			clock-names = "divcore", "hsrun_divcore";
297*f126890aSEmmanuel Vadot		};
298*f126890aSEmmanuel Vadot
299*f126890aSEmmanuel Vadot		pcc3: clock-controller@40b30000 {
300*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-pcc3";
301*f126890aSEmmanuel Vadot			reg = <0x40b30000 0x10000>;
302*f126890aSEmmanuel Vadot			#clock-cells = <1>;
303*f126890aSEmmanuel Vadot			clocks = <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>,
304*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_NIC1_DIV>,
305*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_DDR_DIV>,
306*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_APLL_PFD2>,
307*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_APLL_PFD1>,
308*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_APLL_PFD0>,
309*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_UPLL>,
310*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>,
311*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_FIRC_BUS_CLK>,
312*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_ROSC>,
313*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_SPLL_BUS_CLK>;
314*f126890aSEmmanuel Vadot			clock-names = "nic1_bus_clk", "nic1_clk", "ddr_clk",
315*f126890aSEmmanuel Vadot				      "apll_pfd2", "apll_pfd1", "apll_pfd0",
316*f126890aSEmmanuel Vadot				      "upll", "sosc_bus_clk",
317*f126890aSEmmanuel Vadot				      "firc_bus_clk", "rosc", "spll_bus_clk";
318*f126890aSEmmanuel Vadot		};
319*f126890aSEmmanuel Vadot	};
320*f126890aSEmmanuel Vadot
321*f126890aSEmmanuel Vadot	ahbbridge1: bus@40800000 {
322*f126890aSEmmanuel Vadot		compatible = "simple-bus";
323*f126890aSEmmanuel Vadot		#address-cells = <1>;
324*f126890aSEmmanuel Vadot		#size-cells = <1>;
325*f126890aSEmmanuel Vadot		reg = <0x40800000 0x800000>;
326*f126890aSEmmanuel Vadot		ranges;
327*f126890aSEmmanuel Vadot
328*f126890aSEmmanuel Vadot		lpi2c6: i2c@40a40000 {
329*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-lpi2c";
330*f126890aSEmmanuel Vadot			reg = <0x40a40000 0x10000>;
331*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
332*f126890aSEmmanuel Vadot			clocks = <&pcc3 IMX7ULP_CLK_LPI2C6>,
333*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>;
334*f126890aSEmmanuel Vadot			clock-names = "per", "ipg";
335*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc3 IMX7ULP_CLK_LPI2C6>;
336*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
337*f126890aSEmmanuel Vadot			assigned-clock-rates = <48000000>;
338*f126890aSEmmanuel Vadot			status = "disabled";
339*f126890aSEmmanuel Vadot		};
340*f126890aSEmmanuel Vadot
341*f126890aSEmmanuel Vadot		lpi2c7: i2c@40a50000 {
342*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-lpi2c";
343*f126890aSEmmanuel Vadot			reg = <0x40a50000 0x10000>;
344*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
345*f126890aSEmmanuel Vadot			clocks = <&pcc3 IMX7ULP_CLK_LPI2C7>,
346*f126890aSEmmanuel Vadot				 <&scg1 IMX7ULP_CLK_NIC1_BUS_DIV>;
347*f126890aSEmmanuel Vadot			clock-names = "per", "ipg";
348*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc3 IMX7ULP_CLK_LPI2C7>;
349*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
350*f126890aSEmmanuel Vadot			assigned-clock-rates = <48000000>;
351*f126890aSEmmanuel Vadot			status = "disabled";
352*f126890aSEmmanuel Vadot		};
353*f126890aSEmmanuel Vadot
354*f126890aSEmmanuel Vadot		lpuart6: serial@40a60000 {
355*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-lpuart";
356*f126890aSEmmanuel Vadot			reg = <0x40a60000 0x1000>;
357*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
358*f126890aSEmmanuel Vadot			clocks = <&pcc3 IMX7ULP_CLK_LPUART6>;
359*f126890aSEmmanuel Vadot			clock-names = "ipg";
360*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc3 IMX7ULP_CLK_LPUART6>;
361*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
362*f126890aSEmmanuel Vadot			assigned-clock-rates = <48000000>;
363*f126890aSEmmanuel Vadot			status = "disabled";
364*f126890aSEmmanuel Vadot		};
365*f126890aSEmmanuel Vadot
366*f126890aSEmmanuel Vadot		lpuart7: serial@40a70000 {
367*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-lpuart";
368*f126890aSEmmanuel Vadot			reg = <0x40a70000 0x1000>;
369*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
370*f126890aSEmmanuel Vadot			clocks = <&pcc3  IMX7ULP_CLK_LPUART7>;
371*f126890aSEmmanuel Vadot			clock-names = "ipg";
372*f126890aSEmmanuel Vadot			assigned-clocks = <&pcc3 IMX7ULP_CLK_LPUART7>;
373*f126890aSEmmanuel Vadot			assigned-clock-parents = <&scg1 IMX7ULP_CLK_FIRC>;
374*f126890aSEmmanuel Vadot			assigned-clock-rates = <48000000>;
375*f126890aSEmmanuel Vadot			status = "disabled";
376*f126890aSEmmanuel Vadot		};
377*f126890aSEmmanuel Vadot
378*f126890aSEmmanuel Vadot		memory-controller@40ab0000 {
379*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-mmdc", "fsl,imx6q-mmdc";
380*f126890aSEmmanuel Vadot			reg = <0x40ab0000 0x1000>;
381*f126890aSEmmanuel Vadot			clocks = <&pcc3 IMX7ULP_CLK_MMDC>;
382*f126890aSEmmanuel Vadot		};
383*f126890aSEmmanuel Vadot
384*f126890aSEmmanuel Vadot		iomuxc1: pinctrl@40ac0000 {
385*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-iomuxc1";
386*f126890aSEmmanuel Vadot			reg = <0x40ac0000 0x1000>;
387*f126890aSEmmanuel Vadot		};
388*f126890aSEmmanuel Vadot
389*f126890aSEmmanuel Vadot		gpio_ptc: gpio@40ae0000 {
390*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-gpio", "fsl,vf610-gpio";
391*f126890aSEmmanuel Vadot			reg = <0x40ae0000 0x1000 0x400f0000 0x40>;
392*f126890aSEmmanuel Vadot			gpio-controller;
393*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
394*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
395*f126890aSEmmanuel Vadot			interrupt-controller;
396*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
397*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
398*f126890aSEmmanuel Vadot				 <&pcc3 IMX7ULP_CLK_PCTLC>;
399*f126890aSEmmanuel Vadot			clock-names = "gpio", "port";
400*f126890aSEmmanuel Vadot			gpio-ranges = <&iomuxc1 0 0 20>;
401*f126890aSEmmanuel Vadot		};
402*f126890aSEmmanuel Vadot
403*f126890aSEmmanuel Vadot		gpio_ptd: gpio@40af0000 {
404*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-gpio", "fsl,vf610-gpio";
405*f126890aSEmmanuel Vadot			reg = <0x40af0000 0x1000 0x400f0040 0x40>;
406*f126890aSEmmanuel Vadot			gpio-controller;
407*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
408*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
409*f126890aSEmmanuel Vadot			interrupt-controller;
410*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
411*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
412*f126890aSEmmanuel Vadot				 <&pcc3 IMX7ULP_CLK_PCTLD>;
413*f126890aSEmmanuel Vadot			clock-names = "gpio", "port";
414*f126890aSEmmanuel Vadot			gpio-ranges = <&iomuxc1 0 32 12>;
415*f126890aSEmmanuel Vadot		};
416*f126890aSEmmanuel Vadot
417*f126890aSEmmanuel Vadot		gpio_pte: gpio@40b00000 {
418*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-gpio", "fsl,vf610-gpio";
419*f126890aSEmmanuel Vadot			reg = <0x40b00000 0x1000 0x400f0080 0x40>;
420*f126890aSEmmanuel Vadot			gpio-controller;
421*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
422*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
423*f126890aSEmmanuel Vadot			interrupt-controller;
424*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
425*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
426*f126890aSEmmanuel Vadot				 <&pcc3 IMX7ULP_CLK_PCTLE>;
427*f126890aSEmmanuel Vadot			clock-names = "gpio", "port";
428*f126890aSEmmanuel Vadot			gpio-ranges = <&iomuxc1 0 64 16>;
429*f126890aSEmmanuel Vadot		};
430*f126890aSEmmanuel Vadot
431*f126890aSEmmanuel Vadot		gpio_ptf: gpio@40b10000 {
432*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-gpio", "fsl,vf610-gpio";
433*f126890aSEmmanuel Vadot			reg = <0x40b10000 0x1000 0x400f00c0 0x40>;
434*f126890aSEmmanuel Vadot			gpio-controller;
435*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
436*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
437*f126890aSEmmanuel Vadot			interrupt-controller;
438*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
439*f126890aSEmmanuel Vadot			clocks = <&pcc2 IMX7ULP_CLK_RGPIO2P1>,
440*f126890aSEmmanuel Vadot				 <&pcc3 IMX7ULP_CLK_PCTLF>;
441*f126890aSEmmanuel Vadot			clock-names = "gpio", "port";
442*f126890aSEmmanuel Vadot			gpio-ranges = <&iomuxc1 0 96 20>;
443*f126890aSEmmanuel Vadot		};
444*f126890aSEmmanuel Vadot	};
445*f126890aSEmmanuel Vadot
446*f126890aSEmmanuel Vadot	m4aips1: bus@41080000 {
447*f126890aSEmmanuel Vadot		compatible = "simple-bus";
448*f126890aSEmmanuel Vadot		#address-cells = <1>;
449*f126890aSEmmanuel Vadot		#size-cells = <1>;
450*f126890aSEmmanuel Vadot		reg = <0x41080000 0x80000>;
451*f126890aSEmmanuel Vadot		ranges;
452*f126890aSEmmanuel Vadot
453*f126890aSEmmanuel Vadot		sim: sim@410a3000 {
454*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-sim", "syscon";
455*f126890aSEmmanuel Vadot			reg = <0x410a3000 0x1000>;
456*f126890aSEmmanuel Vadot		};
457*f126890aSEmmanuel Vadot
458*f126890aSEmmanuel Vadot		ocotp: efuse@410a6000 {
459*f126890aSEmmanuel Vadot			compatible = "fsl,imx7ulp-ocotp", "syscon";
460*f126890aSEmmanuel Vadot			reg = <0x410a6000 0x4000>;
461*f126890aSEmmanuel Vadot			clocks = <&scg1 IMX7ULP_CLK_DUMMY>;
462*f126890aSEmmanuel Vadot			#address-cells = <1>;
463*f126890aSEmmanuel Vadot			#size-cells = <1>;
464*f126890aSEmmanuel Vadot		};
465*f126890aSEmmanuel Vadot	};
466*f126890aSEmmanuel Vadot};
467