1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright 2019 NXP
4c66ec88fSEmmanuel Vadot */
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/imx8mm-clock.h>
7c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
8c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h>
9c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
108cc087a1SEmmanuel Vadot#include <dt-bindings/power/imx8mm-power.h>
118cc087a1SEmmanuel Vadot#include <dt-bindings/reset/imx8mq-reset.h>
12c66ec88fSEmmanuel Vadot#include <dt-bindings/thermal/thermal.h>
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot#include "imx8mm-pinfunc.h"
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadot/ {
17c66ec88fSEmmanuel Vadot	interrupt-parent = <&gic>;
18c66ec88fSEmmanuel Vadot	#address-cells = <2>;
19c66ec88fSEmmanuel Vadot	#size-cells = <2>;
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot	aliases {
22c66ec88fSEmmanuel Vadot		ethernet0 = &fec1;
23c66ec88fSEmmanuel Vadot		gpio0 = &gpio1;
24c66ec88fSEmmanuel Vadot		gpio1 = &gpio2;
25c66ec88fSEmmanuel Vadot		gpio2 = &gpio3;
26c66ec88fSEmmanuel Vadot		gpio3 = &gpio4;
27c66ec88fSEmmanuel Vadot		gpio4 = &gpio5;
28c66ec88fSEmmanuel Vadot		i2c0 = &i2c1;
29c66ec88fSEmmanuel Vadot		i2c1 = &i2c2;
30c66ec88fSEmmanuel Vadot		i2c2 = &i2c3;
31c66ec88fSEmmanuel Vadot		i2c3 = &i2c4;
32c66ec88fSEmmanuel Vadot		mmc0 = &usdhc1;
33c66ec88fSEmmanuel Vadot		mmc1 = &usdhc2;
34c66ec88fSEmmanuel Vadot		mmc2 = &usdhc3;
35c66ec88fSEmmanuel Vadot		serial0 = &uart1;
36c66ec88fSEmmanuel Vadot		serial1 = &uart2;
37c66ec88fSEmmanuel Vadot		serial2 = &uart3;
38c66ec88fSEmmanuel Vadot		serial3 = &uart4;
39c66ec88fSEmmanuel Vadot		spi0 = &ecspi1;
40c66ec88fSEmmanuel Vadot		spi1 = &ecspi2;
41c66ec88fSEmmanuel Vadot		spi2 = &ecspi3;
42c66ec88fSEmmanuel Vadot	};
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot	cpus {
45c66ec88fSEmmanuel Vadot		#address-cells = <1>;
46c66ec88fSEmmanuel Vadot		#size-cells = <0>;
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadot		idle-states {
49c66ec88fSEmmanuel Vadot			entry-method = "psci";
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadot			cpu_pd_wait: cpu-pd-wait {
52c66ec88fSEmmanuel Vadot				compatible = "arm,idle-state";
53c66ec88fSEmmanuel Vadot				arm,psci-suspend-param = <0x0010033>;
54c66ec88fSEmmanuel Vadot				local-timer-stop;
55c66ec88fSEmmanuel Vadot				entry-latency-us = <1000>;
56c66ec88fSEmmanuel Vadot				exit-latency-us = <700>;
57c66ec88fSEmmanuel Vadot				min-residency-us = <2700>;
58c66ec88fSEmmanuel Vadot			};
59c66ec88fSEmmanuel Vadot		};
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot		A53_0: cpu@0 {
62c66ec88fSEmmanuel Vadot			device_type = "cpu";
63c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
64c66ec88fSEmmanuel Vadot			reg = <0x0>;
65c66ec88fSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
66c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_ARM>;
67c66ec88fSEmmanuel Vadot			enable-method = "psci";
68e67e8565SEmmanuel Vadot			i-cache-size = <0x8000>;
69e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
70e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
71e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
72e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
73e67e8565SEmmanuel Vadot			d-cache-sets = <128>;
74c66ec88fSEmmanuel Vadot			next-level-cache = <&A53_L2>;
75c66ec88fSEmmanuel Vadot			operating-points-v2 = <&a53_opp_table>;
76c66ec88fSEmmanuel Vadot			nvmem-cells = <&cpu_speed_grade>;
77c66ec88fSEmmanuel Vadot			nvmem-cell-names = "speed_grade";
78c66ec88fSEmmanuel Vadot			cpu-idle-states = <&cpu_pd_wait>;
79c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
80c66ec88fSEmmanuel Vadot		};
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot		A53_1: cpu@1 {
83c66ec88fSEmmanuel Vadot			device_type = "cpu";
84c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
85c66ec88fSEmmanuel Vadot			reg = <0x1>;
86c66ec88fSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
87c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_ARM>;
88c66ec88fSEmmanuel Vadot			enable-method = "psci";
89e67e8565SEmmanuel Vadot			i-cache-size = <0x8000>;
90e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
91e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
92e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
93e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
94e67e8565SEmmanuel Vadot			d-cache-sets = <128>;
95c66ec88fSEmmanuel Vadot			next-level-cache = <&A53_L2>;
96c66ec88fSEmmanuel Vadot			operating-points-v2 = <&a53_opp_table>;
97c66ec88fSEmmanuel Vadot			cpu-idle-states = <&cpu_pd_wait>;
98c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
99c66ec88fSEmmanuel Vadot		};
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot		A53_2: cpu@2 {
102c66ec88fSEmmanuel Vadot			device_type = "cpu";
103c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
104c66ec88fSEmmanuel Vadot			reg = <0x2>;
105c66ec88fSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
106c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_ARM>;
107c66ec88fSEmmanuel Vadot			enable-method = "psci";
108e67e8565SEmmanuel Vadot			i-cache-size = <0x8000>;
109e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
110e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
111e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
112e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
113e67e8565SEmmanuel Vadot			d-cache-sets = <128>;
114c66ec88fSEmmanuel Vadot			next-level-cache = <&A53_L2>;
115c66ec88fSEmmanuel Vadot			operating-points-v2 = <&a53_opp_table>;
116c66ec88fSEmmanuel Vadot			cpu-idle-states = <&cpu_pd_wait>;
117c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
118c66ec88fSEmmanuel Vadot		};
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel Vadot		A53_3: cpu@3 {
121c66ec88fSEmmanuel Vadot			device_type = "cpu";
122c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
123c66ec88fSEmmanuel Vadot			reg = <0x3>;
124c66ec88fSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
125c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_ARM>;
126c66ec88fSEmmanuel Vadot			enable-method = "psci";
127e67e8565SEmmanuel Vadot			i-cache-size = <0x8000>;
128e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
129e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
130e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
131e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
132e67e8565SEmmanuel Vadot			d-cache-sets = <128>;
133c66ec88fSEmmanuel Vadot			next-level-cache = <&A53_L2>;
134c66ec88fSEmmanuel Vadot			operating-points-v2 = <&a53_opp_table>;
135c66ec88fSEmmanuel Vadot			cpu-idle-states = <&cpu_pd_wait>;
136c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
137c66ec88fSEmmanuel Vadot		};
138c66ec88fSEmmanuel Vadot
139c66ec88fSEmmanuel Vadot		A53_L2: l2-cache0 {
140c66ec88fSEmmanuel Vadot			compatible = "cache";
141e67e8565SEmmanuel Vadot			cache-level = <2>;
1428bab661aSEmmanuel Vadot			cache-unified;
143e67e8565SEmmanuel Vadot			cache-size = <0x80000>;
144e67e8565SEmmanuel Vadot			cache-line-size = <64>;
145e67e8565SEmmanuel Vadot			cache-sets = <512>;
146c66ec88fSEmmanuel Vadot		};
147c66ec88fSEmmanuel Vadot	};
148c66ec88fSEmmanuel Vadot
149c66ec88fSEmmanuel Vadot	a53_opp_table: opp-table {
150c66ec88fSEmmanuel Vadot		compatible = "operating-points-v2";
151c66ec88fSEmmanuel Vadot		opp-shared;
152c66ec88fSEmmanuel Vadot
153c66ec88fSEmmanuel Vadot		opp-1200000000 {
154c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <1200000000>;
155c66ec88fSEmmanuel Vadot			opp-microvolt = <850000>;
156c66ec88fSEmmanuel Vadot			opp-supported-hw = <0xe>, <0x7>;
157c66ec88fSEmmanuel Vadot			clock-latency-ns = <150000>;
158c66ec88fSEmmanuel Vadot			opp-suspend;
159c66ec88fSEmmanuel Vadot		};
160c66ec88fSEmmanuel Vadot
161c66ec88fSEmmanuel Vadot		opp-1600000000 {
162c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <1600000000>;
1636be33864SEmmanuel Vadot			opp-microvolt = <950000>;
164c66ec88fSEmmanuel Vadot			opp-supported-hw = <0xc>, <0x7>;
165c66ec88fSEmmanuel Vadot			clock-latency-ns = <150000>;
166c66ec88fSEmmanuel Vadot			opp-suspend;
167c66ec88fSEmmanuel Vadot		};
168c66ec88fSEmmanuel Vadot
169c66ec88fSEmmanuel Vadot		opp-1800000000 {
170c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <1800000000>;
171c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
172c66ec88fSEmmanuel Vadot			opp-supported-hw = <0x8>, <0x3>;
173c66ec88fSEmmanuel Vadot			clock-latency-ns = <150000>;
174c66ec88fSEmmanuel Vadot			opp-suspend;
175c66ec88fSEmmanuel Vadot		};
176c66ec88fSEmmanuel Vadot	};
177c66ec88fSEmmanuel Vadot
178c66ec88fSEmmanuel Vadot	osc_32k: clock-osc-32k {
179c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
180c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
181c66ec88fSEmmanuel Vadot		clock-frequency = <32768>;
182c66ec88fSEmmanuel Vadot		clock-output-names = "osc_32k";
183c66ec88fSEmmanuel Vadot	};
184c66ec88fSEmmanuel Vadot
185c66ec88fSEmmanuel Vadot	osc_24m: clock-osc-24m {
186c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
187c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
188c66ec88fSEmmanuel Vadot		clock-frequency = <24000000>;
189c66ec88fSEmmanuel Vadot		clock-output-names = "osc_24m";
190c66ec88fSEmmanuel Vadot	};
191c66ec88fSEmmanuel Vadot
192c66ec88fSEmmanuel Vadot	clk_ext1: clock-ext1 {
193c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
194c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
195c66ec88fSEmmanuel Vadot		clock-frequency = <133000000>;
196c66ec88fSEmmanuel Vadot		clock-output-names = "clk_ext1";
197c66ec88fSEmmanuel Vadot	};
198c66ec88fSEmmanuel Vadot
199c66ec88fSEmmanuel Vadot	clk_ext2: clock-ext2 {
200c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
201c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
202c66ec88fSEmmanuel Vadot		clock-frequency = <133000000>;
203c66ec88fSEmmanuel Vadot		clock-output-names = "clk_ext2";
204c66ec88fSEmmanuel Vadot	};
205c66ec88fSEmmanuel Vadot
206c66ec88fSEmmanuel Vadot	clk_ext3: clock-ext3 {
207c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
208c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
209c66ec88fSEmmanuel Vadot		clock-frequency = <133000000>;
210c66ec88fSEmmanuel Vadot		clock-output-names = "clk_ext3";
211c66ec88fSEmmanuel Vadot	};
212c66ec88fSEmmanuel Vadot
213c66ec88fSEmmanuel Vadot	clk_ext4: clock-ext4 {
214c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
215c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
216c66ec88fSEmmanuel Vadot		clock-frequency = <133000000>;
217c66ec88fSEmmanuel Vadot		clock-output-names = "clk_ext4";
218c66ec88fSEmmanuel Vadot	};
219c66ec88fSEmmanuel Vadot
220c66ec88fSEmmanuel Vadot	psci {
221c66ec88fSEmmanuel Vadot		compatible = "arm,psci-1.0";
222c66ec88fSEmmanuel Vadot		method = "smc";
223c66ec88fSEmmanuel Vadot	};
224c66ec88fSEmmanuel Vadot
225c66ec88fSEmmanuel Vadot	pmu {
226354d7675SEmmanuel Vadot		compatible = "arm,cortex-a53-pmu";
227c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 7
2285def4c47SEmmanuel Vadot			     (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
229c66ec88fSEmmanuel Vadot	};
230c66ec88fSEmmanuel Vadot
231c66ec88fSEmmanuel Vadot	timer {
232c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-timer";
2335def4c47SEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Secure */
2345def4c47SEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Physical Non-Secure */
2355def4c47SEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, /* Virtual */
2365def4c47SEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; /* Hypervisor */
237c66ec88fSEmmanuel Vadot		clock-frequency = <8000000>;
238c66ec88fSEmmanuel Vadot		arm,no-tick-in-suspend;
239c66ec88fSEmmanuel Vadot	};
240c66ec88fSEmmanuel Vadot
241c66ec88fSEmmanuel Vadot	thermal-zones {
242c66ec88fSEmmanuel Vadot		cpu-thermal {
243c66ec88fSEmmanuel Vadot			polling-delay-passive = <250>;
244c66ec88fSEmmanuel Vadot			polling-delay = <2000>;
245c66ec88fSEmmanuel Vadot			thermal-sensors = <&tmu>;
246c66ec88fSEmmanuel Vadot			trips {
247c66ec88fSEmmanuel Vadot				cpu_alert0: trip0 {
248c66ec88fSEmmanuel Vadot					temperature = <85000>;
249c66ec88fSEmmanuel Vadot					hysteresis = <2000>;
250c66ec88fSEmmanuel Vadot					type = "passive";
251c66ec88fSEmmanuel Vadot				};
252c66ec88fSEmmanuel Vadot
253c66ec88fSEmmanuel Vadot				cpu_crit0: trip1 {
254c66ec88fSEmmanuel Vadot					temperature = <95000>;
255c66ec88fSEmmanuel Vadot					hysteresis = <2000>;
256c66ec88fSEmmanuel Vadot					type = "critical";
257c66ec88fSEmmanuel Vadot				};
258c66ec88fSEmmanuel Vadot			};
259c66ec88fSEmmanuel Vadot
260c66ec88fSEmmanuel Vadot			cooling-maps {
261c66ec88fSEmmanuel Vadot				map0 {
262c66ec88fSEmmanuel Vadot					trip = <&cpu_alert0>;
263c66ec88fSEmmanuel Vadot					cooling-device =
264c66ec88fSEmmanuel Vadot						<&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
265c66ec88fSEmmanuel Vadot						<&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
266c66ec88fSEmmanuel Vadot						<&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
267c66ec88fSEmmanuel Vadot						<&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
268c66ec88fSEmmanuel Vadot				};
269c66ec88fSEmmanuel Vadot			};
270c66ec88fSEmmanuel Vadot		};
271c66ec88fSEmmanuel Vadot	};
272c66ec88fSEmmanuel Vadot
273c66ec88fSEmmanuel Vadot	usbphynop1: usbphynop1 {
274354d7675SEmmanuel Vadot		#phy-cells = <0>;
275c66ec88fSEmmanuel Vadot		compatible = "usb-nop-xceiv";
276c66ec88fSEmmanuel Vadot		clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
277c66ec88fSEmmanuel Vadot		assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
278c66ec88fSEmmanuel Vadot		assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>;
279c66ec88fSEmmanuel Vadot		clock-names = "main_clk";
2807ef62cebSEmmanuel Vadot		power-domains = <&pgc_otg1>;
281c66ec88fSEmmanuel Vadot	};
282c66ec88fSEmmanuel Vadot
283c66ec88fSEmmanuel Vadot	usbphynop2: usbphynop2 {
284354d7675SEmmanuel Vadot		#phy-cells = <0>;
285c66ec88fSEmmanuel Vadot		compatible = "usb-nop-xceiv";
286c66ec88fSEmmanuel Vadot		clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
287c66ec88fSEmmanuel Vadot		assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>;
288c66ec88fSEmmanuel Vadot		assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>;
289c66ec88fSEmmanuel Vadot		clock-names = "main_clk";
2907ef62cebSEmmanuel Vadot		power-domains = <&pgc_otg2>;
291c66ec88fSEmmanuel Vadot	};
292c66ec88fSEmmanuel Vadot
293b97ee269SEmmanuel Vadot	soc: soc@0 {
2945def4c47SEmmanuel Vadot		compatible = "fsl,imx8mm-soc", "simple-bus";
295c66ec88fSEmmanuel Vadot		#address-cells = <1>;
296c66ec88fSEmmanuel Vadot		#size-cells = <1>;
297c66ec88fSEmmanuel Vadot		ranges = <0x0 0x0 0x0 0x3e000000>;
2985956d97fSEmmanuel Vadot		dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
2995def4c47SEmmanuel Vadot		nvmem-cells = <&imx8mm_uid>;
3005def4c47SEmmanuel Vadot		nvmem-cell-names = "soc_unique_id";
301c66ec88fSEmmanuel Vadot
302c66ec88fSEmmanuel Vadot		aips1: bus@30000000 {
303c66ec88fSEmmanuel Vadot			compatible = "fsl,aips-bus", "simple-bus";
304c66ec88fSEmmanuel Vadot			reg = <0x30000000 0x400000>;
305c66ec88fSEmmanuel Vadot			#address-cells = <1>;
306c66ec88fSEmmanuel Vadot			#size-cells = <1>;
307c66ec88fSEmmanuel Vadot			ranges = <0x30000000 0x30000000 0x400000>;
308c66ec88fSEmmanuel Vadot
3095956d97fSEmmanuel Vadot			spba2: spba-bus@30000000 {
3105956d97fSEmmanuel Vadot				compatible = "fsl,spba-bus", "simple-bus";
3115956d97fSEmmanuel Vadot				#address-cells = <1>;
3125956d97fSEmmanuel Vadot				#size-cells = <1>;
3135956d97fSEmmanuel Vadot				reg = <0x30000000 0x100000>;
3145956d97fSEmmanuel Vadot				ranges;
3155956d97fSEmmanuel Vadot
316c66ec88fSEmmanuel Vadot				sai1: sai@30010000 {
317c66ec88fSEmmanuel Vadot					#sound-dai-cells = <0>;
318c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
319c66ec88fSEmmanuel Vadot					reg = <0x30010000 0x10000>;
320c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
321c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_SAI1_IPG>,
322c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_SAI1_ROOT>,
323c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
324c66ec88fSEmmanuel Vadot					clock-names = "bus", "mclk1", "mclk2", "mclk3";
325c66ec88fSEmmanuel Vadot					dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
326c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
327c66ec88fSEmmanuel Vadot					status = "disabled";
328c66ec88fSEmmanuel Vadot				};
329c66ec88fSEmmanuel Vadot
330c66ec88fSEmmanuel Vadot				sai2: sai@30020000 {
331c66ec88fSEmmanuel Vadot					#sound-dai-cells = <0>;
332c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
333c66ec88fSEmmanuel Vadot					reg = <0x30020000 0x10000>;
334c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
335c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_SAI2_IPG>,
336c66ec88fSEmmanuel Vadot						<&clk IMX8MM_CLK_SAI2_ROOT>,
337c66ec88fSEmmanuel Vadot						<&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
338c66ec88fSEmmanuel Vadot					clock-names = "bus", "mclk1", "mclk2", "mclk3";
339c66ec88fSEmmanuel Vadot					dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
340c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
341c66ec88fSEmmanuel Vadot					status = "disabled";
342c66ec88fSEmmanuel Vadot				};
343c66ec88fSEmmanuel Vadot
344c66ec88fSEmmanuel Vadot				sai3: sai@30030000 {
345c66ec88fSEmmanuel Vadot					#sound-dai-cells = <0>;
346c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
347c66ec88fSEmmanuel Vadot					reg = <0x30030000 0x10000>;
348c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
349c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_SAI3_IPG>,
350c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_SAI3_ROOT>,
351c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
352c66ec88fSEmmanuel Vadot					clock-names = "bus", "mclk1", "mclk2", "mclk3";
353c66ec88fSEmmanuel Vadot					dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
354c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
355c66ec88fSEmmanuel Vadot					status = "disabled";
356c66ec88fSEmmanuel Vadot				};
357c66ec88fSEmmanuel Vadot
358c66ec88fSEmmanuel Vadot				sai5: sai@30050000 {
359c66ec88fSEmmanuel Vadot					#sound-dai-cells = <0>;
360c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
361c66ec88fSEmmanuel Vadot					reg = <0x30050000 0x10000>;
362c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
363c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_SAI5_IPG>,
364c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_SAI5_ROOT>,
365c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
366c66ec88fSEmmanuel Vadot					clock-names = "bus", "mclk1", "mclk2", "mclk3";
367c66ec88fSEmmanuel Vadot					dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
368c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
369c66ec88fSEmmanuel Vadot					status = "disabled";
370c66ec88fSEmmanuel Vadot				};
371c66ec88fSEmmanuel Vadot
372c66ec88fSEmmanuel Vadot				sai6: sai@30060000 {
373c66ec88fSEmmanuel Vadot					#sound-dai-cells = <0>;
374c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
375c66ec88fSEmmanuel Vadot					reg = <0x30060000 0x10000>;
376c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
377c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_SAI6_IPG>,
378c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_SAI6_ROOT>,
379c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
380c66ec88fSEmmanuel Vadot					clock-names = "bus", "mclk1", "mclk2", "mclk3";
381c66ec88fSEmmanuel Vadot					dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
382c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
383c66ec88fSEmmanuel Vadot					status = "disabled";
384c66ec88fSEmmanuel Vadot				};
385c66ec88fSEmmanuel Vadot
3865def4c47SEmmanuel Vadot				micfil: audio-controller@30080000 {
3875def4c47SEmmanuel Vadot					compatible = "fsl,imx8mm-micfil";
3885def4c47SEmmanuel Vadot					reg = <0x30080000 0x10000>;
3895def4c47SEmmanuel Vadot					interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
3905def4c47SEmmanuel Vadot						     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
3915def4c47SEmmanuel Vadot						     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
3925def4c47SEmmanuel Vadot						     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
3935def4c47SEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_PDM_IPG>,
3945def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_PDM_ROOT>,
3955def4c47SEmmanuel Vadot						 <&clk IMX8MM_AUDIO_PLL1_OUT>,
3965def4c47SEmmanuel Vadot						 <&clk IMX8MM_AUDIO_PLL2_OUT>,
3975def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_EXT3>;
3985def4c47SEmmanuel Vadot					clock-names = "ipg_clk", "ipg_clk_app",
3995def4c47SEmmanuel Vadot						      "pll8k", "pll11k", "clkext3";
4005def4c47SEmmanuel Vadot					dmas = <&sdma2 24 25 0x80000000>;
4015def4c47SEmmanuel Vadot					dma-names = "rx";
40284943d6fSEmmanuel Vadot					#sound-dai-cells = <0>;
4035def4c47SEmmanuel Vadot					status = "disabled";
4045def4c47SEmmanuel Vadot				};
4055def4c47SEmmanuel Vadot
4065def4c47SEmmanuel Vadot				spdif1: spdif@30090000 {
4075def4c47SEmmanuel Vadot					compatible = "fsl,imx35-spdif";
4085def4c47SEmmanuel Vadot					reg = <0x30090000 0x10000>;
4095def4c47SEmmanuel Vadot					interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
4105def4c47SEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_AUDIO_AHB>, /* core */
4115def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_24M>, /* rxtx0 */
4125def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_SPDIF1>, /* rxtx1 */
4135def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx2 */
4145def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx3 */
4155def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx4 */
4165def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_AUDIO_AHB>, /* rxtx5 */
4175def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx6 */
4185def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>, /* rxtx7 */
4195def4c47SEmmanuel Vadot						 <&clk IMX8MM_CLK_DUMMY>; /* spba */
4205def4c47SEmmanuel Vadot					clock-names = "core", "rxtx0",
4215def4c47SEmmanuel Vadot						      "rxtx1", "rxtx2",
4225def4c47SEmmanuel Vadot						      "rxtx3", "rxtx4",
4235def4c47SEmmanuel Vadot						      "rxtx5", "rxtx6",
4245def4c47SEmmanuel Vadot						      "rxtx7", "spba";
4255def4c47SEmmanuel Vadot					dmas = <&sdma2 28 18 0>, <&sdma2 29 18 0>;
4265def4c47SEmmanuel Vadot					dma-names = "rx", "tx";
4275def4c47SEmmanuel Vadot					status = "disabled";
4285def4c47SEmmanuel Vadot				};
4295956d97fSEmmanuel Vadot			};
4305def4c47SEmmanuel Vadot
431c66ec88fSEmmanuel Vadot			gpio1: gpio@30200000 {
432c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
433c66ec88fSEmmanuel Vadot				reg = <0x30200000 0x10000>;
434c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
435c66ec88fSEmmanuel Vadot					     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
436c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_GPIO1_ROOT>;
437c66ec88fSEmmanuel Vadot				gpio-controller;
438c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
439c66ec88fSEmmanuel Vadot				interrupt-controller;
440c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
441c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 10 30>;
442c66ec88fSEmmanuel Vadot			};
443c66ec88fSEmmanuel Vadot
444c66ec88fSEmmanuel Vadot			gpio2: gpio@30210000 {
445c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
446c66ec88fSEmmanuel Vadot				reg = <0x30210000 0x10000>;
447c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
448c66ec88fSEmmanuel Vadot					     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
449c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_GPIO2_ROOT>;
450c66ec88fSEmmanuel Vadot				gpio-controller;
451c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
452c66ec88fSEmmanuel Vadot				interrupt-controller;
453c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
454c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 40 21>;
455c66ec88fSEmmanuel Vadot			};
456c66ec88fSEmmanuel Vadot
457c66ec88fSEmmanuel Vadot			gpio3: gpio@30220000 {
458c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
459c66ec88fSEmmanuel Vadot				reg = <0x30220000 0x10000>;
460c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
461c66ec88fSEmmanuel Vadot					     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
462c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_GPIO3_ROOT>;
463c66ec88fSEmmanuel Vadot				gpio-controller;
464c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
465c66ec88fSEmmanuel Vadot				interrupt-controller;
466c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
467c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 61 26>;
468c66ec88fSEmmanuel Vadot			};
469c66ec88fSEmmanuel Vadot
470c66ec88fSEmmanuel Vadot			gpio4: gpio@30230000 {
471c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
472c66ec88fSEmmanuel Vadot				reg = <0x30230000 0x10000>;
473c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
474c66ec88fSEmmanuel Vadot					     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
475c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_GPIO4_ROOT>;
476c66ec88fSEmmanuel Vadot				gpio-controller;
477c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
478c66ec88fSEmmanuel Vadot				interrupt-controller;
479c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
480c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 87 32>;
481c66ec88fSEmmanuel Vadot			};
482c66ec88fSEmmanuel Vadot
483c66ec88fSEmmanuel Vadot			gpio5: gpio@30240000 {
484c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-gpio", "fsl,imx35-gpio";
485c66ec88fSEmmanuel Vadot				reg = <0x30240000 0x10000>;
486c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
487c66ec88fSEmmanuel Vadot					     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
488c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_GPIO5_ROOT>;
489c66ec88fSEmmanuel Vadot				gpio-controller;
490c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
491c66ec88fSEmmanuel Vadot				interrupt-controller;
492c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
493c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 119 30>;
494c66ec88fSEmmanuel Vadot			};
495c66ec88fSEmmanuel Vadot
496c66ec88fSEmmanuel Vadot			tmu: tmu@30260000 {
497c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-tmu";
498c66ec88fSEmmanuel Vadot				reg = <0x30260000 0x10000>;
499c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_TMU_ROOT>;
500cb7aa33aSEmmanuel Vadot				nvmem-cells = <&tmu_calib>;
501cb7aa33aSEmmanuel Vadot				nvmem-cell-names = "calib";
502c66ec88fSEmmanuel Vadot				#thermal-sensor-cells = <0>;
503c66ec88fSEmmanuel Vadot			};
504c66ec88fSEmmanuel Vadot
505c66ec88fSEmmanuel Vadot			wdog1: watchdog@30280000 {
506c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt";
507c66ec88fSEmmanuel Vadot				reg = <0x30280000 0x10000>;
508c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
509c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_WDOG1_ROOT>;
510c66ec88fSEmmanuel Vadot				status = "disabled";
511c66ec88fSEmmanuel Vadot			};
512c66ec88fSEmmanuel Vadot
513c66ec88fSEmmanuel Vadot			wdog2: watchdog@30290000 {
514c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt";
515c66ec88fSEmmanuel Vadot				reg = <0x30290000 0x10000>;
516c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
517c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_WDOG2_ROOT>;
518c66ec88fSEmmanuel Vadot				status = "disabled";
519c66ec88fSEmmanuel Vadot			};
520c66ec88fSEmmanuel Vadot
521c66ec88fSEmmanuel Vadot			wdog3: watchdog@302a0000 {
522c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-wdt", "fsl,imx21-wdt";
523c66ec88fSEmmanuel Vadot				reg = <0x302a0000 0x10000>;
524c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
525c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_WDOG3_ROOT>;
526c66ec88fSEmmanuel Vadot				status = "disabled";
527c66ec88fSEmmanuel Vadot			};
528c66ec88fSEmmanuel Vadot
529c66ec88fSEmmanuel Vadot			sdma2: dma-controller@302c0000 {
530c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-sdma", "fsl,imx8mq-sdma";
531c66ec88fSEmmanuel Vadot				reg = <0x302c0000 0x10000>;
532c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
533c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_SDMA2_ROOT>,
534c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_SDMA2_ROOT>;
535c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb";
536c66ec88fSEmmanuel Vadot				#dma-cells = <3>;
537c66ec88fSEmmanuel Vadot				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
538c66ec88fSEmmanuel Vadot			};
539c66ec88fSEmmanuel Vadot
540c66ec88fSEmmanuel Vadot			sdma3: dma-controller@302b0000 {
541c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-sdma", "fsl,imx8mq-sdma";
542c66ec88fSEmmanuel Vadot				reg = <0x302b0000 0x10000>;
543c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
544c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_SDMA3_ROOT>,
545c66ec88fSEmmanuel Vadot				 <&clk IMX8MM_CLK_SDMA3_ROOT>;
546c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb";
547c66ec88fSEmmanuel Vadot				#dma-cells = <3>;
548c66ec88fSEmmanuel Vadot				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
549c66ec88fSEmmanuel Vadot			};
550c66ec88fSEmmanuel Vadot
551c66ec88fSEmmanuel Vadot			iomuxc: pinctrl@30330000 {
552c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-iomuxc";
553c66ec88fSEmmanuel Vadot				reg = <0x30330000 0x10000>;
554c66ec88fSEmmanuel Vadot			};
555c66ec88fSEmmanuel Vadot
556cb7aa33aSEmmanuel Vadot			gpr: syscon@30340000 {
557cb7aa33aSEmmanuel Vadot				compatible = "fsl,imx8mm-iomuxc-gpr", "syscon";
558c66ec88fSEmmanuel Vadot				reg = <0x30340000 0x10000>;
559c66ec88fSEmmanuel Vadot			};
560c66ec88fSEmmanuel Vadot
561c66ec88fSEmmanuel Vadot			ocotp: efuse@30350000 {
562c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-ocotp", "syscon";
563c66ec88fSEmmanuel Vadot				reg = <0x30350000 0x10000>;
564c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_OCOTP_ROOT>;
565c66ec88fSEmmanuel Vadot				/* For nvmem subnodes */
566c66ec88fSEmmanuel Vadot				#address-cells = <1>;
567c66ec88fSEmmanuel Vadot				#size-cells = <1>;
568c66ec88fSEmmanuel Vadot
569cb7aa33aSEmmanuel Vadot				/*
570cb7aa33aSEmmanuel Vadot				 * The register address below maps to the MX8M
571cb7aa33aSEmmanuel Vadot				 * Fusemap Description Table entries this way.
572cb7aa33aSEmmanuel Vadot				 * Assuming
573cb7aa33aSEmmanuel Vadot				 *   reg = <ADDR SIZE>;
574cb7aa33aSEmmanuel Vadot				 * then
575cb7aa33aSEmmanuel Vadot				 *   Fuse Address = (ADDR * 4) + 0x400
576cb7aa33aSEmmanuel Vadot				 * Note that if SIZE is greater than 4, then
577cb7aa33aSEmmanuel Vadot				 * each subsequent fuse is located at offset
578cb7aa33aSEmmanuel Vadot				 * +0x10 in Fusemap Description Table (e.g.
579cb7aa33aSEmmanuel Vadot				 * reg = <0x4 0x8> describes fuses 0x410 and
580cb7aa33aSEmmanuel Vadot				 * 0x420).
581cb7aa33aSEmmanuel Vadot				 */
582cb7aa33aSEmmanuel Vadot				imx8mm_uid: unique-id@4 { /* 0x410-0x420 */
5835def4c47SEmmanuel Vadot					reg = <0x4 0x8>;
5845def4c47SEmmanuel Vadot				};
5855def4c47SEmmanuel Vadot
586cb7aa33aSEmmanuel Vadot				cpu_speed_grade: speed-grade@10 { /* 0x440 */
587c66ec88fSEmmanuel Vadot					reg = <0x10 4>;
588c66ec88fSEmmanuel Vadot				};
5895def4c47SEmmanuel Vadot
590cb7aa33aSEmmanuel Vadot				tmu_calib: calib@3c { /* 0x4f0 */
591cb7aa33aSEmmanuel Vadot					reg = <0x3c 4>;
592cb7aa33aSEmmanuel Vadot				};
593cb7aa33aSEmmanuel Vadot
594cb7aa33aSEmmanuel Vadot				fec_mac_address: mac-address@90 { /* 0x640 */
5955def4c47SEmmanuel Vadot					reg = <0x90 6>;
5965def4c47SEmmanuel Vadot				};
597c66ec88fSEmmanuel Vadot			};
598c66ec88fSEmmanuel Vadot
5998bab661aSEmmanuel Vadot			anatop: clock-controller@30360000 {
6008bab661aSEmmanuel Vadot				compatible = "fsl,imx8mm-anatop";
601c66ec88fSEmmanuel Vadot				reg = <0x30360000 0x10000>;
6028bab661aSEmmanuel Vadot				#clock-cells = <1>;
603c66ec88fSEmmanuel Vadot			};
604c66ec88fSEmmanuel Vadot
605c66ec88fSEmmanuel Vadot			snvs: snvs@30370000 {
606c66ec88fSEmmanuel Vadot				compatible = "fsl,sec-v4.0-mon","syscon", "simple-mfd";
607c66ec88fSEmmanuel Vadot				reg = <0x30370000 0x10000>;
608c66ec88fSEmmanuel Vadot
609c66ec88fSEmmanuel Vadot				snvs_rtc: snvs-rtc-lp {
610c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-mon-rtc-lp";
611c66ec88fSEmmanuel Vadot					regmap = <&snvs>;
612c66ec88fSEmmanuel Vadot					offset = <0x34>;
613c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
614c66ec88fSEmmanuel Vadot						     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
615c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_SNVS_ROOT>;
616c66ec88fSEmmanuel Vadot					clock-names = "snvs-rtc";
617c66ec88fSEmmanuel Vadot				};
618c66ec88fSEmmanuel Vadot
619c66ec88fSEmmanuel Vadot				snvs_pwrkey: snvs-powerkey {
620c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-pwrkey";
621c66ec88fSEmmanuel Vadot					regmap = <&snvs>;
622c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
623c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_SNVS_ROOT>;
624c66ec88fSEmmanuel Vadot					clock-names = "snvs-pwrkey";
625c66ec88fSEmmanuel Vadot					linux,keycode = <KEY_POWER>;
626c66ec88fSEmmanuel Vadot					wakeup-source;
627c66ec88fSEmmanuel Vadot					status = "disabled";
628c66ec88fSEmmanuel Vadot				};
629b97ee269SEmmanuel Vadot
630b97ee269SEmmanuel Vadot				snvs_lpgpr: snvs-lpgpr {
631b97ee269SEmmanuel Vadot					compatible = "fsl,imx8mm-snvs-lpgpr",
632b97ee269SEmmanuel Vadot						     "fsl,imx7d-snvs-lpgpr";
633b97ee269SEmmanuel Vadot				};
634c66ec88fSEmmanuel Vadot			};
635c66ec88fSEmmanuel Vadot
636c66ec88fSEmmanuel Vadot			clk: clock-controller@30380000 {
637c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-ccm";
638c66ec88fSEmmanuel Vadot				reg = <0x30380000 0x10000>;
639*8d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
640*8d13bc63SEmmanuel Vadot					     <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
641c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
642c66ec88fSEmmanuel Vadot				clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>, <&clk_ext2>,
643c66ec88fSEmmanuel Vadot					 <&clk_ext3>, <&clk_ext4>;
644c66ec88fSEmmanuel Vadot				clock-names = "osc_32k", "osc_24m", "clk_ext1", "clk_ext2",
645c66ec88fSEmmanuel Vadot					      "clk_ext3", "clk_ext4";
646c66ec88fSEmmanuel Vadot				assigned-clocks = <&clk IMX8MM_CLK_A53_SRC>,
647c66ec88fSEmmanuel Vadot						<&clk IMX8MM_CLK_A53_CORE>,
648c66ec88fSEmmanuel Vadot						<&clk IMX8MM_CLK_NOC>,
649c66ec88fSEmmanuel Vadot						<&clk IMX8MM_CLK_AUDIO_AHB>,
650c66ec88fSEmmanuel Vadot						<&clk IMX8MM_CLK_IPG_AUDIO_ROOT>,
651c66ec88fSEmmanuel Vadot						<&clk IMX8MM_SYS_PLL3>,
652e67e8565SEmmanuel Vadot						<&clk IMX8MM_AUDIO_PLL1>;
653c66ec88fSEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
654c66ec88fSEmmanuel Vadot							 <&clk IMX8MM_ARM_PLL_OUT>,
655c66ec88fSEmmanuel Vadot							 <&clk IMX8MM_SYS_PLL3_OUT>,
656c66ec88fSEmmanuel Vadot							 <&clk IMX8MM_SYS_PLL1_800M>;
657c66ec88fSEmmanuel Vadot				assigned-clock-rates = <0>, <0>, <0>,
658c66ec88fSEmmanuel Vadot							<400000000>,
659c66ec88fSEmmanuel Vadot							<400000000>,
660c66ec88fSEmmanuel Vadot							<750000000>,
661e67e8565SEmmanuel Vadot							<393216000>;
662c66ec88fSEmmanuel Vadot			};
663c66ec88fSEmmanuel Vadot
664c66ec88fSEmmanuel Vadot			src: reset-controller@30390000 {
665c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-src", "fsl,imx8mq-src", "syscon";
666c66ec88fSEmmanuel Vadot				reg = <0x30390000 0x10000>;
667c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
668c66ec88fSEmmanuel Vadot				#reset-cells = <1>;
669c66ec88fSEmmanuel Vadot			};
6708cc087a1SEmmanuel Vadot
6718cc087a1SEmmanuel Vadot			gpc: gpc@303a0000 {
6728cc087a1SEmmanuel Vadot				compatible = "fsl,imx8mm-gpc";
6738cc087a1SEmmanuel Vadot				reg = <0x303a0000 0x10000>;
6748cc087a1SEmmanuel Vadot				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
6758cc087a1SEmmanuel Vadot				interrupt-parent = <&gic>;
6768cc087a1SEmmanuel Vadot				interrupt-controller;
6778cc087a1SEmmanuel Vadot				#interrupt-cells = <3>;
6788cc087a1SEmmanuel Vadot
6798cc087a1SEmmanuel Vadot				pgc {
6808cc087a1SEmmanuel Vadot					#address-cells = <1>;
6818cc087a1SEmmanuel Vadot					#size-cells = <0>;
6828cc087a1SEmmanuel Vadot
6838cc087a1SEmmanuel Vadot					pgc_hsiomix: power-domain@0 {
6848cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
6858cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_HSIOMIX>;
6868cc087a1SEmmanuel Vadot						clocks = <&clk IMX8MM_CLK_USB_BUS>;
6878cc087a1SEmmanuel Vadot						assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
6888cc087a1SEmmanuel Vadot						assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
6898cc087a1SEmmanuel Vadot					};
6908cc087a1SEmmanuel Vadot
6918cc087a1SEmmanuel Vadot					pgc_pcie: power-domain@1 {
6928cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
6938cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_PCIE>;
6948cc087a1SEmmanuel Vadot						power-domains = <&pgc_hsiomix>;
6958cc087a1SEmmanuel Vadot						clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>;
6968cc087a1SEmmanuel Vadot					};
6978cc087a1SEmmanuel Vadot
6988cc087a1SEmmanuel Vadot					pgc_otg1: power-domain@2 {
6998cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7008cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_OTG1>;
7018cc087a1SEmmanuel Vadot					};
7028cc087a1SEmmanuel Vadot
7038cc087a1SEmmanuel Vadot					pgc_otg2: power-domain@3 {
7048cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7058cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_OTG2>;
7068cc087a1SEmmanuel Vadot					};
7078cc087a1SEmmanuel Vadot
7088cc087a1SEmmanuel Vadot					pgc_gpumix: power-domain@4 {
7098cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7108cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_GPUMIX>;
7118cc087a1SEmmanuel Vadot						clocks = <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
7128cc087a1SEmmanuel Vadot							 <&clk IMX8MM_CLK_GPU_AHB>;
7138cc087a1SEmmanuel Vadot						assigned-clocks = <&clk IMX8MM_CLK_GPU_AXI>,
7148cc087a1SEmmanuel Vadot								  <&clk IMX8MM_CLK_GPU_AHB>;
7158cc087a1SEmmanuel Vadot						assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
7168cc087a1SEmmanuel Vadot									 <&clk IMX8MM_SYS_PLL1_800M>;
7178cc087a1SEmmanuel Vadot						assigned-clock-rates = <800000000>, <400000000>;
7188cc087a1SEmmanuel Vadot					};
7198cc087a1SEmmanuel Vadot
7208cc087a1SEmmanuel Vadot					pgc_gpu: power-domain@5 {
7218cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7228cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_GPU>;
7238cc087a1SEmmanuel Vadot						clocks = <&clk IMX8MM_CLK_GPU_AHB>,
7248cc087a1SEmmanuel Vadot							 <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
7258cc087a1SEmmanuel Vadot							 <&clk IMX8MM_CLK_GPU2D_ROOT>,
7268cc087a1SEmmanuel Vadot							 <&clk IMX8MM_CLK_GPU3D_ROOT>;
7278cc087a1SEmmanuel Vadot						resets = <&src IMX8MQ_RESET_GPU_RESET>;
7288cc087a1SEmmanuel Vadot						power-domains = <&pgc_gpumix>;
7298cc087a1SEmmanuel Vadot					};
7308cc087a1SEmmanuel Vadot
7318cc087a1SEmmanuel Vadot					pgc_vpumix: power-domain@6 {
7328cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7338cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_VPUMIX>;
7348cc087a1SEmmanuel Vadot						clocks = <&clk IMX8MM_CLK_VPU_DEC_ROOT>;
7358cc087a1SEmmanuel Vadot						assigned-clocks = <&clk IMX8MM_CLK_VPU_BUS>;
7368cc087a1SEmmanuel Vadot						assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>;
7378cc087a1SEmmanuel Vadot					};
7388cc087a1SEmmanuel Vadot
7398cc087a1SEmmanuel Vadot					pgc_vpu_g1: power-domain@7 {
7408cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7418cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_VPUG1>;
7428cc087a1SEmmanuel Vadot					};
7438cc087a1SEmmanuel Vadot
7448cc087a1SEmmanuel Vadot					pgc_vpu_g2: power-domain@8 {
7458cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7468cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_VPUG2>;
7478cc087a1SEmmanuel Vadot					};
7488cc087a1SEmmanuel Vadot
7498cc087a1SEmmanuel Vadot					pgc_vpu_h1: power-domain@9 {
7508cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7518cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_VPUH1>;
7528cc087a1SEmmanuel Vadot					};
7538cc087a1SEmmanuel Vadot
7548cc087a1SEmmanuel Vadot					pgc_dispmix: power-domain@10 {
7558cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7568cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_DISPMIX>;
7578cc087a1SEmmanuel Vadot						clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>,
7588cc087a1SEmmanuel Vadot							 <&clk IMX8MM_CLK_DISP_AXI_ROOT>;
7598cc087a1SEmmanuel Vadot						assigned-clocks = <&clk IMX8MM_CLK_DISP_AXI>,
7608cc087a1SEmmanuel Vadot								  <&clk IMX8MM_CLK_DISP_APB>;
7618cc087a1SEmmanuel Vadot						assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_1000M>,
7628cc087a1SEmmanuel Vadot									 <&clk IMX8MM_SYS_PLL1_800M>;
7638cc087a1SEmmanuel Vadot						assigned-clock-rates = <500000000>, <200000000>;
7648cc087a1SEmmanuel Vadot					};
7658cc087a1SEmmanuel Vadot
7668cc087a1SEmmanuel Vadot					pgc_mipi: power-domain@11 {
7678cc087a1SEmmanuel Vadot						#power-domain-cells = <0>;
7688cc087a1SEmmanuel Vadot						reg = <IMX8MM_POWER_DOMAIN_MIPI>;
7698cc087a1SEmmanuel Vadot					};
7708cc087a1SEmmanuel Vadot				};
7718cc087a1SEmmanuel Vadot			};
772c66ec88fSEmmanuel Vadot		};
773c66ec88fSEmmanuel Vadot
774c66ec88fSEmmanuel Vadot		aips2: bus@30400000 {
775c66ec88fSEmmanuel Vadot			compatible = "fsl,aips-bus", "simple-bus";
776c66ec88fSEmmanuel Vadot			reg = <0x30400000 0x400000>;
777c66ec88fSEmmanuel Vadot			#address-cells = <1>;
778c66ec88fSEmmanuel Vadot			#size-cells = <1>;
779c66ec88fSEmmanuel Vadot			ranges = <0x30400000 0x30400000 0x400000>;
780c66ec88fSEmmanuel Vadot
781c66ec88fSEmmanuel Vadot			pwm1: pwm@30660000 {
782c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm";
783c66ec88fSEmmanuel Vadot				reg = <0x30660000 0x10000>;
784c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
785c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_PWM1_ROOT>,
786c66ec88fSEmmanuel Vadot					<&clk IMX8MM_CLK_PWM1_ROOT>;
787c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
788d5b0e70fSEmmanuel Vadot				#pwm-cells = <3>;
789c66ec88fSEmmanuel Vadot				status = "disabled";
790c66ec88fSEmmanuel Vadot			};
791c66ec88fSEmmanuel Vadot
792c66ec88fSEmmanuel Vadot			pwm2: pwm@30670000 {
793c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm";
794c66ec88fSEmmanuel Vadot				reg = <0x30670000 0x10000>;
795c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
796c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_PWM2_ROOT>,
797c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_PWM2_ROOT>;
798c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
799d5b0e70fSEmmanuel Vadot				#pwm-cells = <3>;
800c66ec88fSEmmanuel Vadot				status = "disabled";
801c66ec88fSEmmanuel Vadot			};
802c66ec88fSEmmanuel Vadot
803c66ec88fSEmmanuel Vadot			pwm3: pwm@30680000 {
804c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm";
805c66ec88fSEmmanuel Vadot				reg = <0x30680000 0x10000>;
806c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
807c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_PWM3_ROOT>,
808c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_PWM3_ROOT>;
809c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
810d5b0e70fSEmmanuel Vadot				#pwm-cells = <3>;
811c66ec88fSEmmanuel Vadot				status = "disabled";
812c66ec88fSEmmanuel Vadot			};
813c66ec88fSEmmanuel Vadot
814c66ec88fSEmmanuel Vadot			pwm4: pwm@30690000 {
815c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-pwm", "fsl,imx27-pwm";
816c66ec88fSEmmanuel Vadot				reg = <0x30690000 0x10000>;
817c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
818c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_PWM4_ROOT>,
819c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_PWM4_ROOT>;
820c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
821d5b0e70fSEmmanuel Vadot				#pwm-cells = <3>;
822c66ec88fSEmmanuel Vadot				status = "disabled";
823c66ec88fSEmmanuel Vadot			};
824c66ec88fSEmmanuel Vadot
825c66ec88fSEmmanuel Vadot			system_counter: timer@306a0000 {
826c66ec88fSEmmanuel Vadot				compatible = "nxp,sysctr-timer";
827c66ec88fSEmmanuel Vadot				reg = <0x306a0000 0x20000>;
828c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
829c66ec88fSEmmanuel Vadot				clocks = <&osc_24m>;
830c66ec88fSEmmanuel Vadot				clock-names = "per";
831c66ec88fSEmmanuel Vadot			};
832c66ec88fSEmmanuel Vadot		};
833c66ec88fSEmmanuel Vadot
834c66ec88fSEmmanuel Vadot		aips3: bus@30800000 {
835c66ec88fSEmmanuel Vadot			compatible = "fsl,aips-bus", "simple-bus";
836c66ec88fSEmmanuel Vadot			reg = <0x30800000 0x400000>;
837c66ec88fSEmmanuel Vadot			#address-cells = <1>;
838c66ec88fSEmmanuel Vadot			#size-cells = <1>;
839c66ec88fSEmmanuel Vadot			ranges = <0x30800000 0x30800000 0x400000>,
840c66ec88fSEmmanuel Vadot				 <0x8000000 0x8000000 0x10000000>;
841c66ec88fSEmmanuel Vadot
8425956d97fSEmmanuel Vadot			spba1: spba-bus@30800000 {
8435956d97fSEmmanuel Vadot				compatible = "fsl,spba-bus", "simple-bus";
8445956d97fSEmmanuel Vadot				#address-cells = <1>;
8455956d97fSEmmanuel Vadot				#size-cells = <1>;
8465956d97fSEmmanuel Vadot				reg = <0x30800000 0x100000>;
8475956d97fSEmmanuel Vadot				ranges;
8485956d97fSEmmanuel Vadot
849c66ec88fSEmmanuel Vadot				ecspi1: spi@30820000 {
850c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
851c66ec88fSEmmanuel Vadot					#address-cells = <1>;
852c66ec88fSEmmanuel Vadot					#size-cells = <0>;
853c66ec88fSEmmanuel Vadot					reg = <0x30820000 0x10000>;
854c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
855c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_ECSPI1_ROOT>,
856c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_ECSPI1_ROOT>;
857c66ec88fSEmmanuel Vadot					clock-names = "ipg", "per";
858c66ec88fSEmmanuel Vadot					dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
859c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
860c66ec88fSEmmanuel Vadot					status = "disabled";
861c66ec88fSEmmanuel Vadot				};
862c66ec88fSEmmanuel Vadot
863c66ec88fSEmmanuel Vadot				ecspi2: spi@30830000 {
864c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
865c66ec88fSEmmanuel Vadot					#address-cells = <1>;
866c66ec88fSEmmanuel Vadot					#size-cells = <0>;
867c66ec88fSEmmanuel Vadot					reg = <0x30830000 0x10000>;
868c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
869c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_ECSPI2_ROOT>,
870c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_ECSPI2_ROOT>;
871c66ec88fSEmmanuel Vadot					clock-names = "ipg", "per";
872c66ec88fSEmmanuel Vadot					dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
873c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
874c66ec88fSEmmanuel Vadot					status = "disabled";
875c66ec88fSEmmanuel Vadot				};
876c66ec88fSEmmanuel Vadot
877c66ec88fSEmmanuel Vadot				ecspi3: spi@30840000 {
878c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-ecspi", "fsl,imx51-ecspi";
879c66ec88fSEmmanuel Vadot					#address-cells = <1>;
880c66ec88fSEmmanuel Vadot					#size-cells = <0>;
881c66ec88fSEmmanuel Vadot					reg = <0x30840000 0x10000>;
882c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
883c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_ECSPI3_ROOT>,
884c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_ECSPI3_ROOT>;
885c66ec88fSEmmanuel Vadot					clock-names = "ipg", "per";
886c66ec88fSEmmanuel Vadot					dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
887c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
888c66ec88fSEmmanuel Vadot					status = "disabled";
889c66ec88fSEmmanuel Vadot				};
890c66ec88fSEmmanuel Vadot
891c66ec88fSEmmanuel Vadot				uart1: serial@30860000 {
892c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
893c66ec88fSEmmanuel Vadot					reg = <0x30860000 0x10000>;
894c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
895c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_UART1_ROOT>,
896c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_UART1_ROOT>;
897c66ec88fSEmmanuel Vadot					clock-names = "ipg", "per";
898c66ec88fSEmmanuel Vadot					dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
899c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
900c66ec88fSEmmanuel Vadot					status = "disabled";
901c66ec88fSEmmanuel Vadot				};
902c66ec88fSEmmanuel Vadot
903c66ec88fSEmmanuel Vadot				uart3: serial@30880000 {
904c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
905c66ec88fSEmmanuel Vadot					reg = <0x30880000 0x10000>;
906c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
907c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_UART3_ROOT>,
908c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_UART3_ROOT>;
909c66ec88fSEmmanuel Vadot					clock-names = "ipg", "per";
910c66ec88fSEmmanuel Vadot					dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
911c66ec88fSEmmanuel Vadot					dma-names = "rx", "tx";
912c66ec88fSEmmanuel Vadot					status = "disabled";
913c66ec88fSEmmanuel Vadot				};
914c66ec88fSEmmanuel Vadot
915c66ec88fSEmmanuel Vadot				uart2: serial@30890000 {
916c66ec88fSEmmanuel Vadot					compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
917c66ec88fSEmmanuel Vadot					reg = <0x30890000 0x10000>;
918c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
919c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MM_CLK_UART2_ROOT>,
920c66ec88fSEmmanuel Vadot						 <&clk IMX8MM_CLK_UART2_ROOT>;
921c66ec88fSEmmanuel Vadot					clock-names = "ipg", "per";
922c66ec88fSEmmanuel Vadot					status = "disabled";
923c66ec88fSEmmanuel Vadot				};
9245956d97fSEmmanuel Vadot			};
925c66ec88fSEmmanuel Vadot
926c66ec88fSEmmanuel Vadot			crypto: crypto@30900000 {
927c66ec88fSEmmanuel Vadot				compatible = "fsl,sec-v4.0";
928c66ec88fSEmmanuel Vadot				#address-cells = <1>;
929c66ec88fSEmmanuel Vadot				#size-cells = <1>;
930c66ec88fSEmmanuel Vadot				reg = <0x30900000 0x40000>;
931c66ec88fSEmmanuel Vadot				ranges = <0 0x30900000 0x40000>;
932c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
933c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_AHB>,
934c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_IPG_ROOT>;
935c66ec88fSEmmanuel Vadot				clock-names = "aclk", "ipg";
936c66ec88fSEmmanuel Vadot
937c66ec88fSEmmanuel Vadot				sec_jr0: jr@1000 {
938c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-job-ring";
939c66ec88fSEmmanuel Vadot					reg = <0x1000 0x1000>;
940c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
941b97ee269SEmmanuel Vadot					status = "disabled";
942c66ec88fSEmmanuel Vadot				};
943c66ec88fSEmmanuel Vadot
944c66ec88fSEmmanuel Vadot				sec_jr1: jr@2000 {
945c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-job-ring";
946c66ec88fSEmmanuel Vadot					reg = <0x2000 0x1000>;
947c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
948c66ec88fSEmmanuel Vadot				};
949c66ec88fSEmmanuel Vadot
950c66ec88fSEmmanuel Vadot				sec_jr2: jr@3000 {
951c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-job-ring";
952c66ec88fSEmmanuel Vadot					reg = <0x3000 0x1000>;
953c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
954c66ec88fSEmmanuel Vadot				};
955c66ec88fSEmmanuel Vadot			};
956c66ec88fSEmmanuel Vadot
957c66ec88fSEmmanuel Vadot			i2c1: i2c@30a20000 {
958c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
959c66ec88fSEmmanuel Vadot				#address-cells = <1>;
960c66ec88fSEmmanuel Vadot				#size-cells = <0>;
961c66ec88fSEmmanuel Vadot				reg = <0x30a20000 0x10000>;
962c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
963c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_I2C1_ROOT>;
964c66ec88fSEmmanuel Vadot				status = "disabled";
965c66ec88fSEmmanuel Vadot			};
966c66ec88fSEmmanuel Vadot
967c66ec88fSEmmanuel Vadot			i2c2: i2c@30a30000 {
968c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
969c66ec88fSEmmanuel Vadot				#address-cells = <1>;
970c66ec88fSEmmanuel Vadot				#size-cells = <0>;
971c66ec88fSEmmanuel Vadot				reg = <0x30a30000 0x10000>;
972c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
973c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_I2C2_ROOT>;
974c66ec88fSEmmanuel Vadot				status = "disabled";
975c66ec88fSEmmanuel Vadot			};
976c66ec88fSEmmanuel Vadot
977c66ec88fSEmmanuel Vadot			i2c3: i2c@30a40000 {
978c66ec88fSEmmanuel Vadot				#address-cells = <1>;
979c66ec88fSEmmanuel Vadot				#size-cells = <0>;
980c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
981c66ec88fSEmmanuel Vadot				reg = <0x30a40000 0x10000>;
982c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
983c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_I2C3_ROOT>;
984c66ec88fSEmmanuel Vadot				status = "disabled";
985c66ec88fSEmmanuel Vadot			};
986c66ec88fSEmmanuel Vadot
987c66ec88fSEmmanuel Vadot			i2c4: i2c@30a50000 {
988c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-i2c", "fsl,imx21-i2c";
989c66ec88fSEmmanuel Vadot				#address-cells = <1>;
990c66ec88fSEmmanuel Vadot				#size-cells = <0>;
991c66ec88fSEmmanuel Vadot				reg = <0x30a50000 0x10000>;
992c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
993c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_I2C4_ROOT>;
994c66ec88fSEmmanuel Vadot				status = "disabled";
995c66ec88fSEmmanuel Vadot			};
996c66ec88fSEmmanuel Vadot
997c66ec88fSEmmanuel Vadot			uart4: serial@30a60000 {
998c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-uart", "fsl,imx6q-uart";
999c66ec88fSEmmanuel Vadot				reg = <0x30a60000 0x10000>;
1000c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1001c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_UART4_ROOT>,
1002c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_UART4_ROOT>;
1003c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1004c66ec88fSEmmanuel Vadot				dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>;
1005c66ec88fSEmmanuel Vadot				dma-names = "rx", "tx";
1006c66ec88fSEmmanuel Vadot				status = "disabled";
1007c66ec88fSEmmanuel Vadot			};
1008c66ec88fSEmmanuel Vadot
1009c66ec88fSEmmanuel Vadot			mu: mailbox@30aa0000 {
1010c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-mu", "fsl,imx6sx-mu";
1011c66ec88fSEmmanuel Vadot				reg = <0x30aa0000 0x10000>;
1012c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1013c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_MU_ROOT>;
1014c66ec88fSEmmanuel Vadot				#mbox-cells = <2>;
1015c66ec88fSEmmanuel Vadot			};
1016c66ec88fSEmmanuel Vadot
1017c66ec88fSEmmanuel Vadot			usdhc1: mmc@30b40000 {
1018c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
1019c66ec88fSEmmanuel Vadot				reg = <0x30b40000 0x10000>;
1020c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
1021c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_IPG_ROOT>,
1022c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_NAND_USDHC_BUS>,
1023c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_USDHC1_ROOT>;
1024c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
1025c66ec88fSEmmanuel Vadot				fsl,tuning-start-tap = <20>;
1026c66ec88fSEmmanuel Vadot				fsl,tuning-step = <2>;
1027c66ec88fSEmmanuel Vadot				bus-width = <4>;
1028c66ec88fSEmmanuel Vadot				status = "disabled";
1029c66ec88fSEmmanuel Vadot			};
1030c66ec88fSEmmanuel Vadot
1031c66ec88fSEmmanuel Vadot			usdhc2: mmc@30b50000 {
1032c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
1033c66ec88fSEmmanuel Vadot				reg = <0x30b50000 0x10000>;
1034c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
1035c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_IPG_ROOT>,
1036c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_NAND_USDHC_BUS>,
1037c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_USDHC2_ROOT>;
1038c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
1039c66ec88fSEmmanuel Vadot				fsl,tuning-start-tap = <20>;
1040c66ec88fSEmmanuel Vadot				fsl,tuning-step = <2>;
1041c66ec88fSEmmanuel Vadot				bus-width = <4>;
1042c66ec88fSEmmanuel Vadot				status = "disabled";
1043c66ec88fSEmmanuel Vadot			};
1044c66ec88fSEmmanuel Vadot
1045c66ec88fSEmmanuel Vadot			usdhc3: mmc@30b60000 {
1046c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
1047c66ec88fSEmmanuel Vadot				reg = <0x30b60000 0x10000>;
1048c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
1049c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_IPG_ROOT>,
1050c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_NAND_USDHC_BUS>,
1051c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_USDHC3_ROOT>;
1052c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
1053c66ec88fSEmmanuel Vadot				fsl,tuning-start-tap = <20>;
1054c66ec88fSEmmanuel Vadot				fsl,tuning-step = <2>;
1055c66ec88fSEmmanuel Vadot				bus-width = <4>;
1056c66ec88fSEmmanuel Vadot				status = "disabled";
1057c66ec88fSEmmanuel Vadot			};
1058c66ec88fSEmmanuel Vadot
1059c66ec88fSEmmanuel Vadot			flexspi: spi@30bb0000 {
1060c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1061c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1062c66ec88fSEmmanuel Vadot				compatible = "nxp,imx8mm-fspi";
1063c66ec88fSEmmanuel Vadot				reg = <0x30bb0000 0x10000>, <0x8000000 0x10000000>;
1064c66ec88fSEmmanuel Vadot				reg-names = "fspi_base", "fspi_mmap";
1065c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1066c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_QSPI_ROOT>,
1067c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_QSPI_ROOT>;
10682eb4d8dcSEmmanuel Vadot				clock-names = "fspi_en", "fspi";
1069c66ec88fSEmmanuel Vadot				status = "disabled";
1070c66ec88fSEmmanuel Vadot			};
1071c66ec88fSEmmanuel Vadot
1072c66ec88fSEmmanuel Vadot			sdma1: dma-controller@30bd0000 {
1073c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mm-sdma", "fsl,imx8mq-sdma";
1074c66ec88fSEmmanuel Vadot				reg = <0x30bd0000 0x10000>;
1075c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
1076c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_SDMA1_ROOT>,
1077c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_AHB>;
1078c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb";
1079c66ec88fSEmmanuel Vadot				#dma-cells = <3>;
1080c66ec88fSEmmanuel Vadot				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
1081c66ec88fSEmmanuel Vadot			};
1082c66ec88fSEmmanuel Vadot
1083c66ec88fSEmmanuel Vadot			fec1: ethernet@30be0000 {
1084354d7675SEmmanuel Vadot				compatible = "fsl,imx8mm-fec", "fsl,imx8mq-fec", "fsl,imx6sx-fec";
1085c66ec88fSEmmanuel Vadot				reg = <0x30be0000 0x10000>;
1086c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1087c66ec88fSEmmanuel Vadot					     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
10886be33864SEmmanuel Vadot					     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
10896be33864SEmmanuel Vadot					     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
1090c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_ENET1_ROOT>,
1091c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_ENET1_ROOT>,
1092c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_ENET_TIMER>,
1093c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_ENET_REF>,
1094c66ec88fSEmmanuel Vadot					 <&clk IMX8MM_CLK_ENET_PHY_REF>;
1095c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb", "ptp",
1096c66ec88fSEmmanuel Vadot					      "enet_clk_ref", "enet_out";
1097c66ec88fSEmmanuel Vadot				assigned-clocks = <&clk IMX8MM_CLK_ENET_AXI>,
1098c66ec88fSEmmanuel Vadot						  <&clk IMX8MM_CLK_ENET_TIMER>,
1099c66ec88fSEmmanuel Vadot						  <&clk IMX8MM_CLK_ENET_REF>,
11005def4c47SEmmanuel Vadot						  <&clk IMX8MM_CLK_ENET_PHY_REF>;
1101c66ec88fSEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>,
1102c66ec88fSEmmanuel Vadot							 <&clk IMX8MM_SYS_PLL2_100M>,
11035def4c47SEmmanuel Vadot							 <&clk IMX8MM_SYS_PLL2_125M>,
11045def4c47SEmmanuel Vadot							 <&clk IMX8MM_SYS_PLL2_50M>;
11055def4c47SEmmanuel Vadot				assigned-clock-rates = <0>, <100000000>, <125000000>, <0>;
1106c66ec88fSEmmanuel Vadot				fsl,num-tx-queues = <3>;
1107c66ec88fSEmmanuel Vadot				fsl,num-rx-queues = <3>;
11085def4c47SEmmanuel Vadot				nvmem-cells = <&fec_mac_address>;
11095def4c47SEmmanuel Vadot				nvmem-cell-names = "mac-address";
11105def4c47SEmmanuel Vadot				fsl,stop-mode = <&gpr 0x10 3>;
1111c66ec88fSEmmanuel Vadot				status = "disabled";
1112c66ec88fSEmmanuel Vadot			};
1113c66ec88fSEmmanuel Vadot
1114c66ec88fSEmmanuel Vadot		};
1115c66ec88fSEmmanuel Vadot
1116c66ec88fSEmmanuel Vadot		aips4: bus@32c00000 {
1117c66ec88fSEmmanuel Vadot			compatible = "fsl,aips-bus", "simple-bus";
1118c66ec88fSEmmanuel Vadot			reg = <0x32c00000 0x400000>;
1119c66ec88fSEmmanuel Vadot			#address-cells = <1>;
1120c66ec88fSEmmanuel Vadot			#size-cells = <1>;
1121c66ec88fSEmmanuel Vadot			ranges = <0x32c00000 0x32c00000 0x400000>;
1122c66ec88fSEmmanuel Vadot
1123fac71e4eSEmmanuel Vadot			lcdif: lcdif@32e00000 {
1124fac71e4eSEmmanuel Vadot				compatible = "fsl,imx8mm-lcdif", "fsl,imx6sx-lcdif";
1125fac71e4eSEmmanuel Vadot				reg = <0x32e00000 0x10000>;
1126fac71e4eSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_LCDIF_PIXEL>,
1127fac71e4eSEmmanuel Vadot					 <&clk IMX8MM_CLK_DISP_APB_ROOT>,
1128fac71e4eSEmmanuel Vadot					 <&clk IMX8MM_CLK_DISP_AXI_ROOT>;
1129fac71e4eSEmmanuel Vadot				clock-names = "pix", "axi", "disp_axi";
1130fac71e4eSEmmanuel Vadot				assigned-clocks = <&clk IMX8MM_CLK_LCDIF_PIXEL>,
1131fac71e4eSEmmanuel Vadot						  <&clk IMX8MM_CLK_DISP_AXI>,
1132fac71e4eSEmmanuel Vadot						  <&clk IMX8MM_CLK_DISP_APB>;
1133fac71e4eSEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MM_VIDEO_PLL1_OUT>,
1134fac71e4eSEmmanuel Vadot							 <&clk IMX8MM_SYS_PLL2_1000M>,
1135fac71e4eSEmmanuel Vadot							 <&clk IMX8MM_SYS_PLL1_800M>;
1136*8d13bc63SEmmanuel Vadot				assigned-clock-rates = <24000000>, <500000000>, <200000000>;
1137fac71e4eSEmmanuel Vadot				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1138fac71e4eSEmmanuel Vadot				power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_LCDIF>;
1139fac71e4eSEmmanuel Vadot				status = "disabled";
1140fac71e4eSEmmanuel Vadot
1141fac71e4eSEmmanuel Vadot				port {
1142fac71e4eSEmmanuel Vadot					lcdif_to_dsim: endpoint {
1143fac71e4eSEmmanuel Vadot						remote-endpoint = <&dsim_from_lcdif>;
1144fac71e4eSEmmanuel Vadot					};
1145fac71e4eSEmmanuel Vadot				};
1146fac71e4eSEmmanuel Vadot			};
1147fac71e4eSEmmanuel Vadot
1148fac71e4eSEmmanuel Vadot			mipi_dsi: dsi@32e10000 {
1149fac71e4eSEmmanuel Vadot				compatible = "fsl,imx8mm-mipi-dsim";
1150fac71e4eSEmmanuel Vadot				reg = <0x32e10000 0x400>;
1151fac71e4eSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_DSI_CORE>,
1152fac71e4eSEmmanuel Vadot					 <&clk IMX8MM_CLK_DSI_PHY_REF>;
1153fac71e4eSEmmanuel Vadot				clock-names = "bus_clk", "sclk_mipi";
1154*8d13bc63SEmmanuel Vadot				assigned-clocks = <&clk IMX8MM_CLK_DSI_CORE>;
1155*8d13bc63SEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_266M>;
1156fac71e4eSEmmanuel Vadot				interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
1157fac71e4eSEmmanuel Vadot				power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_MIPI_DSI>;
1158fac71e4eSEmmanuel Vadot				status = "disabled";
1159fac71e4eSEmmanuel Vadot
1160fac71e4eSEmmanuel Vadot				ports {
1161fac71e4eSEmmanuel Vadot					#address-cells = <1>;
1162fac71e4eSEmmanuel Vadot					#size-cells = <0>;
1163fac71e4eSEmmanuel Vadot
1164fac71e4eSEmmanuel Vadot					port@0 {
1165fac71e4eSEmmanuel Vadot						reg = <0>;
1166fac71e4eSEmmanuel Vadot
1167fac71e4eSEmmanuel Vadot						dsim_from_lcdif: endpoint {
1168fac71e4eSEmmanuel Vadot							remote-endpoint = <&lcdif_to_dsim>;
1169fac71e4eSEmmanuel Vadot						};
1170fac71e4eSEmmanuel Vadot					};
1171fac71e4eSEmmanuel Vadot				};
1172fac71e4eSEmmanuel Vadot			};
1173fac71e4eSEmmanuel Vadot
1174e67e8565SEmmanuel Vadot			csi: csi@32e20000 {
1175e67e8565SEmmanuel Vadot				compatible = "fsl,imx8mm-csi", "fsl,imx7-csi";
1176e67e8565SEmmanuel Vadot				reg = <0x32e20000 0x1000>;
1177e67e8565SEmmanuel Vadot				interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1178e67e8565SEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_CSI1_ROOT>;
1179e67e8565SEmmanuel Vadot				clock-names = "mclk";
1180e67e8565SEmmanuel Vadot				power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_CSI_BRIDGE>;
1181e67e8565SEmmanuel Vadot				status = "disabled";
1182e67e8565SEmmanuel Vadot
1183e67e8565SEmmanuel Vadot				port {
1184e67e8565SEmmanuel Vadot					csi_in: endpoint {
1185e67e8565SEmmanuel Vadot						remote-endpoint = <&imx8mm_mipi_csi_out>;
1186e67e8565SEmmanuel Vadot					};
1187e67e8565SEmmanuel Vadot				};
1188e67e8565SEmmanuel Vadot			};
1189e67e8565SEmmanuel Vadot
11908cc087a1SEmmanuel Vadot			disp_blk_ctrl: blk-ctrl@32e28000 {
11918cc087a1SEmmanuel Vadot				compatible = "fsl,imx8mm-disp-blk-ctrl", "syscon";
11928cc087a1SEmmanuel Vadot				reg = <0x32e28000 0x100>;
11938cc087a1SEmmanuel Vadot				power-domains = <&pgc_dispmix>, <&pgc_dispmix>,
11948cc087a1SEmmanuel Vadot						<&pgc_dispmix>, <&pgc_mipi>,
11958cc087a1SEmmanuel Vadot						<&pgc_mipi>;
11968cc087a1SEmmanuel Vadot				power-domain-names = "bus", "csi-bridge",
11978cc087a1SEmmanuel Vadot						     "lcdif", "mipi-dsi",
11988cc087a1SEmmanuel Vadot						     "mipi-csi";
11998cc087a1SEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_DISP_AXI_ROOT>,
12008cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_DISP_APB_ROOT>,
12018cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_CSI1_ROOT>,
12028cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_DISP_AXI_ROOT>,
12038cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_DISP_APB_ROOT>,
12048cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_DISP_ROOT>,
12058cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_DSI_CORE>,
12068cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_DSI_PHY_REF>,
12078cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_CSI1_CORE>,
12088cc087a1SEmmanuel Vadot					 <&clk IMX8MM_CLK_CSI1_PHY_REF>;
12098cc087a1SEmmanuel Vadot				clock-names = "csi-bridge-axi","csi-bridge-apb",
12108cc087a1SEmmanuel Vadot					      "csi-bridge-core", "lcdif-axi",
12118cc087a1SEmmanuel Vadot					      "lcdif-apb", "lcdif-pix",
12128cc087a1SEmmanuel Vadot					      "dsi-pclk", "dsi-ref",
12138cc087a1SEmmanuel Vadot					      "csi-aclk", "csi-pclk";
12148cc087a1SEmmanuel Vadot				#power-domain-cells = <1>;
12158cc087a1SEmmanuel Vadot			};
12168cc087a1SEmmanuel Vadot
1217e67e8565SEmmanuel Vadot			mipi_csi: mipi-csi@32e30000 {
1218e67e8565SEmmanuel Vadot				compatible = "fsl,imx8mm-mipi-csi2";
1219e67e8565SEmmanuel Vadot				reg = <0x32e30000 0x1000>;
1220e67e8565SEmmanuel Vadot				interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
1221f126890aSEmmanuel Vadot				assigned-clocks = <&clk IMX8MM_CLK_CSI1_CORE>;
1222f126890aSEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_1000M>;
1223f126890aSEmmanuel Vadot
1224e67e8565SEmmanuel Vadot				clock-frequency = <333000000>;
1225e67e8565SEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>,
1226e67e8565SEmmanuel Vadot					 <&clk IMX8MM_CLK_CSI1_ROOT>,
1227e67e8565SEmmanuel Vadot					 <&clk IMX8MM_CLK_CSI1_PHY_REF>,
1228e67e8565SEmmanuel Vadot					 <&clk IMX8MM_CLK_DISP_AXI_ROOT>;
1229e67e8565SEmmanuel Vadot				clock-names = "pclk", "wrap", "phy", "axi";
1230e67e8565SEmmanuel Vadot				power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_MIPI_CSI>;
1231e67e8565SEmmanuel Vadot				status = "disabled";
1232e67e8565SEmmanuel Vadot
1233e67e8565SEmmanuel Vadot				ports {
1234e67e8565SEmmanuel Vadot					#address-cells = <1>;
1235e67e8565SEmmanuel Vadot					#size-cells = <0>;
1236e67e8565SEmmanuel Vadot
1237e67e8565SEmmanuel Vadot					port@0 {
1238e67e8565SEmmanuel Vadot						reg = <0>;
1239e67e8565SEmmanuel Vadot					};
1240e67e8565SEmmanuel Vadot
1241e67e8565SEmmanuel Vadot					port@1 {
1242e67e8565SEmmanuel Vadot						reg = <1>;
1243e67e8565SEmmanuel Vadot
1244e67e8565SEmmanuel Vadot						imx8mm_mipi_csi_out: endpoint {
1245e67e8565SEmmanuel Vadot							remote-endpoint = <&csi_in>;
1246e67e8565SEmmanuel Vadot						};
1247e67e8565SEmmanuel Vadot					};
1248e67e8565SEmmanuel Vadot				};
1249e67e8565SEmmanuel Vadot			};
1250e67e8565SEmmanuel Vadot
1251c66ec88fSEmmanuel Vadot			usbotg1: usb@32e40000 {
1252fac71e4eSEmmanuel Vadot				compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
1253c66ec88fSEmmanuel Vadot				reg = <0x32e40000 0x200>;
1254c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
1255c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
1256c66ec88fSEmmanuel Vadot				clock-names = "usb1_ctrl_root_clk";
1257c66ec88fSEmmanuel Vadot				assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
1258c66ec88fSEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
1259354d7675SEmmanuel Vadot				phys = <&usbphynop1>;
1260c66ec88fSEmmanuel Vadot				fsl,usbmisc = <&usbmisc1 0>;
12617ef62cebSEmmanuel Vadot				power-domains = <&pgc_hsiomix>;
1262c66ec88fSEmmanuel Vadot				status = "disabled";
1263c66ec88fSEmmanuel Vadot			};
1264c66ec88fSEmmanuel Vadot
1265c66ec88fSEmmanuel Vadot			usbmisc1: usbmisc@32e40200 {
1266fac71e4eSEmmanuel Vadot				compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
1267fac71e4eSEmmanuel Vadot					     "fsl,imx6q-usbmisc";
1268c66ec88fSEmmanuel Vadot				#index-cells = <1>;
1269c66ec88fSEmmanuel Vadot				reg = <0x32e40200 0x200>;
1270c66ec88fSEmmanuel Vadot			};
1271c66ec88fSEmmanuel Vadot
1272c66ec88fSEmmanuel Vadot			usbotg2: usb@32e50000 {
1273fac71e4eSEmmanuel Vadot				compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
1274c66ec88fSEmmanuel Vadot				reg = <0x32e50000 0x200>;
1275c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
1276c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
1277c66ec88fSEmmanuel Vadot				clock-names = "usb1_ctrl_root_clk";
1278c66ec88fSEmmanuel Vadot				assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
1279c66ec88fSEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
1280354d7675SEmmanuel Vadot				phys = <&usbphynop2>;
1281c66ec88fSEmmanuel Vadot				fsl,usbmisc = <&usbmisc2 0>;
12827ef62cebSEmmanuel Vadot				power-domains = <&pgc_hsiomix>;
1283c66ec88fSEmmanuel Vadot				status = "disabled";
1284c66ec88fSEmmanuel Vadot			};
1285c66ec88fSEmmanuel Vadot
1286c66ec88fSEmmanuel Vadot			usbmisc2: usbmisc@32e50200 {
1287fac71e4eSEmmanuel Vadot				compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
1288fac71e4eSEmmanuel Vadot					     "fsl,imx6q-usbmisc";
1289c66ec88fSEmmanuel Vadot				#index-cells = <1>;
1290c66ec88fSEmmanuel Vadot				reg = <0x32e50200 0x200>;
1291c66ec88fSEmmanuel Vadot			};
1292c66ec88fSEmmanuel Vadot
1293c9ccf3a3SEmmanuel Vadot			pcie_phy: pcie-phy@32f00000 {
1294c9ccf3a3SEmmanuel Vadot				compatible = "fsl,imx8mm-pcie-phy";
1295c9ccf3a3SEmmanuel Vadot				reg = <0x32f00000 0x10000>;
1296c9ccf3a3SEmmanuel Vadot				clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
1297c9ccf3a3SEmmanuel Vadot				clock-names = "ref";
1298c9ccf3a3SEmmanuel Vadot				assigned-clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
1299c9ccf3a3SEmmanuel Vadot				assigned-clock-rates = <100000000>;
1300c9ccf3a3SEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_100M>;
1301c9ccf3a3SEmmanuel Vadot				resets = <&src IMX8MQ_RESET_PCIEPHY>;
1302c9ccf3a3SEmmanuel Vadot				reset-names = "pciephy";
1303c9ccf3a3SEmmanuel Vadot				#phy-cells = <0>;
1304c9ccf3a3SEmmanuel Vadot				status = "disabled";
1305c9ccf3a3SEmmanuel Vadot			};
1306c66ec88fSEmmanuel Vadot		};
1307c66ec88fSEmmanuel Vadot
1308c66ec88fSEmmanuel Vadot		dma_apbh: dma-controller@33000000 {
1309c66ec88fSEmmanuel Vadot			compatible = "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh";
1310c66ec88fSEmmanuel Vadot			reg = <0x33000000 0x2000>;
1311c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1312c66ec88fSEmmanuel Vadot				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1313c66ec88fSEmmanuel Vadot				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1314c66ec88fSEmmanuel Vadot				     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1315c66ec88fSEmmanuel Vadot			#dma-cells = <1>;
1316c66ec88fSEmmanuel Vadot			dma-channels = <4>;
1317c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>;
1318c66ec88fSEmmanuel Vadot		};
1319c66ec88fSEmmanuel Vadot
1320c66ec88fSEmmanuel Vadot		gpmi: nand-controller@33002000 {
1321c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mm-gpmi-nand", "fsl,imx7d-gpmi-nand";
1322c66ec88fSEmmanuel Vadot			#address-cells = <1>;
13237ef62cebSEmmanuel Vadot			#size-cells = <0>;
1324c66ec88fSEmmanuel Vadot			reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
1325c66ec88fSEmmanuel Vadot			reg-names = "gpmi-nand", "bch";
1326c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1327c66ec88fSEmmanuel Vadot			interrupt-names = "bch";
1328c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_NAND_ROOT>,
1329c66ec88fSEmmanuel Vadot				 <&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>;
1330c66ec88fSEmmanuel Vadot			clock-names = "gpmi_io", "gpmi_bch_apb";
1331c66ec88fSEmmanuel Vadot			dmas = <&dma_apbh 0>;
1332c66ec88fSEmmanuel Vadot			dma-names = "rx-tx";
1333c66ec88fSEmmanuel Vadot			status = "disabled";
1334c66ec88fSEmmanuel Vadot		};
1335c66ec88fSEmmanuel Vadot
1336c9ccf3a3SEmmanuel Vadot		pcie0: pcie@33800000 {
1337c9ccf3a3SEmmanuel Vadot			compatible = "fsl,imx8mm-pcie";
1338c9ccf3a3SEmmanuel Vadot			reg = <0x33800000 0x400000>, <0x1ff00000 0x80000>;
1339c9ccf3a3SEmmanuel Vadot			reg-names = "dbi", "config";
1340c9ccf3a3SEmmanuel Vadot			#address-cells = <3>;
1341c9ccf3a3SEmmanuel Vadot			#size-cells = <2>;
1342c9ccf3a3SEmmanuel Vadot			device_type = "pci";
1343c9ccf3a3SEmmanuel Vadot			bus-range = <0x00 0xff>;
1344aa1a8ff2SEmmanuel Vadot			ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000>, /* downstream I/O 64KB */
1345aa1a8ff2SEmmanuel Vadot				 <0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */
1346c9ccf3a3SEmmanuel Vadot			num-lanes = <1>;
1347c9ccf3a3SEmmanuel Vadot			num-viewport = <4>;
1348c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1349c9ccf3a3SEmmanuel Vadot			interrupt-names = "msi";
1350c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <1>;
1351c9ccf3a3SEmmanuel Vadot			interrupt-map-mask = <0 0 0 0x7>;
1352c9ccf3a3SEmmanuel Vadot			interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1353c9ccf3a3SEmmanuel Vadot					<0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
1354c9ccf3a3SEmmanuel Vadot					<0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1355c9ccf3a3SEmmanuel Vadot					<0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1356c9ccf3a3SEmmanuel Vadot			fsl,max-link-speed = <2>;
1357c9ccf3a3SEmmanuel Vadot			linux,pci-domain = <0>;
1358cb7aa33aSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>,
1359cb7aa33aSEmmanuel Vadot				 <&clk IMX8MM_CLK_PCIE1_PHY>,
1360cb7aa33aSEmmanuel Vadot				 <&clk IMX8MM_CLK_PCIE1_AUX>;
1361cb7aa33aSEmmanuel Vadot			clock-names = "pcie", "pcie_bus", "pcie_aux";
1362c9ccf3a3SEmmanuel Vadot			power-domains = <&pgc_pcie>;
1363c9ccf3a3SEmmanuel Vadot			resets = <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
1364c9ccf3a3SEmmanuel Vadot				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
1365c9ccf3a3SEmmanuel Vadot			reset-names = "apps", "turnoff";
1366c9ccf3a3SEmmanuel Vadot			phys = <&pcie_phy>;
1367c9ccf3a3SEmmanuel Vadot			phy-names = "pcie-phy";
1368c9ccf3a3SEmmanuel Vadot			status = "disabled";
1369c9ccf3a3SEmmanuel Vadot		};
1370c9ccf3a3SEmmanuel Vadot
1371fac71e4eSEmmanuel Vadot		pcie0_ep: pcie-ep@33800000 {
1372fac71e4eSEmmanuel Vadot			compatible = "fsl,imx8mm-pcie-ep";
1373fac71e4eSEmmanuel Vadot			reg = <0x33800000 0x400000>,
1374fac71e4eSEmmanuel Vadot			      <0x18000000 0x8000000>;
1375fac71e4eSEmmanuel Vadot			reg-names = "dbi", "addr_space";
1376fac71e4eSEmmanuel Vadot			num-lanes = <1>;
1377fac71e4eSEmmanuel Vadot			interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
1378fac71e4eSEmmanuel Vadot			interrupt-names = "dma";
1379fac71e4eSEmmanuel Vadot			fsl,max-link-speed = <2>;
1380fac71e4eSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>,
1381fac71e4eSEmmanuel Vadot				 <&clk IMX8MM_CLK_PCIE1_PHY>,
1382fac71e4eSEmmanuel Vadot				 <&clk IMX8MM_CLK_PCIE1_AUX>;
1383fac71e4eSEmmanuel Vadot			clock-names = "pcie", "pcie_bus", "pcie_aux";
1384fac71e4eSEmmanuel Vadot			power-domains = <&pgc_pcie>;
1385fac71e4eSEmmanuel Vadot			resets = <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
1386fac71e4eSEmmanuel Vadot				 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
1387fac71e4eSEmmanuel Vadot			reset-names = "apps", "turnoff";
1388fac71e4eSEmmanuel Vadot			phys = <&pcie_phy>;
1389fac71e4eSEmmanuel Vadot			phy-names = "pcie-phy";
1390fac71e4eSEmmanuel Vadot			num-ib-windows = <4>;
1391fac71e4eSEmmanuel Vadot			num-ob-windows = <4>;
1392fac71e4eSEmmanuel Vadot			status = "disabled";
1393fac71e4eSEmmanuel Vadot		};
1394fac71e4eSEmmanuel Vadot
13958cc087a1SEmmanuel Vadot		gpu_3d: gpu@38000000 {
13968cc087a1SEmmanuel Vadot			compatible = "vivante,gc";
13978cc087a1SEmmanuel Vadot			reg = <0x38000000 0x8000>;
13988cc087a1SEmmanuel Vadot			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
13998cc087a1SEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_GPU_AHB>,
14008cc087a1SEmmanuel Vadot				 <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
14018cc087a1SEmmanuel Vadot				 <&clk IMX8MM_CLK_GPU3D_ROOT>,
14028cc087a1SEmmanuel Vadot				 <&clk IMX8MM_CLK_GPU3D_ROOT>;
14038cc087a1SEmmanuel Vadot			clock-names = "reg", "bus", "core", "shader";
14048cc087a1SEmmanuel Vadot			assigned-clocks = <&clk IMX8MM_CLK_GPU3D_CORE>,
14058cc087a1SEmmanuel Vadot					  <&clk IMX8MM_GPU_PLL_OUT>;
14068cc087a1SEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
1407*8d13bc63SEmmanuel Vadot			assigned-clock-rates = <0>, <800000000>;
14088cc087a1SEmmanuel Vadot			power-domains = <&pgc_gpu>;
14098cc087a1SEmmanuel Vadot		};
14108cc087a1SEmmanuel Vadot
14118cc087a1SEmmanuel Vadot		gpu_2d: gpu@38008000 {
14128cc087a1SEmmanuel Vadot			compatible = "vivante,gc";
14138cc087a1SEmmanuel Vadot			reg = <0x38008000 0x8000>;
14148cc087a1SEmmanuel Vadot			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
14158cc087a1SEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_GPU_AHB>,
14168cc087a1SEmmanuel Vadot				 <&clk IMX8MM_CLK_GPU_BUS_ROOT>,
14178cc087a1SEmmanuel Vadot				 <&clk IMX8MM_CLK_GPU2D_ROOT>;
14188cc087a1SEmmanuel Vadot			clock-names = "reg", "bus", "core";
14198cc087a1SEmmanuel Vadot			assigned-clocks = <&clk IMX8MM_CLK_GPU2D_CORE>,
14208cc087a1SEmmanuel Vadot					  <&clk IMX8MM_GPU_PLL_OUT>;
14218cc087a1SEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MM_GPU_PLL_OUT>;
1422*8d13bc63SEmmanuel Vadot			assigned-clock-rates = <0>, <800000000>;
14238cc087a1SEmmanuel Vadot			power-domains = <&pgc_gpu>;
14248cc087a1SEmmanuel Vadot		};
14258cc087a1SEmmanuel Vadot
1426c9ccf3a3SEmmanuel Vadot		vpu_g1: video-codec@38300000 {
1427c9ccf3a3SEmmanuel Vadot			compatible = "nxp,imx8mm-vpu-g1";
1428c9ccf3a3SEmmanuel Vadot			reg = <0x38300000 0x10000>;
1429c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1430c9ccf3a3SEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_VPU_G1_ROOT>;
1431c9ccf3a3SEmmanuel Vadot			power-domains = <&vpu_blk_ctrl IMX8MM_VPUBLK_PD_G1>;
1432c9ccf3a3SEmmanuel Vadot		};
1433c9ccf3a3SEmmanuel Vadot
1434c9ccf3a3SEmmanuel Vadot		vpu_g2: video-codec@38310000 {
1435c9ccf3a3SEmmanuel Vadot			compatible = "nxp,imx8mq-vpu-g2";
1436c9ccf3a3SEmmanuel Vadot			reg = <0x38310000 0x10000>;
1437c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1438c9ccf3a3SEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_VPU_G2_ROOT>;
1439c9ccf3a3SEmmanuel Vadot			power-domains = <&vpu_blk_ctrl IMX8MM_VPUBLK_PD_G2>;
1440c9ccf3a3SEmmanuel Vadot		};
1441c9ccf3a3SEmmanuel Vadot
14428cc087a1SEmmanuel Vadot		vpu_blk_ctrl: blk-ctrl@38330000 {
14438cc087a1SEmmanuel Vadot			compatible = "fsl,imx8mm-vpu-blk-ctrl", "syscon";
14448cc087a1SEmmanuel Vadot			reg = <0x38330000 0x100>;
14458cc087a1SEmmanuel Vadot			power-domains = <&pgc_vpumix>, <&pgc_vpu_g1>,
14468cc087a1SEmmanuel Vadot					<&pgc_vpu_g2>, <&pgc_vpu_h1>;
14478cc087a1SEmmanuel Vadot			power-domain-names = "bus", "g1", "g2", "h1";
14488cc087a1SEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_VPU_G1_ROOT>,
14498cc087a1SEmmanuel Vadot				 <&clk IMX8MM_CLK_VPU_G2_ROOT>,
14508cc087a1SEmmanuel Vadot				 <&clk IMX8MM_CLK_VPU_H1_ROOT>;
14518cc087a1SEmmanuel Vadot			clock-names = "g1", "g2", "h1";
1452c9ccf3a3SEmmanuel Vadot			assigned-clocks = <&clk IMX8MM_CLK_VPU_G1>,
1453c9ccf3a3SEmmanuel Vadot					  <&clk IMX8MM_CLK_VPU_G2>;
1454c9ccf3a3SEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MM_VPU_PLL_OUT>,
1455c9ccf3a3SEmmanuel Vadot						 <&clk IMX8MM_VPU_PLL_OUT>;
1456c9ccf3a3SEmmanuel Vadot			assigned-clock-rates = <600000000>,
1457c9ccf3a3SEmmanuel Vadot					       <600000000>;
14588cc087a1SEmmanuel Vadot			#power-domain-cells = <1>;
14598cc087a1SEmmanuel Vadot		};
14608cc087a1SEmmanuel Vadot
1461c66ec88fSEmmanuel Vadot		gic: interrupt-controller@38800000 {
1462c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v3";
1463c66ec88fSEmmanuel Vadot			reg = <0x38800000 0x10000>, /* GIC Dist */
1464c66ec88fSEmmanuel Vadot			      <0x38880000 0xc0000>; /* GICR (RD_base + SGI_base) */
1465c66ec88fSEmmanuel Vadot			#interrupt-cells = <3>;
1466c66ec88fSEmmanuel Vadot			interrupt-controller;
1467c66ec88fSEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1468c66ec88fSEmmanuel Vadot		};
1469c66ec88fSEmmanuel Vadot
1470c66ec88fSEmmanuel Vadot		ddrc: memory-controller@3d400000 {
1471c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mm-ddrc", "fsl,imx8m-ddrc";
1472c66ec88fSEmmanuel Vadot			reg = <0x3d400000 0x400000>;
1473c66ec88fSEmmanuel Vadot			clock-names = "core", "pll", "alt", "apb";
1474c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MM_CLK_DRAM_CORE>,
1475c66ec88fSEmmanuel Vadot				 <&clk IMX8MM_DRAM_PLL>,
1476c66ec88fSEmmanuel Vadot				 <&clk IMX8MM_CLK_DRAM_ALT>,
1477c66ec88fSEmmanuel Vadot				 <&clk IMX8MM_CLK_DRAM_APB>;
1478c66ec88fSEmmanuel Vadot		};
1479c66ec88fSEmmanuel Vadot
1480c66ec88fSEmmanuel Vadot		ddr-pmu@3d800000 {
1481c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mm-ddr-pmu", "fsl,imx8m-ddr-pmu";
1482c66ec88fSEmmanuel Vadot			reg = <0x3d800000 0x400000>;
1483c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1484c66ec88fSEmmanuel Vadot		};
1485c66ec88fSEmmanuel Vadot	};
1486c66ec88fSEmmanuel Vadot};
1487