1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright 2017 NXP
4c66ec88fSEmmanuel Vadot * Copyright (C) 2017-2018 Pengutronix, Lucas Stach <kernel@pengutronix.de>
5c66ec88fSEmmanuel Vadot */
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/imx8mq-clock.h>
8c66ec88fSEmmanuel Vadot#include <dt-bindings/power/imx8mq-power.h>
9c66ec88fSEmmanuel Vadot#include <dt-bindings/reset/imx8mq-reset.h>
10c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
11c66ec88fSEmmanuel Vadot#include "dt-bindings/input/input.h"
12c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
13c66ec88fSEmmanuel Vadot#include <dt-bindings/thermal/thermal.h>
145def4c47SEmmanuel Vadot#include <dt-bindings/interconnect/imx8mq.h>
15c66ec88fSEmmanuel Vadot#include "imx8mq-pinfunc.h"
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel Vadot/ {
18c66ec88fSEmmanuel Vadot	interrupt-parent = <&gpc>;
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadot	#address-cells = <2>;
21c66ec88fSEmmanuel Vadot	#size-cells = <2>;
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot	aliases {
24c66ec88fSEmmanuel Vadot		ethernet0 = &fec1;
25c66ec88fSEmmanuel Vadot		gpio0 = &gpio1;
26c66ec88fSEmmanuel Vadot		gpio1 = &gpio2;
27c66ec88fSEmmanuel Vadot		gpio2 = &gpio3;
28c66ec88fSEmmanuel Vadot		gpio3 = &gpio4;
29c66ec88fSEmmanuel Vadot		gpio4 = &gpio5;
30c66ec88fSEmmanuel Vadot		i2c0 = &i2c1;
31c66ec88fSEmmanuel Vadot		i2c1 = &i2c2;
32c66ec88fSEmmanuel Vadot		i2c2 = &i2c3;
33c66ec88fSEmmanuel Vadot		i2c3 = &i2c4;
34c66ec88fSEmmanuel Vadot		mmc0 = &usdhc1;
35c66ec88fSEmmanuel Vadot		mmc1 = &usdhc2;
36c66ec88fSEmmanuel Vadot		serial0 = &uart1;
37c66ec88fSEmmanuel Vadot		serial1 = &uart2;
38c66ec88fSEmmanuel Vadot		serial2 = &uart3;
39c66ec88fSEmmanuel Vadot		serial3 = &uart4;
40c66ec88fSEmmanuel Vadot		spi0 = &ecspi1;
41c66ec88fSEmmanuel Vadot		spi1 = &ecspi2;
42c66ec88fSEmmanuel Vadot		spi2 = &ecspi3;
43c66ec88fSEmmanuel Vadot	};
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot	ckil: clock-ckil {
46c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
47c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
48c66ec88fSEmmanuel Vadot		clock-frequency = <32768>;
49c66ec88fSEmmanuel Vadot		clock-output-names = "ckil";
50c66ec88fSEmmanuel Vadot	};
51c66ec88fSEmmanuel Vadot
52c66ec88fSEmmanuel Vadot	osc_25m: clock-osc-25m {
53c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
54c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
55c66ec88fSEmmanuel Vadot		clock-frequency = <25000000>;
56c66ec88fSEmmanuel Vadot		clock-output-names = "osc_25m";
57c66ec88fSEmmanuel Vadot	};
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot	osc_27m: clock-osc-27m {
60c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
61c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
62c66ec88fSEmmanuel Vadot		clock-frequency = <27000000>;
63c66ec88fSEmmanuel Vadot		clock-output-names = "osc_27m";
64c66ec88fSEmmanuel Vadot	};
65c66ec88fSEmmanuel Vadot
66d5b0e70fSEmmanuel Vadot	hdmi_phy_27m: clock-hdmi-phy-27m {
67d5b0e70fSEmmanuel Vadot		compatible = "fixed-clock";
68d5b0e70fSEmmanuel Vadot		#clock-cells = <0>;
69d5b0e70fSEmmanuel Vadot		clock-frequency = <27000000>;
70d5b0e70fSEmmanuel Vadot		clock-output-names = "hdmi_phy_27m";
71d5b0e70fSEmmanuel Vadot	};
72d5b0e70fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot	clk_ext1: clock-ext1 {
74c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
75c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
76c66ec88fSEmmanuel Vadot		clock-frequency = <133000000>;
77c66ec88fSEmmanuel Vadot		clock-output-names = "clk_ext1";
78c66ec88fSEmmanuel Vadot	};
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot	clk_ext2: clock-ext2 {
81c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
82c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
83c66ec88fSEmmanuel Vadot		clock-frequency = <133000000>;
84c66ec88fSEmmanuel Vadot		clock-output-names = "clk_ext2";
85c66ec88fSEmmanuel Vadot	};
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot	clk_ext3: clock-ext3 {
88c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
89c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
90c66ec88fSEmmanuel Vadot		clock-frequency = <133000000>;
91c66ec88fSEmmanuel Vadot		clock-output-names = "clk_ext3";
92c66ec88fSEmmanuel Vadot	};
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot	clk_ext4: clock-ext4 {
95c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
96c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
97c66ec88fSEmmanuel Vadot		clock-frequency = <133000000>;
98c66ec88fSEmmanuel Vadot		clock-output-names = "clk_ext4";
99c66ec88fSEmmanuel Vadot	};
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot	cpus {
102c66ec88fSEmmanuel Vadot		#address-cells = <1>;
103c66ec88fSEmmanuel Vadot		#size-cells = <0>;
104c66ec88fSEmmanuel Vadot
105c66ec88fSEmmanuel Vadot		A53_0: cpu@0 {
106c66ec88fSEmmanuel Vadot			device_type = "cpu";
107c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
108c66ec88fSEmmanuel Vadot			reg = <0x0>;
109c66ec88fSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
110c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_ARM>;
111c66ec88fSEmmanuel Vadot			enable-method = "psci";
112e67e8565SEmmanuel Vadot			i-cache-size = <0x8000>;
113e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
114e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
115e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
116e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
117e67e8565SEmmanuel Vadot			d-cache-sets = <128>;
118c66ec88fSEmmanuel Vadot			next-level-cache = <&A53_L2>;
119c66ec88fSEmmanuel Vadot			operating-points-v2 = <&a53_opp_table>;
120c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
121c66ec88fSEmmanuel Vadot			nvmem-cells = <&cpu_speed_grade>;
122c66ec88fSEmmanuel Vadot			nvmem-cell-names = "speed_grade";
123c66ec88fSEmmanuel Vadot		};
124c66ec88fSEmmanuel Vadot
125c66ec88fSEmmanuel Vadot		A53_1: cpu@1 {
126c66ec88fSEmmanuel Vadot			device_type = "cpu";
127c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
128c66ec88fSEmmanuel Vadot			reg = <0x1>;
129c66ec88fSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
130c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_ARM>;
131c66ec88fSEmmanuel Vadot			enable-method = "psci";
132e67e8565SEmmanuel Vadot			i-cache-size = <0x8000>;
133e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
134e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
135e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
136e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
137e67e8565SEmmanuel Vadot			d-cache-sets = <128>;
138c66ec88fSEmmanuel Vadot			next-level-cache = <&A53_L2>;
139c66ec88fSEmmanuel Vadot			operating-points-v2 = <&a53_opp_table>;
140c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
141c66ec88fSEmmanuel Vadot		};
142c66ec88fSEmmanuel Vadot
143c66ec88fSEmmanuel Vadot		A53_2: cpu@2 {
144c66ec88fSEmmanuel Vadot			device_type = "cpu";
145c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
146c66ec88fSEmmanuel Vadot			reg = <0x2>;
147c66ec88fSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
148c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_ARM>;
149c66ec88fSEmmanuel Vadot			enable-method = "psci";
150e67e8565SEmmanuel Vadot			i-cache-size = <0x8000>;
151e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
152e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
153e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
154e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
155e67e8565SEmmanuel Vadot			d-cache-sets = <128>;
156c66ec88fSEmmanuel Vadot			next-level-cache = <&A53_L2>;
157c66ec88fSEmmanuel Vadot			operating-points-v2 = <&a53_opp_table>;
158c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
159c66ec88fSEmmanuel Vadot		};
160c66ec88fSEmmanuel Vadot
161c66ec88fSEmmanuel Vadot		A53_3: cpu@3 {
162c66ec88fSEmmanuel Vadot			device_type = "cpu";
163c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
164c66ec88fSEmmanuel Vadot			reg = <0x3>;
165c66ec88fSEmmanuel Vadot			clock-latency = <61036>; /* two CLK32 periods */
166c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_ARM>;
167c66ec88fSEmmanuel Vadot			enable-method = "psci";
168e67e8565SEmmanuel Vadot			i-cache-size = <0x8000>;
169e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
170e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
171e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
172e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
173e67e8565SEmmanuel Vadot			d-cache-sets = <128>;
174c66ec88fSEmmanuel Vadot			next-level-cache = <&A53_L2>;
175c66ec88fSEmmanuel Vadot			operating-points-v2 = <&a53_opp_table>;
176c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
177c66ec88fSEmmanuel Vadot		};
178c66ec88fSEmmanuel Vadot
179c66ec88fSEmmanuel Vadot		A53_L2: l2-cache0 {
180c66ec88fSEmmanuel Vadot			compatible = "cache";
181e67e8565SEmmanuel Vadot			cache-level = <2>;
1828bab661aSEmmanuel Vadot			cache-unified;
183e67e8565SEmmanuel Vadot			cache-size = <0x100000>;
184e67e8565SEmmanuel Vadot			cache-line-size = <64>;
185e67e8565SEmmanuel Vadot			cache-sets = <1024>;
186c66ec88fSEmmanuel Vadot		};
187c66ec88fSEmmanuel Vadot	};
188c66ec88fSEmmanuel Vadot
189c66ec88fSEmmanuel Vadot	a53_opp_table: opp-table {
190c66ec88fSEmmanuel Vadot		compatible = "operating-points-v2";
191c66ec88fSEmmanuel Vadot		opp-shared;
192c66ec88fSEmmanuel Vadot
193c66ec88fSEmmanuel Vadot		opp-800000000 {
194c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <800000000>;
195c66ec88fSEmmanuel Vadot			opp-microvolt = <900000>;
196c66ec88fSEmmanuel Vadot			/* Industrial only */
197c66ec88fSEmmanuel Vadot			opp-supported-hw = <0xf>, <0x4>;
198c66ec88fSEmmanuel Vadot			clock-latency-ns = <150000>;
199c66ec88fSEmmanuel Vadot			opp-suspend;
200c66ec88fSEmmanuel Vadot		};
201c66ec88fSEmmanuel Vadot
202c66ec88fSEmmanuel Vadot		opp-1000000000 {
203c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <1000000000>;
204c66ec88fSEmmanuel Vadot			opp-microvolt = <900000>;
205c66ec88fSEmmanuel Vadot			/* Consumer only */
206c66ec88fSEmmanuel Vadot			opp-supported-hw = <0xe>, <0x3>;
207c66ec88fSEmmanuel Vadot			clock-latency-ns = <150000>;
208c66ec88fSEmmanuel Vadot			opp-suspend;
209c66ec88fSEmmanuel Vadot		};
210c66ec88fSEmmanuel Vadot
211c66ec88fSEmmanuel Vadot		opp-1300000000 {
212c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <1300000000>;
213c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
214c66ec88fSEmmanuel Vadot			opp-supported-hw = <0xc>, <0x4>;
215c66ec88fSEmmanuel Vadot			clock-latency-ns = <150000>;
216c66ec88fSEmmanuel Vadot			opp-suspend;
217c66ec88fSEmmanuel Vadot		};
218c66ec88fSEmmanuel Vadot
219c66ec88fSEmmanuel Vadot		opp-1500000000 {
220c66ec88fSEmmanuel Vadot			opp-hz = /bits/ 64 <1500000000>;
221c66ec88fSEmmanuel Vadot			opp-microvolt = <1000000>;
222c66ec88fSEmmanuel Vadot			opp-supported-hw = <0x8>, <0x3>;
223c66ec88fSEmmanuel Vadot			clock-latency-ns = <150000>;
224c66ec88fSEmmanuel Vadot			opp-suspend;
225c66ec88fSEmmanuel Vadot		};
226c66ec88fSEmmanuel Vadot	};
227c66ec88fSEmmanuel Vadot
228*84943d6fSEmmanuel Vadot	funnel {
229*84943d6fSEmmanuel Vadot		/*
230*84943d6fSEmmanuel Vadot		 * non-configurable funnel don't show up on the AMBA
231*84943d6fSEmmanuel Vadot		 * bus.  As such no need to add "arm,primecell".
232*84943d6fSEmmanuel Vadot		 */
233*84943d6fSEmmanuel Vadot		compatible = "arm,coresight-static-funnel";
234*84943d6fSEmmanuel Vadot
235*84943d6fSEmmanuel Vadot		in-ports {
236*84943d6fSEmmanuel Vadot			#address-cells = <1>;
237*84943d6fSEmmanuel Vadot			#size-cells = <0>;
238*84943d6fSEmmanuel Vadot
239*84943d6fSEmmanuel Vadot			port@0 {
240*84943d6fSEmmanuel Vadot				reg = <0>;
241*84943d6fSEmmanuel Vadot
242*84943d6fSEmmanuel Vadot				ca_funnel_in_port0: endpoint {
243*84943d6fSEmmanuel Vadot					remote-endpoint = <&etm0_out_port>;
244*84943d6fSEmmanuel Vadot				};
245*84943d6fSEmmanuel Vadot			};
246*84943d6fSEmmanuel Vadot
247*84943d6fSEmmanuel Vadot			port@1 {
248*84943d6fSEmmanuel Vadot				reg = <1>;
249*84943d6fSEmmanuel Vadot
250*84943d6fSEmmanuel Vadot				ca_funnel_in_port1: endpoint {
251*84943d6fSEmmanuel Vadot					remote-endpoint = <&etm1_out_port>;
252*84943d6fSEmmanuel Vadot				};
253*84943d6fSEmmanuel Vadot			};
254*84943d6fSEmmanuel Vadot
255*84943d6fSEmmanuel Vadot			port@2 {
256*84943d6fSEmmanuel Vadot				reg = <2>;
257*84943d6fSEmmanuel Vadot
258*84943d6fSEmmanuel Vadot				ca_funnel_in_port2: endpoint {
259*84943d6fSEmmanuel Vadot					remote-endpoint = <&etm2_out_port>;
260*84943d6fSEmmanuel Vadot				};
261*84943d6fSEmmanuel Vadot			};
262*84943d6fSEmmanuel Vadot
263*84943d6fSEmmanuel Vadot			port@3 {
264*84943d6fSEmmanuel Vadot				reg = <3>;
265*84943d6fSEmmanuel Vadot
266*84943d6fSEmmanuel Vadot				ca_funnel_in_port3: endpoint {
267*84943d6fSEmmanuel Vadot					remote-endpoint = <&etm3_out_port>;
268*84943d6fSEmmanuel Vadot				};
269*84943d6fSEmmanuel Vadot			};
270*84943d6fSEmmanuel Vadot		};
271*84943d6fSEmmanuel Vadot
272*84943d6fSEmmanuel Vadot		out-ports {
273*84943d6fSEmmanuel Vadot			port {
274*84943d6fSEmmanuel Vadot				ca_funnel_out_port0: endpoint {
275*84943d6fSEmmanuel Vadot					remote-endpoint = <&hugo_funnel_in_port0>;
276*84943d6fSEmmanuel Vadot				};
277*84943d6fSEmmanuel Vadot			};
278*84943d6fSEmmanuel Vadot		};
279*84943d6fSEmmanuel Vadot	};
280*84943d6fSEmmanuel Vadot
281c66ec88fSEmmanuel Vadot	pmu {
282c66ec88fSEmmanuel Vadot		compatible = "arm,cortex-a53-pmu";
283c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
284c66ec88fSEmmanuel Vadot		interrupt-parent = <&gic>;
285c66ec88fSEmmanuel Vadot	};
286c66ec88fSEmmanuel Vadot
287c66ec88fSEmmanuel Vadot	psci {
288c66ec88fSEmmanuel Vadot		compatible = "arm,psci-1.0";
289c66ec88fSEmmanuel Vadot		method = "smc";
290c66ec88fSEmmanuel Vadot	};
291c66ec88fSEmmanuel Vadot
292c66ec88fSEmmanuel Vadot	thermal-zones {
293c66ec88fSEmmanuel Vadot		cpu_thermal: cpu-thermal {
294c66ec88fSEmmanuel Vadot			polling-delay-passive = <250>;
295c66ec88fSEmmanuel Vadot			polling-delay = <2000>;
296c66ec88fSEmmanuel Vadot			thermal-sensors = <&tmu 0>;
297c66ec88fSEmmanuel Vadot
298c66ec88fSEmmanuel Vadot			trips {
299c66ec88fSEmmanuel Vadot				cpu_alert: cpu-alert {
300c66ec88fSEmmanuel Vadot					temperature = <80000>;
301c66ec88fSEmmanuel Vadot					hysteresis = <2000>;
302c66ec88fSEmmanuel Vadot					type = "passive";
303c66ec88fSEmmanuel Vadot				};
304c66ec88fSEmmanuel Vadot
305c66ec88fSEmmanuel Vadot				cpu-crit {
306c66ec88fSEmmanuel Vadot					temperature = <90000>;
307c66ec88fSEmmanuel Vadot					hysteresis = <2000>;
308c66ec88fSEmmanuel Vadot					type = "critical";
309c66ec88fSEmmanuel Vadot				};
310c66ec88fSEmmanuel Vadot			};
311c66ec88fSEmmanuel Vadot
312c66ec88fSEmmanuel Vadot			cooling-maps {
313c66ec88fSEmmanuel Vadot				map0 {
314c66ec88fSEmmanuel Vadot					trip = <&cpu_alert>;
315c66ec88fSEmmanuel Vadot					cooling-device =
316c66ec88fSEmmanuel Vadot						<&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
317c66ec88fSEmmanuel Vadot						<&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
318c66ec88fSEmmanuel Vadot						<&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
319c66ec88fSEmmanuel Vadot						<&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
320c66ec88fSEmmanuel Vadot				};
321c66ec88fSEmmanuel Vadot			};
322c66ec88fSEmmanuel Vadot		};
323c66ec88fSEmmanuel Vadot
324c66ec88fSEmmanuel Vadot		gpu-thermal {
325c66ec88fSEmmanuel Vadot			polling-delay-passive = <250>;
326c66ec88fSEmmanuel Vadot			polling-delay = <2000>;
327c66ec88fSEmmanuel Vadot			thermal-sensors = <&tmu 1>;
328c66ec88fSEmmanuel Vadot
329c66ec88fSEmmanuel Vadot			trips {
330c66ec88fSEmmanuel Vadot				gpu_alert: gpu-alert {
331c66ec88fSEmmanuel Vadot					temperature = <80000>;
332c66ec88fSEmmanuel Vadot					hysteresis = <2000>;
333c66ec88fSEmmanuel Vadot					type = "passive";
334c66ec88fSEmmanuel Vadot				};
335c66ec88fSEmmanuel Vadot
336c66ec88fSEmmanuel Vadot				gpu-crit {
337c66ec88fSEmmanuel Vadot					temperature = <90000>;
338c66ec88fSEmmanuel Vadot					hysteresis = <2000>;
339c66ec88fSEmmanuel Vadot					type = "critical";
340c66ec88fSEmmanuel Vadot				};
341c66ec88fSEmmanuel Vadot			};
342c66ec88fSEmmanuel Vadot
343c66ec88fSEmmanuel Vadot			cooling-maps {
344c66ec88fSEmmanuel Vadot				map0 {
345c66ec88fSEmmanuel Vadot					trip = <&gpu_alert>;
346c66ec88fSEmmanuel Vadot					cooling-device =
347c66ec88fSEmmanuel Vadot						<&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
348c66ec88fSEmmanuel Vadot				};
349c66ec88fSEmmanuel Vadot			};
350c66ec88fSEmmanuel Vadot		};
351c66ec88fSEmmanuel Vadot
352c66ec88fSEmmanuel Vadot		vpu-thermal {
353c66ec88fSEmmanuel Vadot			polling-delay-passive = <250>;
354c66ec88fSEmmanuel Vadot			polling-delay = <2000>;
355c66ec88fSEmmanuel Vadot			thermal-sensors = <&tmu 2>;
356c66ec88fSEmmanuel Vadot
357c66ec88fSEmmanuel Vadot			trips {
358c66ec88fSEmmanuel Vadot				vpu-crit {
359c66ec88fSEmmanuel Vadot					temperature = <90000>;
360c66ec88fSEmmanuel Vadot					hysteresis = <2000>;
361c66ec88fSEmmanuel Vadot					type = "critical";
362c66ec88fSEmmanuel Vadot				};
363c66ec88fSEmmanuel Vadot			};
364c66ec88fSEmmanuel Vadot		};
365c66ec88fSEmmanuel Vadot	};
366c66ec88fSEmmanuel Vadot
367c66ec88fSEmmanuel Vadot	timer {
368c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-timer";
369c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
370c66ec88fSEmmanuel Vadot		             <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
371c66ec88fSEmmanuel Vadot		             <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
372c66ec88fSEmmanuel Vadot		             <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
373c66ec88fSEmmanuel Vadot		interrupt-parent = <&gic>;
374c66ec88fSEmmanuel Vadot		arm,no-tick-in-suspend;
375c66ec88fSEmmanuel Vadot	};
376c66ec88fSEmmanuel Vadot
377b97ee269SEmmanuel Vadot	soc: soc@0 {
3785def4c47SEmmanuel Vadot		compatible = "fsl,imx8mq-soc", "simple-bus";
379c66ec88fSEmmanuel Vadot		#address-cells = <1>;
380c66ec88fSEmmanuel Vadot		#size-cells = <1>;
381c66ec88fSEmmanuel Vadot		ranges = <0x0 0x0 0x0 0x3e000000>;
382c66ec88fSEmmanuel Vadot		dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
3835def4c47SEmmanuel Vadot		nvmem-cells = <&imx8mq_uid>;
3845def4c47SEmmanuel Vadot		nvmem-cell-names = "soc_unique_id";
385c66ec88fSEmmanuel Vadot
386aa1a8ff2SEmmanuel Vadot		etm0: etm@28440000 {
387aa1a8ff2SEmmanuel Vadot			compatible = "arm,coresight-etm4x", "arm,primecell";
388aa1a8ff2SEmmanuel Vadot			reg = <0x28440000 0x1000>;
389aa1a8ff2SEmmanuel Vadot			cpu = <&A53_0>;
390aa1a8ff2SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_MAIN_AXI>;
391aa1a8ff2SEmmanuel Vadot			clock-names = "apb_pclk";
392aa1a8ff2SEmmanuel Vadot
393aa1a8ff2SEmmanuel Vadot			out-ports {
394aa1a8ff2SEmmanuel Vadot				port {
395aa1a8ff2SEmmanuel Vadot					etm0_out_port: endpoint {
396aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&ca_funnel_in_port0>;
397aa1a8ff2SEmmanuel Vadot					};
398aa1a8ff2SEmmanuel Vadot				};
399aa1a8ff2SEmmanuel Vadot			};
400aa1a8ff2SEmmanuel Vadot		};
401aa1a8ff2SEmmanuel Vadot
402aa1a8ff2SEmmanuel Vadot		etm1: etm@28540000 {
403aa1a8ff2SEmmanuel Vadot			compatible = "arm,coresight-etm4x", "arm,primecell";
404aa1a8ff2SEmmanuel Vadot			reg = <0x28540000 0x1000>;
405aa1a8ff2SEmmanuel Vadot			cpu = <&A53_1>;
406aa1a8ff2SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_MAIN_AXI>;
407aa1a8ff2SEmmanuel Vadot			clock-names = "apb_pclk";
408aa1a8ff2SEmmanuel Vadot
409aa1a8ff2SEmmanuel Vadot			out-ports {
410aa1a8ff2SEmmanuel Vadot				port {
411aa1a8ff2SEmmanuel Vadot					etm1_out_port: endpoint {
412aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&ca_funnel_in_port1>;
413aa1a8ff2SEmmanuel Vadot					};
414aa1a8ff2SEmmanuel Vadot				};
415aa1a8ff2SEmmanuel Vadot			};
416aa1a8ff2SEmmanuel Vadot		};
417aa1a8ff2SEmmanuel Vadot
418aa1a8ff2SEmmanuel Vadot		etm2: etm@28640000 {
419aa1a8ff2SEmmanuel Vadot			compatible = "arm,coresight-etm4x", "arm,primecell";
420aa1a8ff2SEmmanuel Vadot			reg = <0x28640000 0x1000>;
421aa1a8ff2SEmmanuel Vadot			cpu = <&A53_2>;
422aa1a8ff2SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_MAIN_AXI>;
423aa1a8ff2SEmmanuel Vadot			clock-names = "apb_pclk";
424aa1a8ff2SEmmanuel Vadot
425aa1a8ff2SEmmanuel Vadot			out-ports {
426aa1a8ff2SEmmanuel Vadot				port {
427aa1a8ff2SEmmanuel Vadot					etm2_out_port: endpoint {
428aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&ca_funnel_in_port2>;
429aa1a8ff2SEmmanuel Vadot					};
430aa1a8ff2SEmmanuel Vadot				};
431aa1a8ff2SEmmanuel Vadot			};
432aa1a8ff2SEmmanuel Vadot		};
433aa1a8ff2SEmmanuel Vadot
434aa1a8ff2SEmmanuel Vadot		etm3: etm@28740000 {
435aa1a8ff2SEmmanuel Vadot			compatible = "arm,coresight-etm4x", "arm,primecell";
436aa1a8ff2SEmmanuel Vadot			reg = <0x28740000 0x1000>;
437aa1a8ff2SEmmanuel Vadot			cpu = <&A53_3>;
438aa1a8ff2SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_MAIN_AXI>;
439aa1a8ff2SEmmanuel Vadot			clock-names = "apb_pclk";
440aa1a8ff2SEmmanuel Vadot
441aa1a8ff2SEmmanuel Vadot			out-ports {
442aa1a8ff2SEmmanuel Vadot				port {
443aa1a8ff2SEmmanuel Vadot					etm3_out_port: endpoint {
444aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&ca_funnel_in_port3>;
445aa1a8ff2SEmmanuel Vadot					};
446aa1a8ff2SEmmanuel Vadot				};
447aa1a8ff2SEmmanuel Vadot			};
448aa1a8ff2SEmmanuel Vadot		};
449aa1a8ff2SEmmanuel Vadot
450aa1a8ff2SEmmanuel Vadot		funnel@28c03000 {
451aa1a8ff2SEmmanuel Vadot			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
452aa1a8ff2SEmmanuel Vadot			reg = <0x28c03000 0x1000>;
453aa1a8ff2SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_MAIN_AXI>;
454aa1a8ff2SEmmanuel Vadot			clock-names = "apb_pclk";
455aa1a8ff2SEmmanuel Vadot
456aa1a8ff2SEmmanuel Vadot			in-ports {
457aa1a8ff2SEmmanuel Vadot				#address-cells = <1>;
458aa1a8ff2SEmmanuel Vadot				#size-cells = <0>;
459aa1a8ff2SEmmanuel Vadot
460aa1a8ff2SEmmanuel Vadot				port@0 {
461aa1a8ff2SEmmanuel Vadot					reg = <0>;
462aa1a8ff2SEmmanuel Vadot
463aa1a8ff2SEmmanuel Vadot					hugo_funnel_in_port0: endpoint {
464aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&ca_funnel_out_port0>;
465aa1a8ff2SEmmanuel Vadot					};
466aa1a8ff2SEmmanuel Vadot				};
467aa1a8ff2SEmmanuel Vadot
468aa1a8ff2SEmmanuel Vadot				port@1 {
469aa1a8ff2SEmmanuel Vadot					reg = <1>;
470aa1a8ff2SEmmanuel Vadot
471aa1a8ff2SEmmanuel Vadot					hugo_funnel_in_port1: endpoint {
472aa1a8ff2SEmmanuel Vadot					/* M4 input */
473aa1a8ff2SEmmanuel Vadot					};
474aa1a8ff2SEmmanuel Vadot				};
475aa1a8ff2SEmmanuel Vadot				/* the other input ports are not connect to anything */
476aa1a8ff2SEmmanuel Vadot			};
477aa1a8ff2SEmmanuel Vadot
478aa1a8ff2SEmmanuel Vadot			out-ports {
479aa1a8ff2SEmmanuel Vadot				port {
480aa1a8ff2SEmmanuel Vadot					hugo_funnel_out_port0: endpoint {
481aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&etf_in_port>;
482aa1a8ff2SEmmanuel Vadot					};
483aa1a8ff2SEmmanuel Vadot				};
484aa1a8ff2SEmmanuel Vadot			};
485aa1a8ff2SEmmanuel Vadot		};
486aa1a8ff2SEmmanuel Vadot
487aa1a8ff2SEmmanuel Vadot		etf@28c04000 {
488aa1a8ff2SEmmanuel Vadot			compatible = "arm,coresight-tmc", "arm,primecell";
489aa1a8ff2SEmmanuel Vadot			reg = <0x28c04000 0x1000>;
490aa1a8ff2SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_MAIN_AXI>;
491aa1a8ff2SEmmanuel Vadot			clock-names = "apb_pclk";
492aa1a8ff2SEmmanuel Vadot
493aa1a8ff2SEmmanuel Vadot			in-ports {
494aa1a8ff2SEmmanuel Vadot				port {
495aa1a8ff2SEmmanuel Vadot					etf_in_port: endpoint {
496aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&hugo_funnel_out_port0>;
497aa1a8ff2SEmmanuel Vadot					};
498aa1a8ff2SEmmanuel Vadot				};
499aa1a8ff2SEmmanuel Vadot			};
500aa1a8ff2SEmmanuel Vadot
501aa1a8ff2SEmmanuel Vadot			out-ports {
502aa1a8ff2SEmmanuel Vadot				port {
503aa1a8ff2SEmmanuel Vadot					etf_out_port: endpoint {
504aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&etr_in_port>;
505aa1a8ff2SEmmanuel Vadot					};
506aa1a8ff2SEmmanuel Vadot				};
507aa1a8ff2SEmmanuel Vadot			};
508aa1a8ff2SEmmanuel Vadot		};
509aa1a8ff2SEmmanuel Vadot
510aa1a8ff2SEmmanuel Vadot		etr@28c06000 {
511aa1a8ff2SEmmanuel Vadot			compatible = "arm,coresight-tmc", "arm,primecell";
512aa1a8ff2SEmmanuel Vadot			reg = <0x28c06000 0x1000>;
513aa1a8ff2SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_MAIN_AXI>;
514aa1a8ff2SEmmanuel Vadot			clock-names = "apb_pclk";
515aa1a8ff2SEmmanuel Vadot
516aa1a8ff2SEmmanuel Vadot			in-ports {
517aa1a8ff2SEmmanuel Vadot				port {
518aa1a8ff2SEmmanuel Vadot					etr_in_port: endpoint {
519aa1a8ff2SEmmanuel Vadot						remote-endpoint = <&etf_out_port>;
520aa1a8ff2SEmmanuel Vadot					};
521aa1a8ff2SEmmanuel Vadot				};
522aa1a8ff2SEmmanuel Vadot			};
523aa1a8ff2SEmmanuel Vadot		};
524aa1a8ff2SEmmanuel Vadot
525b97ee269SEmmanuel Vadot		aips1: bus@30000000 { /* AIPS1 */
526c66ec88fSEmmanuel Vadot			compatible = "fsl,aips-bus", "simple-bus";
527c66ec88fSEmmanuel Vadot			reg = <0x30000000 0x400000>;
528c66ec88fSEmmanuel Vadot			#address-cells = <1>;
529c66ec88fSEmmanuel Vadot			#size-cells = <1>;
530c66ec88fSEmmanuel Vadot			ranges = <0x30000000 0x30000000 0x400000>;
531c66ec88fSEmmanuel Vadot
532c66ec88fSEmmanuel Vadot			sai1: sai@30010000 {
533c66ec88fSEmmanuel Vadot				#sound-dai-cells = <0>;
534c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-sai";
535c66ec88fSEmmanuel Vadot				reg = <0x30010000 0x10000>;
536c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
537c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_SAI1_IPG>,
538c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_SAI1_ROOT>,
539c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
540c66ec88fSEmmanuel Vadot				clock-names = "bus", "mclk1", "mclk2", "mclk3";
541c66ec88fSEmmanuel Vadot				dmas = <&sdma2 8 24 0>, <&sdma1 9 24 0>;
542c66ec88fSEmmanuel Vadot				dma-names = "rx", "tx";
543c66ec88fSEmmanuel Vadot				status = "disabled";
544c66ec88fSEmmanuel Vadot			};
545c66ec88fSEmmanuel Vadot
546c66ec88fSEmmanuel Vadot			sai6: sai@30030000 {
547c66ec88fSEmmanuel Vadot				#sound-dai-cells = <0>;
548c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-sai";
549c66ec88fSEmmanuel Vadot				reg = <0x30030000 0x10000>;
550c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
551c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_SAI6_IPG>,
552c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_SAI6_ROOT>,
553c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
554c66ec88fSEmmanuel Vadot				clock-names = "bus", "mclk1", "mclk2", "mclk3";
555c66ec88fSEmmanuel Vadot				dmas = <&sdma2 4 24 0>, <&sdma2 5 24 0>;
556c66ec88fSEmmanuel Vadot				dma-names = "rx", "tx";
557c66ec88fSEmmanuel Vadot				status = "disabled";
558c66ec88fSEmmanuel Vadot			};
559c66ec88fSEmmanuel Vadot
560c66ec88fSEmmanuel Vadot			sai5: sai@30040000 {
561c66ec88fSEmmanuel Vadot				#sound-dai-cells = <0>;
562c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-sai";
563c66ec88fSEmmanuel Vadot				reg = <0x30040000 0x10000>;
564c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
565c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_SAI5_IPG>,
566c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_SAI5_ROOT>,
567c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
568c66ec88fSEmmanuel Vadot				clock-names = "bus", "mclk1", "mclk2", "mclk3";
569c66ec88fSEmmanuel Vadot				dmas = <&sdma2 2 24 0>, <&sdma2 3 24 0>;
570c66ec88fSEmmanuel Vadot				dma-names = "rx", "tx";
571c66ec88fSEmmanuel Vadot				status = "disabled";
572c66ec88fSEmmanuel Vadot			};
573c66ec88fSEmmanuel Vadot
574c66ec88fSEmmanuel Vadot			sai4: sai@30050000 {
575c66ec88fSEmmanuel Vadot				#sound-dai-cells = <0>;
576c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-sai";
577c66ec88fSEmmanuel Vadot				reg = <0x30050000 0x10000>;
578c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
579c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_SAI4_IPG>,
580c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_SAI4_ROOT>,
581c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
582c66ec88fSEmmanuel Vadot				clock-names = "bus", "mclk1", "mclk2", "mclk3";
583c66ec88fSEmmanuel Vadot				dmas = <&sdma2 0 24 0>, <&sdma2 1 24 0>;
584c66ec88fSEmmanuel Vadot				dma-names = "rx", "tx";
585c66ec88fSEmmanuel Vadot				status = "disabled";
586c66ec88fSEmmanuel Vadot			};
587c66ec88fSEmmanuel Vadot
588c66ec88fSEmmanuel Vadot			gpio1: gpio@30200000 {
589c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
590c66ec88fSEmmanuel Vadot				reg = <0x30200000 0x10000>;
591c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
592c66ec88fSEmmanuel Vadot				             <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
593c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_GPIO1_ROOT>;
594c66ec88fSEmmanuel Vadot				gpio-controller;
595c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
596c66ec88fSEmmanuel Vadot				interrupt-controller;
597c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
598c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 10 30>;
599c66ec88fSEmmanuel Vadot			};
600c66ec88fSEmmanuel Vadot
601c66ec88fSEmmanuel Vadot			gpio2: gpio@30210000 {
602c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
603c66ec88fSEmmanuel Vadot				reg = <0x30210000 0x10000>;
604c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
605c66ec88fSEmmanuel Vadot				             <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
606c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_GPIO2_ROOT>;
607c66ec88fSEmmanuel Vadot				gpio-controller;
608c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
609c66ec88fSEmmanuel Vadot				interrupt-controller;
610c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
611c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 40 21>;
612c66ec88fSEmmanuel Vadot			};
613c66ec88fSEmmanuel Vadot
614c66ec88fSEmmanuel Vadot			gpio3: gpio@30220000 {
615c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
616c66ec88fSEmmanuel Vadot				reg = <0x30220000 0x10000>;
617c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
618c66ec88fSEmmanuel Vadot				             <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
619c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_GPIO3_ROOT>;
620c66ec88fSEmmanuel Vadot				gpio-controller;
621c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
622c66ec88fSEmmanuel Vadot				interrupt-controller;
623c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
624c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 61 26>;
625c66ec88fSEmmanuel Vadot			};
626c66ec88fSEmmanuel Vadot
627c66ec88fSEmmanuel Vadot			gpio4: gpio@30230000 {
628c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
629c66ec88fSEmmanuel Vadot				reg = <0x30230000 0x10000>;
630c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
631c66ec88fSEmmanuel Vadot				             <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
632c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_GPIO4_ROOT>;
633c66ec88fSEmmanuel Vadot				gpio-controller;
634c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
635c66ec88fSEmmanuel Vadot				interrupt-controller;
636c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
637c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 87 32>;
638c66ec88fSEmmanuel Vadot			};
639c66ec88fSEmmanuel Vadot
640c66ec88fSEmmanuel Vadot			gpio5: gpio@30240000 {
641c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
642c66ec88fSEmmanuel Vadot				reg = <0x30240000 0x10000>;
643c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
644c66ec88fSEmmanuel Vadot				             <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
645c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_GPIO5_ROOT>;
646c66ec88fSEmmanuel Vadot				gpio-controller;
647c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
648c66ec88fSEmmanuel Vadot				interrupt-controller;
649c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
650c66ec88fSEmmanuel Vadot				gpio-ranges = <&iomuxc 0 119 30>;
651c66ec88fSEmmanuel Vadot			};
652c66ec88fSEmmanuel Vadot
653c66ec88fSEmmanuel Vadot			tmu: tmu@30260000 {
654c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-tmu";
655c66ec88fSEmmanuel Vadot				reg = <0x30260000 0x10000>;
656c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
657c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_TMU_ROOT>;
658c66ec88fSEmmanuel Vadot				little-endian;
659c66ec88fSEmmanuel Vadot				fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>;
660e67e8565SEmmanuel Vadot				fsl,tmu-calibration = <0x00000000 0x00000023>,
661e67e8565SEmmanuel Vadot						      <0x00000001 0x00000029>,
662e67e8565SEmmanuel Vadot						      <0x00000002 0x0000002f>,
663e67e8565SEmmanuel Vadot						      <0x00000003 0x00000035>,
664e67e8565SEmmanuel Vadot						      <0x00000004 0x0000003d>,
665e67e8565SEmmanuel Vadot						      <0x00000005 0x00000043>,
666e67e8565SEmmanuel Vadot						      <0x00000006 0x0000004b>,
667e67e8565SEmmanuel Vadot						      <0x00000007 0x00000051>,
668e67e8565SEmmanuel Vadot						      <0x00000008 0x00000057>,
669e67e8565SEmmanuel Vadot						      <0x00000009 0x0000005f>,
670e67e8565SEmmanuel Vadot						      <0x0000000a 0x00000067>,
671e67e8565SEmmanuel Vadot						      <0x0000000b 0x0000006f>,
672c66ec88fSEmmanuel Vadot
673e67e8565SEmmanuel Vadot						      <0x00010000 0x0000001b>,
674e67e8565SEmmanuel Vadot						      <0x00010001 0x00000023>,
675e67e8565SEmmanuel Vadot						      <0x00010002 0x0000002b>,
676e67e8565SEmmanuel Vadot						      <0x00010003 0x00000033>,
677e67e8565SEmmanuel Vadot						      <0x00010004 0x0000003b>,
678e67e8565SEmmanuel Vadot						      <0x00010005 0x00000043>,
679e67e8565SEmmanuel Vadot						      <0x00010006 0x0000004b>,
680e67e8565SEmmanuel Vadot						      <0x00010007 0x00000055>,
681e67e8565SEmmanuel Vadot						      <0x00010008 0x0000005d>,
682e67e8565SEmmanuel Vadot						      <0x00010009 0x00000067>,
683e67e8565SEmmanuel Vadot						      <0x0001000a 0x00000070>,
684c66ec88fSEmmanuel Vadot
685e67e8565SEmmanuel Vadot						      <0x00020000 0x00000017>,
686e67e8565SEmmanuel Vadot						      <0x00020001 0x00000023>,
687e67e8565SEmmanuel Vadot						      <0x00020002 0x0000002d>,
688e67e8565SEmmanuel Vadot						      <0x00020003 0x00000037>,
689e67e8565SEmmanuel Vadot						      <0x00020004 0x00000041>,
690e67e8565SEmmanuel Vadot						      <0x00020005 0x0000004b>,
691e67e8565SEmmanuel Vadot						      <0x00020006 0x00000057>,
692e67e8565SEmmanuel Vadot						      <0x00020007 0x00000063>,
693e67e8565SEmmanuel Vadot						      <0x00020008 0x0000006f>,
694c66ec88fSEmmanuel Vadot
695e67e8565SEmmanuel Vadot						      <0x00030000 0x00000015>,
696e67e8565SEmmanuel Vadot						      <0x00030001 0x00000021>,
697e67e8565SEmmanuel Vadot						      <0x00030002 0x0000002d>,
698e67e8565SEmmanuel Vadot						      <0x00030003 0x00000039>,
699e67e8565SEmmanuel Vadot						      <0x00030004 0x00000045>,
700e67e8565SEmmanuel Vadot						      <0x00030005 0x00000053>,
701e67e8565SEmmanuel Vadot						      <0x00030006 0x0000005f>,
702e67e8565SEmmanuel Vadot						      <0x00030007 0x00000071>;
703c66ec88fSEmmanuel Vadot				#thermal-sensor-cells = <1>;
704c66ec88fSEmmanuel Vadot			};
705c66ec88fSEmmanuel Vadot
706c66ec88fSEmmanuel Vadot			wdog1: watchdog@30280000 {
707c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt";
708c66ec88fSEmmanuel Vadot				reg = <0x30280000 0x10000>;
709c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
710c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_WDOG1_ROOT>;
711c66ec88fSEmmanuel Vadot				status = "disabled";
712c66ec88fSEmmanuel Vadot			};
713c66ec88fSEmmanuel Vadot
714c66ec88fSEmmanuel Vadot			wdog2: watchdog@30290000 {
715c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt";
716c66ec88fSEmmanuel Vadot				reg = <0x30290000 0x10000>;
717c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
718c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_WDOG2_ROOT>;
719c66ec88fSEmmanuel Vadot				status = "disabled";
720c66ec88fSEmmanuel Vadot			};
721c66ec88fSEmmanuel Vadot
722c66ec88fSEmmanuel Vadot			wdog3: watchdog@302a0000 {
723c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt";
724c66ec88fSEmmanuel Vadot				reg = <0x302a0000 0x10000>;
725c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
726c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_WDOG3_ROOT>;
727c66ec88fSEmmanuel Vadot				status = "disabled";
728c66ec88fSEmmanuel Vadot			};
729c66ec88fSEmmanuel Vadot
7307ef62cebSEmmanuel Vadot			sdma2: dma-controller@302c0000 {
731c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma";
732c66ec88fSEmmanuel Vadot				reg = <0x302c0000 0x10000>;
733c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
734c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_SDMA2_ROOT>,
735c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_SDMA2_ROOT>;
736c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb";
737c66ec88fSEmmanuel Vadot				#dma-cells = <3>;
738c66ec88fSEmmanuel Vadot				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
739c66ec88fSEmmanuel Vadot			};
740c66ec88fSEmmanuel Vadot
741c66ec88fSEmmanuel Vadot			lcdif: lcd-controller@30320000 {
742f126890aSEmmanuel Vadot				compatible = "fsl,imx8mq-lcdif", "fsl,imx6sx-lcdif";
743c66ec88fSEmmanuel Vadot				reg = <0x30320000 0x10000>;
744c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
745f126890aSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_LCDIF_PIXEL>,
746f126890aSEmmanuel Vadot					 <&clk IMX8MQ_CLK_DISP_APB_ROOT>,
747f126890aSEmmanuel Vadot					 <&clk IMX8MQ_CLK_DISP_AXI_ROOT>;
748f126890aSEmmanuel Vadot				clock-names = "pix", "axi", "disp_axi";
749c66ec88fSEmmanuel Vadot				assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>,
750c66ec88fSEmmanuel Vadot						  <&clk IMX8MQ_VIDEO_PLL1_BYPASS>,
751c66ec88fSEmmanuel Vadot						  <&clk IMX8MQ_CLK_LCDIF_PIXEL>,
752c66ec88fSEmmanuel Vadot						  <&clk IMX8MQ_VIDEO_PLL1>;
753c66ec88fSEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MQ_CLK_25M>,
754c66ec88fSEmmanuel Vadot						  <&clk IMX8MQ_VIDEO_PLL1>,
755c66ec88fSEmmanuel Vadot						  <&clk IMX8MQ_VIDEO_PLL1_OUT>;
756c66ec88fSEmmanuel Vadot				assigned-clock-rates = <0>, <0>, <0>, <594000000>;
757c66ec88fSEmmanuel Vadot				status = "disabled";
7586be33864SEmmanuel Vadot
759e67e8565SEmmanuel Vadot				port {
7606be33864SEmmanuel Vadot					lcdif_mipi_dsi: endpoint {
7616be33864SEmmanuel Vadot						remote-endpoint = <&mipi_dsi_lcdif_in>;
7626be33864SEmmanuel Vadot					};
7636be33864SEmmanuel Vadot				};
764c66ec88fSEmmanuel Vadot			};
765c66ec88fSEmmanuel Vadot
766c66ec88fSEmmanuel Vadot			iomuxc: pinctrl@30330000 {
767c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-iomuxc";
768c66ec88fSEmmanuel Vadot				reg = <0x30330000 0x10000>;
769c66ec88fSEmmanuel Vadot			};
770c66ec88fSEmmanuel Vadot
771c66ec88fSEmmanuel Vadot			iomuxc_gpr: syscon@30340000 {
772cb7aa33aSEmmanuel Vadot				compatible = "fsl,imx8mq-iomuxc-gpr", "syscon", "simple-mfd";
773c66ec88fSEmmanuel Vadot				reg = <0x30340000 0x10000>;
774c66ec88fSEmmanuel Vadot
775c66ec88fSEmmanuel Vadot				mux: mux-controller {
776c66ec88fSEmmanuel Vadot					compatible = "mmio-mux";
777c66ec88fSEmmanuel Vadot					#mux-control-cells = <1>;
778c66ec88fSEmmanuel Vadot					mux-reg-masks = <0x34 0x00000004>; /* MIPI_MUX_SEL */
779c66ec88fSEmmanuel Vadot				};
780c66ec88fSEmmanuel Vadot			};
781c66ec88fSEmmanuel Vadot
782c66ec88fSEmmanuel Vadot			ocotp: efuse@30350000 {
783c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-ocotp", "syscon";
784c66ec88fSEmmanuel Vadot				reg = <0x30350000 0x10000>;
785c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_OCOTP_ROOT>;
786c66ec88fSEmmanuel Vadot				#address-cells = <1>;
787c66ec88fSEmmanuel Vadot				#size-cells = <1>;
788c66ec88fSEmmanuel Vadot
789cb7aa33aSEmmanuel Vadot				/*
790cb7aa33aSEmmanuel Vadot				 * The register address below maps to the MX8M
791cb7aa33aSEmmanuel Vadot				 * Fusemap Description Table entries this way.
792cb7aa33aSEmmanuel Vadot				 * Assuming
793cb7aa33aSEmmanuel Vadot				 *   reg = <ADDR SIZE>;
794cb7aa33aSEmmanuel Vadot				 * then
795cb7aa33aSEmmanuel Vadot				 *   Fuse Address = (ADDR * 4) + 0x400
796cb7aa33aSEmmanuel Vadot				 * Note that if SIZE is greater than 4, then
797cb7aa33aSEmmanuel Vadot				 * each subsequent fuse is located at offset
798cb7aa33aSEmmanuel Vadot				 * +0x10 in Fusemap Description Table (e.g.
799cb7aa33aSEmmanuel Vadot				 * reg = <0x4 0x8> describes fuses 0x410 and
800cb7aa33aSEmmanuel Vadot				 * 0x420).
801cb7aa33aSEmmanuel Vadot				 */
802cb7aa33aSEmmanuel Vadot				imx8mq_uid: soc-uid@4 { /* 0x410-0x420 */
8035def4c47SEmmanuel Vadot					reg = <0x4 0x8>;
8045def4c47SEmmanuel Vadot				};
8055def4c47SEmmanuel Vadot
806cb7aa33aSEmmanuel Vadot				cpu_speed_grade: speed-grade@10 { /* 0x440 */
807c66ec88fSEmmanuel Vadot					reg = <0x10 4>;
808c66ec88fSEmmanuel Vadot				};
8095def4c47SEmmanuel Vadot
810cb7aa33aSEmmanuel Vadot				fec_mac_address: mac-address@90 { /* 0x640 */
8115def4c47SEmmanuel Vadot					reg = <0x90 6>;
8125def4c47SEmmanuel Vadot				};
813c66ec88fSEmmanuel Vadot			};
814c66ec88fSEmmanuel Vadot
8158bab661aSEmmanuel Vadot			anatop: clock-controller@30360000 {
8168bab661aSEmmanuel Vadot				compatible = "fsl,imx8mq-anatop";
817c66ec88fSEmmanuel Vadot				reg = <0x30360000 0x10000>;
818c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
8198bab661aSEmmanuel Vadot				#clock-cells = <1>;
820c66ec88fSEmmanuel Vadot			};
821c66ec88fSEmmanuel Vadot
822c66ec88fSEmmanuel Vadot			snvs: snvs@30370000 {
823c66ec88fSEmmanuel Vadot				compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
824c66ec88fSEmmanuel Vadot				reg = <0x30370000 0x10000>;
825c66ec88fSEmmanuel Vadot
826c66ec88fSEmmanuel Vadot				snvs_rtc: snvs-rtc-lp {
827c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-mon-rtc-lp";
828c66ec88fSEmmanuel Vadot					regmap = <&snvs>;
829c66ec88fSEmmanuel Vadot					offset = <0x34>;
830c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
831c66ec88fSEmmanuel Vadot						<GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
832c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>;
833c66ec88fSEmmanuel Vadot					clock-names = "snvs-rtc";
834c66ec88fSEmmanuel Vadot				};
835c66ec88fSEmmanuel Vadot
836c66ec88fSEmmanuel Vadot				snvs_pwrkey: snvs-powerkey {
837c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-pwrkey";
838c66ec88fSEmmanuel Vadot					regmap = <&snvs>;
839c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
840c66ec88fSEmmanuel Vadot					clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>;
841c66ec88fSEmmanuel Vadot					clock-names = "snvs-pwrkey";
842c66ec88fSEmmanuel Vadot					linux,keycode = <KEY_POWER>;
843c66ec88fSEmmanuel Vadot					wakeup-source;
844c66ec88fSEmmanuel Vadot					status = "disabled";
845c66ec88fSEmmanuel Vadot				};
846c66ec88fSEmmanuel Vadot			};
847c66ec88fSEmmanuel Vadot
848c66ec88fSEmmanuel Vadot			clk: clock-controller@30380000 {
849c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-ccm";
850c66ec88fSEmmanuel Vadot				reg = <0x30380000 0x10000>;
851c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
852c66ec88fSEmmanuel Vadot				             <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
853c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
854c66ec88fSEmmanuel Vadot				clocks = <&ckil>, <&osc_25m>, <&osc_27m>,
855c66ec88fSEmmanuel Vadot				         <&clk_ext1>, <&clk_ext2>,
856c66ec88fSEmmanuel Vadot				         <&clk_ext3>, <&clk_ext4>;
857c66ec88fSEmmanuel Vadot				clock-names = "ckil", "osc_25m", "osc_27m",
858c66ec88fSEmmanuel Vadot				              "clk_ext1", "clk_ext2",
859c66ec88fSEmmanuel Vadot				              "clk_ext3", "clk_ext4";
860c66ec88fSEmmanuel Vadot				assigned-clocks = <&clk IMX8MQ_CLK_A53_SRC>,
861c66ec88fSEmmanuel Vadot						  <&clk IMX8MQ_CLK_A53_CORE>,
8625def4c47SEmmanuel Vadot						  <&clk IMX8MQ_CLK_NOC>,
8635def4c47SEmmanuel Vadot						  <&clk IMX8MQ_CLK_AUDIO_AHB>,
8645def4c47SEmmanuel Vadot						  <&clk IMX8MQ_AUDIO_PLL1_BYPASS>,
8655def4c47SEmmanuel Vadot						  <&clk IMX8MQ_AUDIO_PLL2_BYPASS>,
8665def4c47SEmmanuel Vadot						  <&clk IMX8MQ_AUDIO_PLL1>,
8675def4c47SEmmanuel Vadot						  <&clk IMX8MQ_AUDIO_PLL2>;
868c66ec88fSEmmanuel Vadot				assigned-clock-rates = <0>, <0>,
8695def4c47SEmmanuel Vadot						       <800000000>,
8705def4c47SEmmanuel Vadot						       <0>,
8715def4c47SEmmanuel Vadot						       <0>,
8725def4c47SEmmanuel Vadot						       <0>,
8735def4c47SEmmanuel Vadot						       <786432000>,
8745def4c47SEmmanuel Vadot						       <722534400>;
875c66ec88fSEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>,
8765def4c47SEmmanuel Vadot							 <&clk IMX8MQ_ARM_PLL_OUT>,
8775def4c47SEmmanuel Vadot							 <0>,
8785def4c47SEmmanuel Vadot							 <&clk IMX8MQ_SYS2_PLL_500M>,
8795def4c47SEmmanuel Vadot							 <&clk IMX8MQ_AUDIO_PLL1>,
8805def4c47SEmmanuel Vadot							 <&clk IMX8MQ_AUDIO_PLL2>;
881c66ec88fSEmmanuel Vadot			};
882c66ec88fSEmmanuel Vadot
883c66ec88fSEmmanuel Vadot			src: reset-controller@30390000 {
884c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-src", "syscon";
885c66ec88fSEmmanuel Vadot				reg = <0x30390000 0x10000>;
886c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
887c66ec88fSEmmanuel Vadot				#reset-cells = <1>;
888c66ec88fSEmmanuel Vadot			};
889c66ec88fSEmmanuel Vadot
890c66ec88fSEmmanuel Vadot			gpc: gpc@303a0000 {
891c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-gpc";
892c66ec88fSEmmanuel Vadot				reg = <0x303a0000 0x10000>;
8936be33864SEmmanuel Vadot				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
894c66ec88fSEmmanuel Vadot				interrupt-parent = <&gic>;
895c66ec88fSEmmanuel Vadot				interrupt-controller;
896c66ec88fSEmmanuel Vadot				#interrupt-cells = <3>;
897c66ec88fSEmmanuel Vadot
898c66ec88fSEmmanuel Vadot				pgc {
899c66ec88fSEmmanuel Vadot					#address-cells = <1>;
900c66ec88fSEmmanuel Vadot					#size-cells = <0>;
901c66ec88fSEmmanuel Vadot
902c66ec88fSEmmanuel Vadot					pgc_mipi: power-domain@0 {
903c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
904c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_MIPI>;
905c66ec88fSEmmanuel Vadot					};
906c66ec88fSEmmanuel Vadot
907c66ec88fSEmmanuel Vadot					/*
908c66ec88fSEmmanuel Vadot					 * As per comment in ATF source code:
909c66ec88fSEmmanuel Vadot					 *
910c66ec88fSEmmanuel Vadot					 * PCIE1 and PCIE2 share the
911c66ec88fSEmmanuel Vadot					 * same reset signal, if we
912c66ec88fSEmmanuel Vadot					 * power down PCIE2, PCIE1
913c66ec88fSEmmanuel Vadot					 * will be held in reset too.
914c66ec88fSEmmanuel Vadot					 *
915c66ec88fSEmmanuel Vadot					 * So instead of creating two
916c66ec88fSEmmanuel Vadot					 * separate power domains for
917c66ec88fSEmmanuel Vadot					 * PCIE1 and PCIE2 we create a
918c66ec88fSEmmanuel Vadot					 * link between both and use
919c66ec88fSEmmanuel Vadot					 * it as a shared PCIE power
920c66ec88fSEmmanuel Vadot					 * domain.
921c66ec88fSEmmanuel Vadot					 */
922c66ec88fSEmmanuel Vadot					pgc_pcie: power-domain@1 {
923c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
924c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_PCIE1>;
925c66ec88fSEmmanuel Vadot						power-domains = <&pgc_pcie2>;
926c66ec88fSEmmanuel Vadot					};
927c66ec88fSEmmanuel Vadot
928c66ec88fSEmmanuel Vadot					pgc_otg1: power-domain@2 {
929c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
930c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_USB_OTG1>;
931c66ec88fSEmmanuel Vadot					};
932c66ec88fSEmmanuel Vadot
933c66ec88fSEmmanuel Vadot					pgc_otg2: power-domain@3 {
934c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
935c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_USB_OTG2>;
936c66ec88fSEmmanuel Vadot					};
937c66ec88fSEmmanuel Vadot
938c66ec88fSEmmanuel Vadot					pgc_ddr1: power-domain@4 {
939c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
940c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_DDR1>;
941c66ec88fSEmmanuel Vadot					};
942c66ec88fSEmmanuel Vadot
943c66ec88fSEmmanuel Vadot					pgc_gpu: power-domain@5 {
944c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
945c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_GPU>;
946c66ec88fSEmmanuel Vadot						clocks = <&clk IMX8MQ_CLK_GPU_ROOT>,
947c66ec88fSEmmanuel Vadot						         <&clk IMX8MQ_CLK_GPU_SHADER_DIV>,
948c66ec88fSEmmanuel Vadot							 <&clk IMX8MQ_CLK_GPU_AXI>,
949c66ec88fSEmmanuel Vadot						         <&clk IMX8MQ_CLK_GPU_AHB>;
950c66ec88fSEmmanuel Vadot					};
951c66ec88fSEmmanuel Vadot
952c66ec88fSEmmanuel Vadot					pgc_vpu: power-domain@6 {
953c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
954c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_VPU>;
955c9ccf3a3SEmmanuel Vadot						clocks = <&clk IMX8MQ_CLK_VPU_DEC_ROOT>,
956c9ccf3a3SEmmanuel Vadot							 <&clk IMX8MQ_CLK_VPU_G1_ROOT>,
957c9ccf3a3SEmmanuel Vadot							 <&clk IMX8MQ_CLK_VPU_G2_ROOT>;
958c9ccf3a3SEmmanuel Vadot						assigned-clocks = <&clk IMX8MQ_CLK_VPU_G1>,
959c9ccf3a3SEmmanuel Vadot								  <&clk IMX8MQ_CLK_VPU_G2>,
960c9ccf3a3SEmmanuel Vadot								  <&clk IMX8MQ_CLK_VPU_BUS>,
961c9ccf3a3SEmmanuel Vadot								  <&clk IMX8MQ_VPU_PLL_BYPASS>;
962c9ccf3a3SEmmanuel Vadot						assigned-clock-parents = <&clk IMX8MQ_VPU_PLL_OUT>,
963c9ccf3a3SEmmanuel Vadot									 <&clk IMX8MQ_VPU_PLL_OUT>,
964c9ccf3a3SEmmanuel Vadot									 <&clk IMX8MQ_SYS1_PLL_800M>,
965c9ccf3a3SEmmanuel Vadot									 <&clk IMX8MQ_VPU_PLL>;
966c9ccf3a3SEmmanuel Vadot						assigned-clock-rates = <600000000>,
967f126890aSEmmanuel Vadot								       <300000000>,
968c9ccf3a3SEmmanuel Vadot								       <800000000>,
969c9ccf3a3SEmmanuel Vadot								       <0>;
970c66ec88fSEmmanuel Vadot					};
971c66ec88fSEmmanuel Vadot
972c66ec88fSEmmanuel Vadot					pgc_disp: power-domain@7 {
973c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
974c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_DISP>;
975c66ec88fSEmmanuel Vadot					};
976c66ec88fSEmmanuel Vadot
977c66ec88fSEmmanuel Vadot					pgc_mipi_csi1: power-domain@8 {
978c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
979c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_MIPI_CSI1>;
980c66ec88fSEmmanuel Vadot					};
981c66ec88fSEmmanuel Vadot
982c66ec88fSEmmanuel Vadot					pgc_mipi_csi2: power-domain@9 {
983c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
984c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_MIPI_CSI2>;
985c66ec88fSEmmanuel Vadot					};
986c66ec88fSEmmanuel Vadot
987c66ec88fSEmmanuel Vadot					pgc_pcie2: power-domain@a {
988c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
989c66ec88fSEmmanuel Vadot						reg = <IMX8M_POWER_DOMAIN_PCIE2>;
990c66ec88fSEmmanuel Vadot					};
991c66ec88fSEmmanuel Vadot				};
992c66ec88fSEmmanuel Vadot			};
993c66ec88fSEmmanuel Vadot		};
994c66ec88fSEmmanuel Vadot
995b97ee269SEmmanuel Vadot		aips2: bus@30400000 { /* AIPS2 */
996c66ec88fSEmmanuel Vadot			compatible = "fsl,aips-bus", "simple-bus";
997c66ec88fSEmmanuel Vadot			reg = <0x30400000 0x400000>;
998c66ec88fSEmmanuel Vadot			#address-cells = <1>;
999c66ec88fSEmmanuel Vadot			#size-cells = <1>;
1000c66ec88fSEmmanuel Vadot			ranges = <0x30400000 0x30400000 0x400000>;
1001c66ec88fSEmmanuel Vadot
1002c66ec88fSEmmanuel Vadot			pwm1: pwm@30660000 {
1003c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
1004c66ec88fSEmmanuel Vadot				reg = <0x30660000 0x10000>;
1005c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1006c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_PWM1_ROOT>,
1007c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_PWM1_ROOT>;
1008c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1009d5b0e70fSEmmanuel Vadot				#pwm-cells = <3>;
1010c66ec88fSEmmanuel Vadot				status = "disabled";
1011c66ec88fSEmmanuel Vadot			};
1012c66ec88fSEmmanuel Vadot
1013c66ec88fSEmmanuel Vadot			pwm2: pwm@30670000 {
1014c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
1015c66ec88fSEmmanuel Vadot				reg = <0x30670000 0x10000>;
1016c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1017c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_PWM2_ROOT>,
1018c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_PWM2_ROOT>;
1019c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1020d5b0e70fSEmmanuel Vadot				#pwm-cells = <3>;
1021c66ec88fSEmmanuel Vadot				status = "disabled";
1022c66ec88fSEmmanuel Vadot			};
1023c66ec88fSEmmanuel Vadot
1024c66ec88fSEmmanuel Vadot			pwm3: pwm@30680000 {
1025c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
1026c66ec88fSEmmanuel Vadot				reg = <0x30680000 0x10000>;
1027c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
1028c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_PWM3_ROOT>,
1029c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_PWM3_ROOT>;
1030c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1031d5b0e70fSEmmanuel Vadot				#pwm-cells = <3>;
1032c66ec88fSEmmanuel Vadot				status = "disabled";
1033c66ec88fSEmmanuel Vadot			};
1034c66ec88fSEmmanuel Vadot
1035c66ec88fSEmmanuel Vadot			pwm4: pwm@30690000 {
1036c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
1037c66ec88fSEmmanuel Vadot				reg = <0x30690000 0x10000>;
1038c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1039c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_PWM4_ROOT>,
1040c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_PWM4_ROOT>;
1041c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1042d5b0e70fSEmmanuel Vadot				#pwm-cells = <3>;
1043c66ec88fSEmmanuel Vadot				status = "disabled";
1044c66ec88fSEmmanuel Vadot			};
1045c66ec88fSEmmanuel Vadot
1046c66ec88fSEmmanuel Vadot			system_counter: timer@306a0000 {
1047c66ec88fSEmmanuel Vadot				compatible = "nxp,sysctr-timer";
1048c66ec88fSEmmanuel Vadot				reg = <0x306a0000 0x20000>;
1049c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1050c66ec88fSEmmanuel Vadot				clocks = <&osc_25m>;
1051c66ec88fSEmmanuel Vadot				clock-names = "per";
1052c66ec88fSEmmanuel Vadot			};
1053c66ec88fSEmmanuel Vadot		};
1054c66ec88fSEmmanuel Vadot
1055b97ee269SEmmanuel Vadot		aips3: bus@30800000 { /* AIPS3 */
1056c66ec88fSEmmanuel Vadot			compatible = "fsl,aips-bus", "simple-bus";
1057c66ec88fSEmmanuel Vadot			reg = <0x30800000 0x400000>;
1058c66ec88fSEmmanuel Vadot			#address-cells = <1>;
1059c66ec88fSEmmanuel Vadot			#size-cells = <1>;
1060c66ec88fSEmmanuel Vadot			ranges = <0x30800000 0x30800000 0x400000>,
1061c66ec88fSEmmanuel Vadot				 <0x08000000 0x08000000 0x10000000>;
1062c66ec88fSEmmanuel Vadot
10635def4c47SEmmanuel Vadot			spdif1: spdif@30810000 {
10645def4c47SEmmanuel Vadot				compatible = "fsl,imx35-spdif";
10655def4c47SEmmanuel Vadot				reg = <0x30810000 0x10000>;
10665def4c47SEmmanuel Vadot				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
10675def4c47SEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */
10685def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_25M>, /* rxtx0 */
10695def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_SPDIF1>, /* rxtx1 */
10705def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */
10715def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */
10725def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */
10735def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */
10745def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */
10755def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */
10765def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>; /* spba */
10775def4c47SEmmanuel Vadot				clock-names = "core", "rxtx0",
10785def4c47SEmmanuel Vadot					      "rxtx1", "rxtx2",
10795def4c47SEmmanuel Vadot					      "rxtx3", "rxtx4",
10805def4c47SEmmanuel Vadot					      "rxtx5", "rxtx6",
10815def4c47SEmmanuel Vadot					      "rxtx7", "spba";
10825def4c47SEmmanuel Vadot				dmas = <&sdma1 8 18 0>, <&sdma1 9 18 0>;
10835def4c47SEmmanuel Vadot				dma-names = "rx", "tx";
10845def4c47SEmmanuel Vadot				status = "disabled";
10855def4c47SEmmanuel Vadot			};
10865def4c47SEmmanuel Vadot
1087c66ec88fSEmmanuel Vadot			ecspi1: spi@30820000 {
1088c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1089c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1090c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi";
1091c66ec88fSEmmanuel Vadot				reg = <0x30820000 0x10000>;
1092c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
1093c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_ECSPI1_ROOT>,
1094c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_ECSPI1_ROOT>;
1095c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
10965def4c47SEmmanuel Vadot				dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>;
10975def4c47SEmmanuel Vadot				dma-names = "rx", "tx";
1098c66ec88fSEmmanuel Vadot				status = "disabled";
1099c66ec88fSEmmanuel Vadot			};
1100c66ec88fSEmmanuel Vadot
1101c66ec88fSEmmanuel Vadot			ecspi2: spi@30830000 {
1102c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1103c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1104c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi";
1105c66ec88fSEmmanuel Vadot				reg = <0x30830000 0x10000>;
1106c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1107c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_ECSPI2_ROOT>,
1108c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_ECSPI2_ROOT>;
1109c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
11105def4c47SEmmanuel Vadot				dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>;
11115def4c47SEmmanuel Vadot				dma-names = "rx", "tx";
1112c66ec88fSEmmanuel Vadot				status = "disabled";
1113c66ec88fSEmmanuel Vadot			};
1114c66ec88fSEmmanuel Vadot
1115c66ec88fSEmmanuel Vadot			ecspi3: spi@30840000 {
1116c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1117c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1118c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi";
1119c66ec88fSEmmanuel Vadot				reg = <0x30840000 0x10000>;
1120c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1121c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_ECSPI3_ROOT>,
1122c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_ECSPI3_ROOT>;
1123c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
11245def4c47SEmmanuel Vadot				dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>;
11255def4c47SEmmanuel Vadot				dma-names = "rx", "tx";
1126c66ec88fSEmmanuel Vadot				status = "disabled";
1127c66ec88fSEmmanuel Vadot			};
1128c66ec88fSEmmanuel Vadot
1129c66ec88fSEmmanuel Vadot			uart1: serial@30860000 {
1130c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-uart",
1131c66ec88fSEmmanuel Vadot				             "fsl,imx6q-uart";
1132c66ec88fSEmmanuel Vadot				reg = <0x30860000 0x10000>;
1133c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
1134c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_UART1_ROOT>,
1135c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_UART1_ROOT>;
1136c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1137fac71e4eSEmmanuel Vadot				dmas = <&sdma1 22 4 0>, <&sdma1 23 4 0>;
1138fac71e4eSEmmanuel Vadot				dma-names = "rx", "tx";
1139c66ec88fSEmmanuel Vadot				status = "disabled";
1140c66ec88fSEmmanuel Vadot			};
1141c66ec88fSEmmanuel Vadot
1142c66ec88fSEmmanuel Vadot			uart3: serial@30880000 {
1143c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-uart",
1144c66ec88fSEmmanuel Vadot				             "fsl,imx6q-uart";
1145c66ec88fSEmmanuel Vadot				reg = <0x30880000 0x10000>;
1146c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
1147c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_UART3_ROOT>,
1148c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_UART3_ROOT>;
1149c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1150fac71e4eSEmmanuel Vadot				dmas = <&sdma1 26 4 0>, <&sdma1 27 4 0>;
1151fac71e4eSEmmanuel Vadot				dma-names = "rx", "tx";
1152c66ec88fSEmmanuel Vadot				status = "disabled";
1153c66ec88fSEmmanuel Vadot			};
1154c66ec88fSEmmanuel Vadot
1155c66ec88fSEmmanuel Vadot			uart2: serial@30890000 {
1156c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-uart",
1157c66ec88fSEmmanuel Vadot				             "fsl,imx6q-uart";
1158c66ec88fSEmmanuel Vadot				reg = <0x30890000 0x10000>;
1159c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
1160c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_UART2_ROOT>,
1161c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_UART2_ROOT>;
1162c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1163fac71e4eSEmmanuel Vadot				dmas = <&sdma1 24 4 0>, <&sdma1 25 4 0>;
1164fac71e4eSEmmanuel Vadot				dma-names = "rx", "tx";
1165c66ec88fSEmmanuel Vadot				status = "disabled";
1166c66ec88fSEmmanuel Vadot			};
1167c66ec88fSEmmanuel Vadot
11685def4c47SEmmanuel Vadot			spdif2: spdif@308a0000 {
11695def4c47SEmmanuel Vadot				compatible = "fsl,imx35-spdif";
11705def4c47SEmmanuel Vadot				reg = <0x308a0000 0x10000>;
11715def4c47SEmmanuel Vadot				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
11725def4c47SEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */
11735def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_25M>, /* rxtx0 */
11745def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_SPDIF2>, /* rxtx1 */
11755def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */
11765def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */
11775def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */
11785def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */
11795def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */
11805def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */
11815def4c47SEmmanuel Vadot					<&clk IMX8MQ_CLK_DUMMY>; /* spba */
11825def4c47SEmmanuel Vadot				clock-names = "core", "rxtx0",
11835def4c47SEmmanuel Vadot					      "rxtx1", "rxtx2",
11845def4c47SEmmanuel Vadot					      "rxtx3", "rxtx4",
11855def4c47SEmmanuel Vadot					      "rxtx5", "rxtx6",
11865def4c47SEmmanuel Vadot					      "rxtx7", "spba";
11875def4c47SEmmanuel Vadot				dmas = <&sdma1 16 18 0>, <&sdma1 17 18 0>;
11885def4c47SEmmanuel Vadot				dma-names = "rx", "tx";
11895def4c47SEmmanuel Vadot				status = "disabled";
11905def4c47SEmmanuel Vadot			};
11915def4c47SEmmanuel Vadot
1192c66ec88fSEmmanuel Vadot			sai2: sai@308b0000 {
1193c66ec88fSEmmanuel Vadot				#sound-dai-cells = <0>;
1194c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-sai";
1195c66ec88fSEmmanuel Vadot				reg = <0x308b0000 0x10000>;
1196c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1197c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_SAI2_IPG>,
1198c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_SAI2_ROOT>,
1199c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
1200c66ec88fSEmmanuel Vadot				clock-names = "bus", "mclk1", "mclk2", "mclk3";
1201c66ec88fSEmmanuel Vadot				dmas = <&sdma1 10 24 0>, <&sdma1 11 24 0>;
1202c66ec88fSEmmanuel Vadot				dma-names = "rx", "tx";
1203c66ec88fSEmmanuel Vadot				status = "disabled";
1204c66ec88fSEmmanuel Vadot			};
1205c66ec88fSEmmanuel Vadot
1206c66ec88fSEmmanuel Vadot			sai3: sai@308c0000 {
1207c66ec88fSEmmanuel Vadot				#sound-dai-cells = <0>;
1208c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-sai";
1209c66ec88fSEmmanuel Vadot				reg = <0x308c0000 0x10000>;
1210c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
1211c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_SAI3_IPG>,
1212c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_SAI3_ROOT>,
1213c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
1214c66ec88fSEmmanuel Vadot				clock-names = "bus", "mclk1", "mclk2", "mclk3";
1215c66ec88fSEmmanuel Vadot				dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>;
1216c66ec88fSEmmanuel Vadot				dma-names = "rx", "tx";
1217c66ec88fSEmmanuel Vadot				status = "disabled";
1218c66ec88fSEmmanuel Vadot			};
1219c66ec88fSEmmanuel Vadot
1220c66ec88fSEmmanuel Vadot			crypto: crypto@30900000 {
1221c66ec88fSEmmanuel Vadot				compatible = "fsl,sec-v4.0";
1222c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1223c66ec88fSEmmanuel Vadot				#size-cells = <1>;
1224c66ec88fSEmmanuel Vadot				reg = <0x30900000 0x40000>;
1225c66ec88fSEmmanuel Vadot				ranges = <0 0x30900000 0x40000>;
1226c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1227c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_AHB>,
1228c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_IPG_ROOT>;
1229c66ec88fSEmmanuel Vadot				clock-names = "aclk", "ipg";
1230c66ec88fSEmmanuel Vadot
1231c66ec88fSEmmanuel Vadot				sec_jr0: jr@1000 {
1232c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-job-ring";
1233c66ec88fSEmmanuel Vadot					reg = <0x1000 0x1000>;
1234c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
1235b97ee269SEmmanuel Vadot					status = "disabled";
1236c66ec88fSEmmanuel Vadot				};
1237c66ec88fSEmmanuel Vadot
1238c66ec88fSEmmanuel Vadot				sec_jr1: jr@2000 {
1239c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-job-ring";
1240c66ec88fSEmmanuel Vadot					reg = <0x2000 0x1000>;
1241c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
1242c66ec88fSEmmanuel Vadot				};
1243c66ec88fSEmmanuel Vadot
1244c66ec88fSEmmanuel Vadot				sec_jr2: jr@3000 {
1245c66ec88fSEmmanuel Vadot					compatible = "fsl,sec-v4.0-job-ring";
1246c66ec88fSEmmanuel Vadot					reg = <0x3000 0x1000>;
1247c66ec88fSEmmanuel Vadot					interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
1248c66ec88fSEmmanuel Vadot				};
1249c66ec88fSEmmanuel Vadot			};
1250c66ec88fSEmmanuel Vadot
1251f126890aSEmmanuel Vadot			mipi_dsi: dsi@30a00000 {
12526be33864SEmmanuel Vadot				compatible = "fsl,imx8mq-nwl-dsi";
12536be33864SEmmanuel Vadot				reg = <0x30a00000 0x300>;
1254f126890aSEmmanuel Vadot				#address-cells = <1>;
1255f126890aSEmmanuel Vadot				#size-cells = <0>;
12566be33864SEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_DSI_CORE>,
12576be33864SEmmanuel Vadot					 <&clk IMX8MQ_CLK_DSI_AHB>,
12586be33864SEmmanuel Vadot					 <&clk IMX8MQ_CLK_DSI_IPG_DIV>,
12596be33864SEmmanuel Vadot					 <&clk IMX8MQ_CLK_DSI_PHY_REF>,
12606be33864SEmmanuel Vadot					 <&clk IMX8MQ_CLK_LCDIF_PIXEL>;
12616be33864SEmmanuel Vadot				clock-names = "core", "rx_esc", "tx_esc", "phy_ref", "lcdif";
12626be33864SEmmanuel Vadot				assigned-clocks = <&clk IMX8MQ_CLK_DSI_AHB>,
12636be33864SEmmanuel Vadot						  <&clk IMX8MQ_CLK_DSI_CORE>,
12646be33864SEmmanuel Vadot						  <&clk IMX8MQ_CLK_DSI_IPG_DIV>;
12656be33864SEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>,
12666be33864SEmmanuel Vadot							 <&clk IMX8MQ_SYS1_PLL_266M>;
12676be33864SEmmanuel Vadot				assigned-clock-rates = <80000000>, <266000000>, <20000000>;
12686be33864SEmmanuel Vadot				interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
12696be33864SEmmanuel Vadot				mux-controls = <&mux 0>;
12706be33864SEmmanuel Vadot				power-domains = <&pgc_mipi>;
12716be33864SEmmanuel Vadot				phys = <&dphy>;
12726be33864SEmmanuel Vadot				phy-names = "dphy";
12736be33864SEmmanuel Vadot				resets = <&src IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N>,
12746be33864SEmmanuel Vadot					 <&src IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N>,
12756be33864SEmmanuel Vadot					 <&src IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N>,
12766be33864SEmmanuel Vadot					 <&src IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N>;
12776be33864SEmmanuel Vadot				reset-names = "byte", "dpi", "esc", "pclk";
12786be33864SEmmanuel Vadot				status = "disabled";
12796be33864SEmmanuel Vadot
12806be33864SEmmanuel Vadot				ports {
12816be33864SEmmanuel Vadot					#address-cells = <1>;
12826be33864SEmmanuel Vadot					#size-cells = <0>;
12836be33864SEmmanuel Vadot
12846be33864SEmmanuel Vadot					port@0 {
12856be33864SEmmanuel Vadot						reg = <0>;
12866be33864SEmmanuel Vadot						#address-cells = <1>;
12876be33864SEmmanuel Vadot						#size-cells = <0>;
12886be33864SEmmanuel Vadot						mipi_dsi_lcdif_in: endpoint@0 {
12896be33864SEmmanuel Vadot							reg = <0>;
12906be33864SEmmanuel Vadot							remote-endpoint = <&lcdif_mipi_dsi>;
12916be33864SEmmanuel Vadot						};
12926be33864SEmmanuel Vadot					};
12936be33864SEmmanuel Vadot				};
12946be33864SEmmanuel Vadot			};
12956be33864SEmmanuel Vadot
1296c66ec88fSEmmanuel Vadot			dphy: dphy@30a00300 {
1297c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-mipi-dphy";
1298c66ec88fSEmmanuel Vadot				reg = <0x30a00300 0x100>;
1299c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
1300c66ec88fSEmmanuel Vadot				clock-names = "phy_ref";
13015def4c47SEmmanuel Vadot				assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>,
13025def4c47SEmmanuel Vadot						  <&clk IMX8MQ_VIDEO_PLL1_BYPASS>,
13035def4c47SEmmanuel Vadot						  <&clk IMX8MQ_CLK_DSI_PHY_REF>,
13045def4c47SEmmanuel Vadot						  <&clk IMX8MQ_VIDEO_PLL1>;
13055def4c47SEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MQ_CLK_25M>,
13065def4c47SEmmanuel Vadot						  <&clk IMX8MQ_VIDEO_PLL1>,
13075def4c47SEmmanuel Vadot						  <&clk IMX8MQ_VIDEO_PLL1_OUT>;
13085def4c47SEmmanuel Vadot				assigned-clock-rates = <0>, <0>, <24000000>, <594000000>;
1309c66ec88fSEmmanuel Vadot				#phy-cells = <0>;
1310c66ec88fSEmmanuel Vadot				power-domains = <&pgc_mipi>;
1311c66ec88fSEmmanuel Vadot				status = "disabled";
1312c66ec88fSEmmanuel Vadot			};
1313c66ec88fSEmmanuel Vadot
1314c66ec88fSEmmanuel Vadot			i2c1: i2c@30a20000 {
1315c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
1316c66ec88fSEmmanuel Vadot				reg = <0x30a20000 0x10000>;
1317c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
1318c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_I2C1_ROOT>;
1319c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1320c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1321c66ec88fSEmmanuel Vadot				status = "disabled";
1322c66ec88fSEmmanuel Vadot			};
1323c66ec88fSEmmanuel Vadot
1324c66ec88fSEmmanuel Vadot			i2c2: i2c@30a30000 {
1325c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
1326c66ec88fSEmmanuel Vadot				reg = <0x30a30000 0x10000>;
1327c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
1328c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_I2C2_ROOT>;
1329c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1330c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1331c66ec88fSEmmanuel Vadot				status = "disabled";
1332c66ec88fSEmmanuel Vadot			};
1333c66ec88fSEmmanuel Vadot
1334c66ec88fSEmmanuel Vadot			i2c3: i2c@30a40000 {
1335c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
1336c66ec88fSEmmanuel Vadot				reg = <0x30a40000 0x10000>;
1337c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1338c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_I2C3_ROOT>;
1339c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1340c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1341c66ec88fSEmmanuel Vadot				status = "disabled";
1342c66ec88fSEmmanuel Vadot			};
1343c66ec88fSEmmanuel Vadot
1344c66ec88fSEmmanuel Vadot			i2c4: i2c@30a50000 {
1345c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
1346c66ec88fSEmmanuel Vadot				reg = <0x30a50000 0x10000>;
1347c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
1348c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_I2C4_ROOT>;
1349c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1350c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1351c66ec88fSEmmanuel Vadot				status = "disabled";
1352c66ec88fSEmmanuel Vadot			};
1353c66ec88fSEmmanuel Vadot
1354c66ec88fSEmmanuel Vadot			uart4: serial@30a60000 {
1355c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-uart",
1356c66ec88fSEmmanuel Vadot				             "fsl,imx6q-uart";
1357c66ec88fSEmmanuel Vadot				reg = <0x30a60000 0x10000>;
1358c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1359c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_UART4_ROOT>,
1360c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_UART4_ROOT>;
1361c66ec88fSEmmanuel Vadot				clock-names = "ipg", "per";
1362fac71e4eSEmmanuel Vadot				dmas = <&sdma1 28 4 0>, <&sdma1 29 4 0>;
1363fac71e4eSEmmanuel Vadot				dma-names = "rx", "tx";
1364c66ec88fSEmmanuel Vadot				status = "disabled";
1365c66ec88fSEmmanuel Vadot			};
1366c66ec88fSEmmanuel Vadot
1367354d7675SEmmanuel Vadot			mipi_csi1: csi@30a70000 {
1368354d7675SEmmanuel Vadot				compatible = "fsl,imx8mq-mipi-csi2";
1369354d7675SEmmanuel Vadot				reg = <0x30a70000 0x1000>;
1370354d7675SEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_CSI1_CORE>,
1371354d7675SEmmanuel Vadot				   <&clk IMX8MQ_CLK_CSI1_ESC>,
1372354d7675SEmmanuel Vadot				   <&clk IMX8MQ_CLK_CSI1_PHY_REF>;
1373354d7675SEmmanuel Vadot				clock-names = "core", "esc", "ui";
1374354d7675SEmmanuel Vadot				assigned-clocks = <&clk IMX8MQ_CLK_CSI1_CORE>,
1375354d7675SEmmanuel Vadot				    <&clk IMX8MQ_CLK_CSI1_PHY_REF>,
1376354d7675SEmmanuel Vadot				    <&clk IMX8MQ_CLK_CSI1_ESC>;
1377354d7675SEmmanuel Vadot				assigned-clock-rates = <266000000>, <333000000>, <66000000>;
1378354d7675SEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>,
1379354d7675SEmmanuel Vadot					<&clk IMX8MQ_SYS2_PLL_1000M>,
1380354d7675SEmmanuel Vadot					<&clk IMX8MQ_SYS1_PLL_800M>;
1381354d7675SEmmanuel Vadot				power-domains = <&pgc_mipi_csi1>;
1382354d7675SEmmanuel Vadot				resets = <&src IMX8MQ_RESET_MIPI_CSI1_CORE_RESET>,
1383354d7675SEmmanuel Vadot					 <&src IMX8MQ_RESET_MIPI_CSI1_PHY_REF_RESET>,
1384354d7675SEmmanuel Vadot					 <&src IMX8MQ_RESET_MIPI_CSI1_ESC_RESET>;
1385354d7675SEmmanuel Vadot				fsl,mipi-phy-gpr = <&iomuxc_gpr 0x88>;
1386354d7675SEmmanuel Vadot				interconnects = <&noc IMX8MQ_ICM_CSI1 &noc IMX8MQ_ICS_DRAM>;
1387354d7675SEmmanuel Vadot				interconnect-names = "dram";
1388354d7675SEmmanuel Vadot				status = "disabled";
1389354d7675SEmmanuel Vadot
1390354d7675SEmmanuel Vadot				ports {
1391354d7675SEmmanuel Vadot					#address-cells = <1>;
1392354d7675SEmmanuel Vadot					#size-cells = <0>;
1393354d7675SEmmanuel Vadot
1394e67e8565SEmmanuel Vadot					port@1 {
1395e67e8565SEmmanuel Vadot						reg = <1>;
1396354d7675SEmmanuel Vadot
1397354d7675SEmmanuel Vadot						csi1_mipi_ep: endpoint {
1398354d7675SEmmanuel Vadot							remote-endpoint = <&csi1_ep>;
1399354d7675SEmmanuel Vadot						};
1400354d7675SEmmanuel Vadot					};
1401354d7675SEmmanuel Vadot				};
1402354d7675SEmmanuel Vadot			};
1403354d7675SEmmanuel Vadot
1404354d7675SEmmanuel Vadot			csi1: csi@30a90000 {
14058bab661aSEmmanuel Vadot				compatible = "fsl,imx8mq-csi";
1406354d7675SEmmanuel Vadot				reg = <0x30a90000 0x10000>;
1407354d7675SEmmanuel Vadot				interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
1408354d7675SEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_CSI1_ROOT>;
1409354d7675SEmmanuel Vadot				clock-names = "mclk";
1410354d7675SEmmanuel Vadot				status = "disabled";
1411354d7675SEmmanuel Vadot
1412354d7675SEmmanuel Vadot				port {
1413354d7675SEmmanuel Vadot					csi1_ep: endpoint {
1414354d7675SEmmanuel Vadot						remote-endpoint = <&csi1_mipi_ep>;
1415354d7675SEmmanuel Vadot					};
1416354d7675SEmmanuel Vadot				};
1417354d7675SEmmanuel Vadot			};
1418354d7675SEmmanuel Vadot
1419354d7675SEmmanuel Vadot			mipi_csi2: csi@30b60000 {
1420354d7675SEmmanuel Vadot				compatible = "fsl,imx8mq-mipi-csi2";
1421354d7675SEmmanuel Vadot				reg = <0x30b60000 0x1000>;
1422354d7675SEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_CSI2_CORE>,
1423354d7675SEmmanuel Vadot				   <&clk IMX8MQ_CLK_CSI2_ESC>,
1424354d7675SEmmanuel Vadot				   <&clk IMX8MQ_CLK_CSI2_PHY_REF>;
1425354d7675SEmmanuel Vadot				clock-names = "core", "esc", "ui";
1426354d7675SEmmanuel Vadot				assigned-clocks = <&clk IMX8MQ_CLK_CSI2_CORE>,
1427354d7675SEmmanuel Vadot				    <&clk IMX8MQ_CLK_CSI2_PHY_REF>,
1428354d7675SEmmanuel Vadot				    <&clk IMX8MQ_CLK_CSI2_ESC>;
1429354d7675SEmmanuel Vadot				assigned-clock-rates = <266000000>, <333000000>, <66000000>;
1430354d7675SEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>,
1431354d7675SEmmanuel Vadot					<&clk IMX8MQ_SYS2_PLL_1000M>,
1432354d7675SEmmanuel Vadot					<&clk IMX8MQ_SYS1_PLL_800M>;
1433354d7675SEmmanuel Vadot				power-domains = <&pgc_mipi_csi2>;
1434354d7675SEmmanuel Vadot				resets = <&src IMX8MQ_RESET_MIPI_CSI2_CORE_RESET>,
1435354d7675SEmmanuel Vadot					 <&src IMX8MQ_RESET_MIPI_CSI2_PHY_REF_RESET>,
1436354d7675SEmmanuel Vadot					 <&src IMX8MQ_RESET_MIPI_CSI2_ESC_RESET>;
1437354d7675SEmmanuel Vadot				fsl,mipi-phy-gpr = <&iomuxc_gpr 0xa4>;
1438354d7675SEmmanuel Vadot				interconnects = <&noc IMX8MQ_ICM_CSI2 &noc IMX8MQ_ICS_DRAM>;
1439354d7675SEmmanuel Vadot				interconnect-names = "dram";
1440354d7675SEmmanuel Vadot				status = "disabled";
1441354d7675SEmmanuel Vadot
1442354d7675SEmmanuel Vadot				ports {
1443354d7675SEmmanuel Vadot					#address-cells = <1>;
1444354d7675SEmmanuel Vadot					#size-cells = <0>;
1445354d7675SEmmanuel Vadot
1446e67e8565SEmmanuel Vadot					port@1 {
1447e67e8565SEmmanuel Vadot						reg = <1>;
1448354d7675SEmmanuel Vadot
1449354d7675SEmmanuel Vadot						csi2_mipi_ep: endpoint {
1450354d7675SEmmanuel Vadot							remote-endpoint = <&csi2_ep>;
1451354d7675SEmmanuel Vadot						};
1452354d7675SEmmanuel Vadot					};
1453354d7675SEmmanuel Vadot				};
1454354d7675SEmmanuel Vadot			};
1455354d7675SEmmanuel Vadot
1456354d7675SEmmanuel Vadot			csi2: csi@30b80000 {
14578bab661aSEmmanuel Vadot				compatible = "fsl,imx8mq-csi";
1458354d7675SEmmanuel Vadot				reg = <0x30b80000 0x10000>;
1459354d7675SEmmanuel Vadot				interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
1460354d7675SEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_CSI2_ROOT>;
1461354d7675SEmmanuel Vadot				clock-names = "mclk";
1462354d7675SEmmanuel Vadot				status = "disabled";
1463354d7675SEmmanuel Vadot
1464354d7675SEmmanuel Vadot				port {
1465354d7675SEmmanuel Vadot					csi2_ep: endpoint {
1466354d7675SEmmanuel Vadot						remote-endpoint = <&csi2_mipi_ep>;
1467354d7675SEmmanuel Vadot					};
1468354d7675SEmmanuel Vadot				};
1469354d7675SEmmanuel Vadot			};
1470354d7675SEmmanuel Vadot
1471c66ec88fSEmmanuel Vadot			mu: mailbox@30aa0000 {
1472c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-mu", "fsl,imx6sx-mu";
1473c66ec88fSEmmanuel Vadot				reg = <0x30aa0000 0x10000>;
1474c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1475c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_MU_ROOT>;
1476c66ec88fSEmmanuel Vadot				#mbox-cells = <2>;
1477c66ec88fSEmmanuel Vadot			};
1478c66ec88fSEmmanuel Vadot
1479c66ec88fSEmmanuel Vadot			usdhc1: mmc@30b40000 {
1480c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-usdhc",
1481c66ec88fSEmmanuel Vadot				             "fsl,imx7d-usdhc";
1482c66ec88fSEmmanuel Vadot				reg = <0x30b40000 0x10000>;
1483c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
1484c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_IPG_ROOT>,
1485c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_NAND_USDHC_BUS>,
1486c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_USDHC1_ROOT>;
1487c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
1488c66ec88fSEmmanuel Vadot				fsl,tuning-start-tap = <20>;
1489c66ec88fSEmmanuel Vadot				fsl,tuning-step = <2>;
1490c66ec88fSEmmanuel Vadot				bus-width = <4>;
1491c66ec88fSEmmanuel Vadot				status = "disabled";
1492c66ec88fSEmmanuel Vadot			};
1493c66ec88fSEmmanuel Vadot
1494c66ec88fSEmmanuel Vadot			usdhc2: mmc@30b50000 {
1495c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-usdhc",
1496c66ec88fSEmmanuel Vadot				             "fsl,imx7d-usdhc";
1497c66ec88fSEmmanuel Vadot				reg = <0x30b50000 0x10000>;
1498c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
1499c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_IPG_ROOT>,
1500c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_NAND_USDHC_BUS>,
1501c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_USDHC2_ROOT>;
1502c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb", "per";
1503c66ec88fSEmmanuel Vadot				fsl,tuning-start-tap = <20>;
1504c66ec88fSEmmanuel Vadot				fsl,tuning-step = <2>;
1505c66ec88fSEmmanuel Vadot				bus-width = <4>;
1506c66ec88fSEmmanuel Vadot				status = "disabled";
1507c66ec88fSEmmanuel Vadot			};
1508c66ec88fSEmmanuel Vadot
1509c66ec88fSEmmanuel Vadot			qspi0: spi@30bb0000 {
1510c66ec88fSEmmanuel Vadot				#address-cells = <1>;
1511c66ec88fSEmmanuel Vadot				#size-cells = <0>;
1512c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-qspi", "fsl,imx7d-qspi";
1513c66ec88fSEmmanuel Vadot				reg = <0x30bb0000 0x10000>,
1514c66ec88fSEmmanuel Vadot				      <0x08000000 0x10000000>;
1515c66ec88fSEmmanuel Vadot				reg-names = "QuadSPI", "QuadSPI-memory";
1516c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1517c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_QSPI_ROOT>,
1518c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_QSPI_ROOT>;
1519c66ec88fSEmmanuel Vadot				clock-names = "qspi_en", "qspi";
1520c66ec88fSEmmanuel Vadot				status = "disabled";
1521c66ec88fSEmmanuel Vadot			};
1522c66ec88fSEmmanuel Vadot
15237ef62cebSEmmanuel Vadot			sdma1: dma-controller@30bd0000 {
1524c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma";
1525c66ec88fSEmmanuel Vadot				reg = <0x30bd0000 0x10000>;
1526c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
1527c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_SDMA1_ROOT>,
1528c66ec88fSEmmanuel Vadot					 <&clk IMX8MQ_CLK_AHB>;
1529c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb";
1530c66ec88fSEmmanuel Vadot				#dma-cells = <3>;
1531c66ec88fSEmmanuel Vadot				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
1532c66ec88fSEmmanuel Vadot			};
1533c66ec88fSEmmanuel Vadot
1534c66ec88fSEmmanuel Vadot			fec1: ethernet@30be0000 {
1535c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8mq-fec", "fsl,imx6sx-fec";
1536c66ec88fSEmmanuel Vadot				reg = <0x30be0000 0x10000>;
1537c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1538c66ec88fSEmmanuel Vadot				             <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
15396be33864SEmmanuel Vadot					     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
15406be33864SEmmanuel Vadot					     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
1541c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_ENET1_ROOT>,
1542c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_ENET1_ROOT>,
1543c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_ENET_TIMER>,
1544c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_ENET_REF>,
1545c66ec88fSEmmanuel Vadot				         <&clk IMX8MQ_CLK_ENET_PHY_REF>;
1546c66ec88fSEmmanuel Vadot				clock-names = "ipg", "ahb", "ptp",
1547c66ec88fSEmmanuel Vadot				              "enet_clk_ref", "enet_out";
15485def4c47SEmmanuel Vadot				assigned-clocks = <&clk IMX8MQ_CLK_ENET_AXI>,
15495def4c47SEmmanuel Vadot						  <&clk IMX8MQ_CLK_ENET_TIMER>,
15505def4c47SEmmanuel Vadot						  <&clk IMX8MQ_CLK_ENET_REF>,
15515def4c47SEmmanuel Vadot						  <&clk IMX8MQ_CLK_ENET_PHY_REF>;
15525def4c47SEmmanuel Vadot				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>,
15535def4c47SEmmanuel Vadot							 <&clk IMX8MQ_SYS2_PLL_100M>,
15545def4c47SEmmanuel Vadot							 <&clk IMX8MQ_SYS2_PLL_125M>,
15555def4c47SEmmanuel Vadot							 <&clk IMX8MQ_SYS2_PLL_50M>;
15565def4c47SEmmanuel Vadot				assigned-clock-rates = <0>, <100000000>, <125000000>, <0>;
1557c66ec88fSEmmanuel Vadot				fsl,num-tx-queues = <3>;
1558c66ec88fSEmmanuel Vadot				fsl,num-rx-queues = <3>;
15595def4c47SEmmanuel Vadot				nvmem-cells = <&fec_mac_address>;
15605def4c47SEmmanuel Vadot				nvmem-cell-names = "mac-address";
15615def4c47SEmmanuel Vadot				fsl,stop-mode = <&iomuxc_gpr 0x10 3>;
1562c66ec88fSEmmanuel Vadot				status = "disabled";
1563c66ec88fSEmmanuel Vadot			};
1564c66ec88fSEmmanuel Vadot		};
1565c66ec88fSEmmanuel Vadot
15665def4c47SEmmanuel Vadot		noc: interconnect@32700000 {
15675def4c47SEmmanuel Vadot			compatible = "fsl,imx8mq-noc", "fsl,imx8m-noc";
15685def4c47SEmmanuel Vadot			reg = <0x32700000 0x100000>;
15695def4c47SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_NOC>;
15705def4c47SEmmanuel Vadot			fsl,ddrc = <&ddrc>;
15715def4c47SEmmanuel Vadot			#interconnect-cells = <1>;
15725def4c47SEmmanuel Vadot			operating-points-v2 = <&noc_opp_table>;
15735def4c47SEmmanuel Vadot
15745def4c47SEmmanuel Vadot			noc_opp_table: opp-table {
15755def4c47SEmmanuel Vadot				compatible = "operating-points-v2";
15765def4c47SEmmanuel Vadot
15778bab661aSEmmanuel Vadot				opp-133000000 {
15785def4c47SEmmanuel Vadot					opp-hz = /bits/ 64 <133333333>;
15795def4c47SEmmanuel Vadot				};
15805def4c47SEmmanuel Vadot
15818bab661aSEmmanuel Vadot				opp-400000000 {
15825def4c47SEmmanuel Vadot					opp-hz = /bits/ 64 <400000000>;
15835def4c47SEmmanuel Vadot				};
15845def4c47SEmmanuel Vadot
15858bab661aSEmmanuel Vadot				opp-800000000 {
15865def4c47SEmmanuel Vadot					opp-hz = /bits/ 64 <800000000>;
15875def4c47SEmmanuel Vadot				};
15885def4c47SEmmanuel Vadot			};
15895def4c47SEmmanuel Vadot		};
15905def4c47SEmmanuel Vadot
1591b97ee269SEmmanuel Vadot		aips4: bus@32c00000 { /* AIPS4 */
1592c66ec88fSEmmanuel Vadot			compatible = "fsl,aips-bus", "simple-bus";
1593c66ec88fSEmmanuel Vadot			reg = <0x32c00000 0x400000>;
1594c66ec88fSEmmanuel Vadot			#address-cells = <1>;
1595c66ec88fSEmmanuel Vadot			#size-cells = <1>;
1596c66ec88fSEmmanuel Vadot			ranges = <0x32c00000 0x32c00000 0x400000>;
1597c66ec88fSEmmanuel Vadot
1598c66ec88fSEmmanuel Vadot			irqsteer: interrupt-controller@32e2d000 {
1599c66ec88fSEmmanuel Vadot				compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer";
1600c66ec88fSEmmanuel Vadot				reg = <0x32e2d000 0x1000>;
1601c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
1602c66ec88fSEmmanuel Vadot				clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>;
1603c66ec88fSEmmanuel Vadot				clock-names = "ipg";
1604c66ec88fSEmmanuel Vadot				fsl,channel = <0>;
1605c66ec88fSEmmanuel Vadot				fsl,num-irqs = <64>;
1606c66ec88fSEmmanuel Vadot				interrupt-controller;
1607c66ec88fSEmmanuel Vadot				#interrupt-cells = <1>;
1608c66ec88fSEmmanuel Vadot			};
1609c66ec88fSEmmanuel Vadot		};
1610c66ec88fSEmmanuel Vadot
1611c66ec88fSEmmanuel Vadot		gpu: gpu@38000000 {
1612c66ec88fSEmmanuel Vadot			compatible = "vivante,gc";
1613c66ec88fSEmmanuel Vadot			reg = <0x38000000 0x40000>;
1614c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
1615c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_GPU_ROOT>,
1616c66ec88fSEmmanuel Vadot			         <&clk IMX8MQ_CLK_GPU_SHADER_DIV>,
1617c66ec88fSEmmanuel Vadot			         <&clk IMX8MQ_CLK_GPU_AXI>,
1618c66ec88fSEmmanuel Vadot			         <&clk IMX8MQ_CLK_GPU_AHB>;
1619c66ec88fSEmmanuel Vadot			clock-names = "core", "shader", "bus", "reg";
1620c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
1621c66ec88fSEmmanuel Vadot			assigned-clocks = <&clk IMX8MQ_CLK_GPU_CORE_SRC>,
1622c66ec88fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_GPU_SHADER_SRC>,
1623c66ec88fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_GPU_AXI>,
1624c66ec88fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_GPU_AHB>,
1625c66ec88fSEmmanuel Vadot			                  <&clk IMX8MQ_GPU_PLL_BYPASS>;
1626c66ec88fSEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MQ_GPU_PLL_OUT>,
1627c66ec88fSEmmanuel Vadot			                         <&clk IMX8MQ_GPU_PLL_OUT>,
1628c66ec88fSEmmanuel Vadot			                         <&clk IMX8MQ_GPU_PLL_OUT>,
1629c66ec88fSEmmanuel Vadot			                         <&clk IMX8MQ_GPU_PLL_OUT>,
1630c66ec88fSEmmanuel Vadot			                         <&clk IMX8MQ_GPU_PLL>;
1631c66ec88fSEmmanuel Vadot			assigned-clock-rates = <800000000>, <800000000>,
1632c66ec88fSEmmanuel Vadot			                       <800000000>, <800000000>, <0>;
1633c66ec88fSEmmanuel Vadot			power-domains = <&pgc_gpu>;
1634c66ec88fSEmmanuel Vadot		};
1635c66ec88fSEmmanuel Vadot
1636c66ec88fSEmmanuel Vadot		usb_dwc3_0: usb@38100000 {
1637c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mq-dwc3", "snps,dwc3";
1638c66ec88fSEmmanuel Vadot			reg = <0x38100000 0x10000>;
1639c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_USB1_CTRL_ROOT>,
1640c66ec88fSEmmanuel Vadot			         <&clk IMX8MQ_CLK_USB_CORE_REF>,
1641c66ec88fSEmmanuel Vadot				 <&clk IMX8MQ_CLK_32K>;
1642c66ec88fSEmmanuel Vadot			clock-names = "bus_early", "ref", "suspend";
1643c66ec88fSEmmanuel Vadot			assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>,
1644c66ec88fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_USB_CORE_REF>;
1645c66ec88fSEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>,
1646c66ec88fSEmmanuel Vadot			                         <&clk IMX8MQ_SYS1_PLL_100M>;
1647c66ec88fSEmmanuel Vadot			assigned-clock-rates = <500000000>, <100000000>;
1648c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
1649c66ec88fSEmmanuel Vadot			phys = <&usb3_phy0>, <&usb3_phy0>;
1650c66ec88fSEmmanuel Vadot			phy-names = "usb2-phy", "usb3-phy";
1651c66ec88fSEmmanuel Vadot			power-domains = <&pgc_otg1>;
1652*84943d6fSEmmanuel Vadot			snps,parkmode-disable-ss-quirk;
1653c66ec88fSEmmanuel Vadot			status = "disabled";
1654c66ec88fSEmmanuel Vadot		};
1655c66ec88fSEmmanuel Vadot
1656c66ec88fSEmmanuel Vadot		usb3_phy0: usb-phy@381f0040 {
1657c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mq-usb-phy";
1658c66ec88fSEmmanuel Vadot			reg = <0x381f0040 0x40>;
1659c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_USB1_PHY_ROOT>;
1660c66ec88fSEmmanuel Vadot			clock-names = "phy";
1661c66ec88fSEmmanuel Vadot			assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>;
1662c66ec88fSEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>;
1663c66ec88fSEmmanuel Vadot			assigned-clock-rates = <100000000>;
1664c66ec88fSEmmanuel Vadot			#phy-cells = <0>;
1665c66ec88fSEmmanuel Vadot			status = "disabled";
1666c66ec88fSEmmanuel Vadot		};
1667c66ec88fSEmmanuel Vadot
1668c66ec88fSEmmanuel Vadot		usb_dwc3_1: usb@38200000 {
1669c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mq-dwc3", "snps,dwc3";
1670c66ec88fSEmmanuel Vadot			reg = <0x38200000 0x10000>;
1671c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_USB2_CTRL_ROOT>,
1672c66ec88fSEmmanuel Vadot			         <&clk IMX8MQ_CLK_USB_CORE_REF>,
1673c66ec88fSEmmanuel Vadot				 <&clk IMX8MQ_CLK_32K>;
1674c66ec88fSEmmanuel Vadot			clock-names = "bus_early", "ref", "suspend";
1675c66ec88fSEmmanuel Vadot			assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>,
1676c66ec88fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_USB_CORE_REF>;
1677c66ec88fSEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>,
1678c66ec88fSEmmanuel Vadot			                         <&clk IMX8MQ_SYS1_PLL_100M>;
1679c66ec88fSEmmanuel Vadot			assigned-clock-rates = <500000000>, <100000000>;
1680c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
1681c66ec88fSEmmanuel Vadot			phys = <&usb3_phy1>, <&usb3_phy1>;
1682c66ec88fSEmmanuel Vadot			phy-names = "usb2-phy", "usb3-phy";
1683c66ec88fSEmmanuel Vadot			power-domains = <&pgc_otg2>;
1684*84943d6fSEmmanuel Vadot			snps,parkmode-disable-ss-quirk;
1685c66ec88fSEmmanuel Vadot			status = "disabled";
1686c66ec88fSEmmanuel Vadot		};
1687c66ec88fSEmmanuel Vadot
1688c66ec88fSEmmanuel Vadot		usb3_phy1: usb-phy@382f0040 {
1689c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mq-usb-phy";
1690c66ec88fSEmmanuel Vadot			reg = <0x382f0040 0x40>;
1691c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_USB2_PHY_ROOT>;
1692c66ec88fSEmmanuel Vadot			clock-names = "phy";
1693c66ec88fSEmmanuel Vadot			assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>;
1694c66ec88fSEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>;
1695c66ec88fSEmmanuel Vadot			assigned-clock-rates = <100000000>;
1696c66ec88fSEmmanuel Vadot			#phy-cells = <0>;
1697c66ec88fSEmmanuel Vadot			status = "disabled";
1698c66ec88fSEmmanuel Vadot		};
1699c66ec88fSEmmanuel Vadot
1700c9ccf3a3SEmmanuel Vadot		vpu_g1: video-codec@38300000 {
1701c9ccf3a3SEmmanuel Vadot			compatible = "nxp,imx8mq-vpu-g1";
1702c9ccf3a3SEmmanuel Vadot			reg = <0x38300000 0x10000>;
1703c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1704c9ccf3a3SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>;
1705c9ccf3a3SEmmanuel Vadot			power-domains = <&vpu_blk_ctrl IMX8MQ_VPUBLK_PD_G1>;
1706c9ccf3a3SEmmanuel Vadot		};
1707c9ccf3a3SEmmanuel Vadot
1708c9ccf3a3SEmmanuel Vadot		vpu_g2: video-codec@38310000 {
1709c9ccf3a3SEmmanuel Vadot			compatible = "nxp,imx8mq-vpu-g2";
1710c9ccf3a3SEmmanuel Vadot			reg = <0x38310000 0x10000>;
1711c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1712c9ccf3a3SEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_VPU_G2_ROOT>;
1713c9ccf3a3SEmmanuel Vadot			power-domains = <&vpu_blk_ctrl IMX8MQ_VPUBLK_PD_G2>;
1714c9ccf3a3SEmmanuel Vadot		};
1715c9ccf3a3SEmmanuel Vadot
1716c9ccf3a3SEmmanuel Vadot		vpu_blk_ctrl: blk-ctrl@38320000 {
1717c9ccf3a3SEmmanuel Vadot			compatible = "fsl,imx8mq-vpu-blk-ctrl";
1718c9ccf3a3SEmmanuel Vadot			reg = <0x38320000 0x100>;
1719c9ccf3a3SEmmanuel Vadot			power-domains = <&pgc_vpu>, <&pgc_vpu>, <&pgc_vpu>;
1720c9ccf3a3SEmmanuel Vadot			power-domain-names = "bus", "g1", "g2";
1721c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>,
1722c9ccf3a3SEmmanuel Vadot				 <&clk IMX8MQ_CLK_VPU_G2_ROOT>;
1723c9ccf3a3SEmmanuel Vadot			clock-names = "g1", "g2";
1724c9ccf3a3SEmmanuel Vadot			#power-domain-cells = <1>;
1725c66ec88fSEmmanuel Vadot		};
1726c66ec88fSEmmanuel Vadot
1727c66ec88fSEmmanuel Vadot		pcie0: pcie@33800000 {
1728c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mq-pcie";
1729c66ec88fSEmmanuel Vadot			reg = <0x33800000 0x400000>,
1730c66ec88fSEmmanuel Vadot			      <0x1ff00000 0x80000>;
1731c66ec88fSEmmanuel Vadot			reg-names = "dbi", "config";
1732c66ec88fSEmmanuel Vadot			#address-cells = <3>;
1733c66ec88fSEmmanuel Vadot			#size-cells = <2>;
1734c66ec88fSEmmanuel Vadot			device_type = "pci";
1735c66ec88fSEmmanuel Vadot			bus-range = <0x00 0xff>;
17368cc087a1SEmmanuel Vadot			ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000>, /* downstream I/O 64KB */
17378cc087a1SEmmanuel Vadot				 <0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */
1738c66ec88fSEmmanuel Vadot			num-lanes = <1>;
1739c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1740c66ec88fSEmmanuel Vadot			interrupt-names = "msi";
1741c66ec88fSEmmanuel Vadot			#interrupt-cells = <1>;
1742c66ec88fSEmmanuel Vadot			interrupt-map-mask = <0 0 0 0x7>;
1743c66ec88fSEmmanuel Vadot			interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1744c66ec88fSEmmanuel Vadot			                <0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
1745c66ec88fSEmmanuel Vadot			                <0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1746c66ec88fSEmmanuel Vadot			                <0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1747c66ec88fSEmmanuel Vadot			fsl,max-link-speed = <2>;
17485def4c47SEmmanuel Vadot			linux,pci-domain = <0>;
1749cb7aa33aSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_PCIE1_ROOT>,
1750cb7aa33aSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE1_PHY>,
1751cb7aa33aSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE1_PHY>,
1752cb7aa33aSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE1_AUX>;
1753cb7aa33aSEmmanuel Vadot			clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux";
1754c66ec88fSEmmanuel Vadot			power-domains = <&pgc_pcie>;
1755c66ec88fSEmmanuel Vadot			resets = <&src IMX8MQ_RESET_PCIEPHY>,
1756c66ec88fSEmmanuel Vadot			         <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
1757c66ec88fSEmmanuel Vadot			         <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
1758c66ec88fSEmmanuel Vadot			reset-names = "pciephy", "apps", "turnoff";
17595956d97fSEmmanuel Vadot			assigned-clocks = <&clk IMX8MQ_CLK_PCIE1_CTRL>,
17605956d97fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_PCIE1_PHY>,
17615956d97fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_PCIE1_AUX>;
17625956d97fSEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
17635956d97fSEmmanuel Vadot			                         <&clk IMX8MQ_SYS2_PLL_100M>,
17645956d97fSEmmanuel Vadot			                         <&clk IMX8MQ_SYS1_PLL_80M>;
17655956d97fSEmmanuel Vadot			assigned-clock-rates = <250000000>, <100000000>,
17665956d97fSEmmanuel Vadot			                       <10000000>;
1767c66ec88fSEmmanuel Vadot			status = "disabled";
1768c66ec88fSEmmanuel Vadot		};
1769c66ec88fSEmmanuel Vadot
1770c66ec88fSEmmanuel Vadot		pcie1: pcie@33c00000 {
1771c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mq-pcie";
1772c66ec88fSEmmanuel Vadot			reg = <0x33c00000 0x400000>,
1773c66ec88fSEmmanuel Vadot			      <0x27f00000 0x80000>;
1774c66ec88fSEmmanuel Vadot			reg-names = "dbi", "config";
1775c66ec88fSEmmanuel Vadot			#address-cells = <3>;
1776c66ec88fSEmmanuel Vadot			#size-cells = <2>;
1777c66ec88fSEmmanuel Vadot			device_type = "pci";
1778f126890aSEmmanuel Vadot			bus-range = <0x00 0xff>;
17798cc087a1SEmmanuel Vadot			ranges = <0x81000000 0 0x00000000 0x27f80000 0 0x00010000>, /* downstream I/O 64KB */
17808cc087a1SEmmanuel Vadot				 <0x82000000 0 0x20000000 0x20000000 0 0x07f00000>; /* non-prefetchable memory */
1781c66ec88fSEmmanuel Vadot			num-lanes = <1>;
1782c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1783c66ec88fSEmmanuel Vadot			interrupt-names = "msi";
1784c66ec88fSEmmanuel Vadot			#interrupt-cells = <1>;
1785c66ec88fSEmmanuel Vadot			interrupt-map-mask = <0 0 0 0x7>;
1786c66ec88fSEmmanuel Vadot			interrupt-map = <0 0 0 1 &gic GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
1787c66ec88fSEmmanuel Vadot					<0 0 0 2 &gic GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
1788c66ec88fSEmmanuel Vadot					<0 0 0 3 &gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
1789c66ec88fSEmmanuel Vadot					<0 0 0 4 &gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1790c66ec88fSEmmanuel Vadot			fsl,max-link-speed = <2>;
17915def4c47SEmmanuel Vadot			linux,pci-domain = <1>;
1792cb7aa33aSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>,
1793cb7aa33aSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE2_PHY>,
1794cb7aa33aSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE2_PHY>,
1795cb7aa33aSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE2_AUX>;
1796cb7aa33aSEmmanuel Vadot			clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux";
1797c66ec88fSEmmanuel Vadot			power-domains = <&pgc_pcie>;
1798c66ec88fSEmmanuel Vadot			resets = <&src IMX8MQ_RESET_PCIEPHY2>,
1799c66ec88fSEmmanuel Vadot			         <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>,
1800c66ec88fSEmmanuel Vadot			         <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>;
1801c66ec88fSEmmanuel Vadot			reset-names = "pciephy", "apps", "turnoff";
18025956d97fSEmmanuel Vadot			assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>,
18035956d97fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_PCIE2_PHY>,
18045956d97fSEmmanuel Vadot			                  <&clk IMX8MQ_CLK_PCIE2_AUX>;
18055956d97fSEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
18065956d97fSEmmanuel Vadot			                         <&clk IMX8MQ_SYS2_PLL_100M>,
18075956d97fSEmmanuel Vadot			                         <&clk IMX8MQ_SYS1_PLL_80M>;
18085956d97fSEmmanuel Vadot			assigned-clock-rates = <250000000>, <100000000>,
18095956d97fSEmmanuel Vadot			                       <10000000>;
1810c66ec88fSEmmanuel Vadot			status = "disabled";
1811c66ec88fSEmmanuel Vadot		};
1812c66ec88fSEmmanuel Vadot
1813fac71e4eSEmmanuel Vadot		pcie1_ep: pcie-ep@33c00000 {
1814fac71e4eSEmmanuel Vadot			compatible = "fsl,imx8mq-pcie-ep";
1815fac71e4eSEmmanuel Vadot			reg = <0x33c00000 0x000400000>,
1816fac71e4eSEmmanuel Vadot			      <0x20000000 0x08000000>;
1817fac71e4eSEmmanuel Vadot			reg-names = "dbi", "addr_space";
1818fac71e4eSEmmanuel Vadot			num-lanes = <1>;
1819fac71e4eSEmmanuel Vadot			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1820fac71e4eSEmmanuel Vadot			interrupt-names = "dma";
1821fac71e4eSEmmanuel Vadot			fsl,max-link-speed = <2>;
1822fac71e4eSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>,
1823fac71e4eSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE2_PHY>,
1824fac71e4eSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE2_PHY>,
1825fac71e4eSEmmanuel Vadot				 <&clk IMX8MQ_CLK_PCIE2_AUX>;
1826fac71e4eSEmmanuel Vadot			clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux";
1827fac71e4eSEmmanuel Vadot			power-domains = <&pgc_pcie>;
1828fac71e4eSEmmanuel Vadot			resets = <&src IMX8MQ_RESET_PCIEPHY2>,
1829fac71e4eSEmmanuel Vadot				 <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>,
1830fac71e4eSEmmanuel Vadot				 <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>;
1831fac71e4eSEmmanuel Vadot			reset-names = "pciephy", "apps", "turnoff";
1832fac71e4eSEmmanuel Vadot			assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>,
1833fac71e4eSEmmanuel Vadot					  <&clk IMX8MQ_CLK_PCIE2_PHY>,
1834fac71e4eSEmmanuel Vadot					  <&clk IMX8MQ_CLK_PCIE2_AUX>;
1835fac71e4eSEmmanuel Vadot			assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
1836fac71e4eSEmmanuel Vadot						 <&clk IMX8MQ_SYS2_PLL_100M>,
1837fac71e4eSEmmanuel Vadot						 <&clk IMX8MQ_SYS1_PLL_80M>;
1838fac71e4eSEmmanuel Vadot			assigned-clock-rates = <250000000>, <100000000>,
1839fac71e4eSEmmanuel Vadot					       <10000000>;
1840fac71e4eSEmmanuel Vadot			num-ib-windows = <4>;
1841fac71e4eSEmmanuel Vadot			num-ob-windows = <4>;
1842fac71e4eSEmmanuel Vadot			status = "disabled";
1843fac71e4eSEmmanuel Vadot		};
1844fac71e4eSEmmanuel Vadot
1845c66ec88fSEmmanuel Vadot		gic: interrupt-controller@38800000 {
1846c66ec88fSEmmanuel Vadot			compatible = "arm,gic-v3";
1847c66ec88fSEmmanuel Vadot			reg = <0x38800000 0x10000>,	/* GIC Dist */
1848c66ec88fSEmmanuel Vadot			      <0x38880000 0xc0000>,	/* GICR */
1849c66ec88fSEmmanuel Vadot			      <0x31000000 0x2000>,	/* GICC */
1850c66ec88fSEmmanuel Vadot			      <0x31010000 0x2000>,	/* GICV */
1851c66ec88fSEmmanuel Vadot			      <0x31020000 0x2000>;	/* GICH */
1852c66ec88fSEmmanuel Vadot			#interrupt-cells = <3>;
1853c66ec88fSEmmanuel Vadot			interrupt-controller;
1854c66ec88fSEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1855c66ec88fSEmmanuel Vadot			interrupt-parent = <&gic>;
1856c66ec88fSEmmanuel Vadot		};
1857c66ec88fSEmmanuel Vadot
1858c66ec88fSEmmanuel Vadot		ddrc: memory-controller@3d400000 {
1859c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mq-ddrc", "fsl,imx8m-ddrc";
1860c66ec88fSEmmanuel Vadot			reg = <0x3d400000 0x400000>;
1861c66ec88fSEmmanuel Vadot			clock-names = "core", "pll", "alt", "apb";
1862c66ec88fSEmmanuel Vadot			clocks = <&clk IMX8MQ_CLK_DRAM_CORE>,
1863c66ec88fSEmmanuel Vadot				 <&clk IMX8MQ_DRAM_PLL_OUT>,
1864c66ec88fSEmmanuel Vadot				 <&clk IMX8MQ_CLK_DRAM_ALT>,
1865c66ec88fSEmmanuel Vadot				 <&clk IMX8MQ_CLK_DRAM_APB>;
1866c9ccf3a3SEmmanuel Vadot			status = "disabled";
1867c66ec88fSEmmanuel Vadot		};
1868c66ec88fSEmmanuel Vadot
1869c66ec88fSEmmanuel Vadot		ddr-pmu@3d800000 {
1870c66ec88fSEmmanuel Vadot			compatible = "fsl,imx8mq-ddr-pmu", "fsl,imx8m-ddr-pmu";
1871c66ec88fSEmmanuel Vadot			reg = <0x3d800000 0x400000>;
1872c66ec88fSEmmanuel Vadot			interrupt-parent = <&gic>;
1873c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1874c66ec88fSEmmanuel Vadot		};
1875c66ec88fSEmmanuel Vadot	};
1876c66ec88fSEmmanuel Vadot};
1877