xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx8qm-var-som.dtsi (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1*868ced4dSStefano Radaelli// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*868ced4dSStefano Radaelli/*
3*868ced4dSStefano Radaelli * Common dtsi for Variscite VAR-SOM-MX8
4*868ced4dSStefano Radaelli *
5*868ced4dSStefano Radaelli * Link: https://variscite.com/system-on-module-som/i-mx-8/i-mx-8-quadmax-quadplus/var-som-mx8/
6*868ced4dSStefano Radaelli *
7*868ced4dSStefano Radaelli * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/
8*868ced4dSStefano Radaelli *
9*868ced4dSStefano Radaelli */
10*868ced4dSStefano Radaelli
11*868ced4dSStefano Radaelli/dts-v1/;
12*868ced4dSStefano Radaelli
13*868ced4dSStefano Radaelli#include "imx8qm.dtsi"
14*868ced4dSStefano Radaelli
15*868ced4dSStefano Radaelli/ {
16*868ced4dSStefano Radaelli	model = "Variscite i.MX8QM VAR-SOM-MX8 Module";
17*868ced4dSStefano Radaelli	compatible = "variscite,var-som-imx8qm", "fsl,imx8qm";
18*868ced4dSStefano Radaelli
19*868ced4dSStefano Radaelli	memory@80000000 {
20*868ced4dSStefano Radaelli		device_type = "memory";
21*868ced4dSStefano Radaelli		reg = <0x00000000 0x80000000 0 0x40000000>;
22*868ced4dSStefano Radaelli	};
23*868ced4dSStefano Radaelli
24*868ced4dSStefano Radaelli	reg_audio_supply: regulator-1p8v {
25*868ced4dSStefano Radaelli		compatible = "regulator-fixed";
26*868ced4dSStefano Radaelli		regulator-name = "wm8904-supply";
27*868ced4dSStefano Radaelli		regulator-min-microvolt = <1800000>;
28*868ced4dSStefano Radaelli		regulator-max-microvolt = <1800000>;
29*868ced4dSStefano Radaelli		regulator-always-on;
30*868ced4dSStefano Radaelli	};
31*868ced4dSStefano Radaelli
32*868ced4dSStefano Radaelli	reg_phy_vddio: regulator-phy-vddio {
33*868ced4dSStefano Radaelli		compatible = "regulator-fixed";
34*868ced4dSStefano Radaelli		regulator-name = "vddio-1v8";
35*868ced4dSStefano Radaelli		regulator-min-microvolt = <1800000>;
36*868ced4dSStefano Radaelli		regulator-max-microvolt = <1800000>;
37*868ced4dSStefano Radaelli	};
38*868ced4dSStefano Radaelli
39*868ced4dSStefano Radaelli	reserved-memory {
40*868ced4dSStefano Radaelli		#address-cells = <2>;
41*868ced4dSStefano Radaelli		#size-cells = <2>;
42*868ced4dSStefano Radaelli		ranges;
43*868ced4dSStefano Radaelli
44*868ced4dSStefano Radaelli		vdev0vring0: memory@90000000 {
45*868ced4dSStefano Radaelli			reg = <0 0x90000000 0 0x8000>;
46*868ced4dSStefano Radaelli			no-map;
47*868ced4dSStefano Radaelli		};
48*868ced4dSStefano Radaelli
49*868ced4dSStefano Radaelli		vdev0vring1: memory@90008000 {
50*868ced4dSStefano Radaelli			reg = <0 0x90008000 0 0x8000>;
51*868ced4dSStefano Radaelli			no-map;
52*868ced4dSStefano Radaelli		};
53*868ced4dSStefano Radaelli
54*868ced4dSStefano Radaelli		vdev1vring0: memory@90010000 {
55*868ced4dSStefano Radaelli			reg = <0 0x90010000 0 0x8000>;
56*868ced4dSStefano Radaelli			no-map;
57*868ced4dSStefano Radaelli		};
58*868ced4dSStefano Radaelli
59*868ced4dSStefano Radaelli		vdev1vring1: memory@90018000 {
60*868ced4dSStefano Radaelli			reg = <0 0x90018000 0 0x8000>;
61*868ced4dSStefano Radaelli			no-map;
62*868ced4dSStefano Radaelli		};
63*868ced4dSStefano Radaelli
64*868ced4dSStefano Radaelli		rsc_table0: memory@900ff000 {
65*868ced4dSStefano Radaelli			reg = <0 0x900ff000 0 0x1000>;
66*868ced4dSStefano Radaelli			no-map;
67*868ced4dSStefano Radaelli		};
68*868ced4dSStefano Radaelli
69*868ced4dSStefano Radaelli		vdev2vring0: memory@90100000 {
70*868ced4dSStefano Radaelli			reg = <0 0x90100000 0 0x8000>;
71*868ced4dSStefano Radaelli			no-map;
72*868ced4dSStefano Radaelli		};
73*868ced4dSStefano Radaelli
74*868ced4dSStefano Radaelli		vdev2vring1: memory@90108000 {
75*868ced4dSStefano Radaelli			reg = <0 0x90108000 0 0x8000>;
76*868ced4dSStefano Radaelli			no-map;
77*868ced4dSStefano Radaelli		};
78*868ced4dSStefano Radaelli
79*868ced4dSStefano Radaelli		vdev3vring0: memory@90110000 {
80*868ced4dSStefano Radaelli			reg = <0 0x90110000 0 0x8000>;
81*868ced4dSStefano Radaelli			no-map;
82*868ced4dSStefano Radaelli		};
83*868ced4dSStefano Radaelli
84*868ced4dSStefano Radaelli		vdev3vring1: memory@90118000 {
85*868ced4dSStefano Radaelli			reg = <0 0x90118000 0 0x8000>;
86*868ced4dSStefano Radaelli			no-map;
87*868ced4dSStefano Radaelli		};
88*868ced4dSStefano Radaelli
89*868ced4dSStefano Radaelli		rsc_table1: memory@901ff000 {
90*868ced4dSStefano Radaelli			reg = <0 0x901ff000 0 0x1000>;
91*868ced4dSStefano Radaelli			no-map;
92*868ced4dSStefano Radaelli		};
93*868ced4dSStefano Radaelli
94*868ced4dSStefano Radaelli		vdevbuffer: memory@90400000 {
95*868ced4dSStefano Radaelli			compatible = "shared-dma-pool";
96*868ced4dSStefano Radaelli			reg = <0 0x90400000 0 0x100000>;
97*868ced4dSStefano Radaelli			no-map;
98*868ced4dSStefano Radaelli		};
99*868ced4dSStefano Radaelli
100*868ced4dSStefano Radaelli		dsp_reserved: memory@92400000 {
101*868ced4dSStefano Radaelli			reg = <0 0x92400000 0 0x1000000>;
102*868ced4dSStefano Radaelli			no-map;
103*868ced4dSStefano Radaelli		};
104*868ced4dSStefano Radaelli
105*868ced4dSStefano Radaelli		dsp_vdev0vring0: memory@942f0000 {
106*868ced4dSStefano Radaelli			reg = <0 0x942f0000 0 0x8000>;
107*868ced4dSStefano Radaelli			no-map;
108*868ced4dSStefano Radaelli		};
109*868ced4dSStefano Radaelli
110*868ced4dSStefano Radaelli		dsp_vdev0vring1: memory@942f8000 {
111*868ced4dSStefano Radaelli			reg = <0 0x942f8000 0 0x8000>;
112*868ced4dSStefano Radaelli			no-map;
113*868ced4dSStefano Radaelli		};
114*868ced4dSStefano Radaelli
115*868ced4dSStefano Radaelli		dsp_vdev0buffer: memory@94300000 {
116*868ced4dSStefano Radaelli			compatible = "shared-dma-pool";
117*868ced4dSStefano Radaelli			reg = <0 0x94300000 0 0x100000>;
118*868ced4dSStefano Radaelli			no-map;
119*868ced4dSStefano Radaelli		};
120*868ced4dSStefano Radaelli
121*868ced4dSStefano Radaelli		/* global autoconfigured region for contiguous allocations */
122*868ced4dSStefano Radaelli		linux,cma {
123*868ced4dSStefano Radaelli			compatible = "shared-dma-pool";
124*868ced4dSStefano Radaelli			/* VAR-SOM-MX8QM doesn't have 1GB variant */
125*868ced4dSStefano Radaelli			alloc-ranges = <0 0xc0000000 0 0x3c000000>;
126*868ced4dSStefano Radaelli			size = <0 0x3c000000>;
127*868ced4dSStefano Radaelli			linux,cma-default;
128*868ced4dSStefano Radaelli			reusable;
129*868ced4dSStefano Radaelli		};
130*868ced4dSStefano Radaelli	};
131*868ced4dSStefano Radaelli
132*868ced4dSStefano Radaelli	sound-wm8904 {
133*868ced4dSStefano Radaelli		compatible = "simple-audio-card";
134*868ced4dSStefano Radaelli		simple-audio-card,bitclock-master = <&codec_dai>;
135*868ced4dSStefano Radaelli		simple-audio-card,format = "i2s";
136*868ced4dSStefano Radaelli		simple-audio-card,frame-master = <&codec_dai>;
137*868ced4dSStefano Radaelli		simple-audio-card,mclk-fs = <256>;
138*868ced4dSStefano Radaelli		simple-audio-card,name = "wm8904-audio";
139*868ced4dSStefano Radaelli		simple-audio-card,routing =
140*868ced4dSStefano Radaelli			"Headphone Jack", "HPOUTL",
141*868ced4dSStefano Radaelli			"Headphone Jack", "HPOUTR",
142*868ced4dSStefano Radaelli			"IN2L", "Line In Jack",
143*868ced4dSStefano Radaelli			"IN2R", "Line In Jack",
144*868ced4dSStefano Radaelli			"IN1L", "Microphone Jack",
145*868ced4dSStefano Radaelli			"IN1R", "Microphone Jack";
146*868ced4dSStefano Radaelli		simple-audio-card,widgets =
147*868ced4dSStefano Radaelli			"Microphone", "Microphone Jack",
148*868ced4dSStefano Radaelli			"Headphone", "Headphone Jack",
149*868ced4dSStefano Radaelli			"Line", "Line In Jack";
150*868ced4dSStefano Radaelli
151*868ced4dSStefano Radaelli		codec_dai: simple-audio-card,codec {
152*868ced4dSStefano Radaelli			sound-dai = <&wm8904>;
153*868ced4dSStefano Radaelli		};
154*868ced4dSStefano Radaelli
155*868ced4dSStefano Radaelli		simple-audio-card,cpu {
156*868ced4dSStefano Radaelli			sound-dai = <&esai0>;
157*868ced4dSStefano Radaelli		};
158*868ced4dSStefano Radaelli	};
159*868ced4dSStefano Radaelli};
160*868ced4dSStefano Radaelli
161*868ced4dSStefano Radaelli&acm {
162*868ced4dSStefano Radaelli	status = "okay";
163*868ced4dSStefano Radaelli};
164*868ced4dSStefano Radaelli
165*868ced4dSStefano Radaelli&asrc0 {
166*868ced4dSStefano Radaelli	fsl,asrc-rate  = <48000>;
167*868ced4dSStefano Radaelli	status = "okay";
168*868ced4dSStefano Radaelli};
169*868ced4dSStefano Radaelli
170*868ced4dSStefano Radaelli&asrc1 {
171*868ced4dSStefano Radaelli	fsl,asrc-rate = <48000>;
172*868ced4dSStefano Radaelli	status = "okay";
173*868ced4dSStefano Radaelli};
174*868ced4dSStefano Radaelli
175*868ced4dSStefano Radaelli&cm41_intmux {
176*868ced4dSStefano Radaelli	status = "okay";
177*868ced4dSStefano Radaelli};
178*868ced4dSStefano Radaelli
179*868ced4dSStefano Radaelli&esai0 {
180*868ced4dSStefano Radaelli	pinctrl-names = "default";
181*868ced4dSStefano Radaelli	pinctrl-0 = <&pinctrl_esai0>;
182*868ced4dSStefano Radaelli	assigned-clocks = <&acm IMX_ADMA_ACM_ESAI0_MCLK_SEL>,
183*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
184*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
185*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
186*868ced4dSStefano Radaelli			  <&esai0_lpcg IMX_LPCG_CLK_4>;
187*868ced4dSStefano Radaelli	assigned-clock-parents = <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>;
188*868ced4dSStefano Radaelli	assigned-clock-rates = <0>, <786432000>, <49152000>, <12288000>, <49152000>;
189*868ced4dSStefano Radaelli	#sound-dai-cells = <0>;
190*868ced4dSStefano Radaelli	status = "okay";
191*868ced4dSStefano Radaelli};
192*868ced4dSStefano Radaelli
193*868ced4dSStefano Radaelli&fec1 {
194*868ced4dSStefano Radaelli	pinctrl-names = "default";
195*868ced4dSStefano Radaelli	pinctrl-0 = <&pinctrl_fec1>;
196*868ced4dSStefano Radaelli	/*
197*868ced4dSStefano Radaelli	 * The required RGMII TX and RX 2ns delays are implemented directly
198*868ced4dSStefano Radaelli	 * in hardware via passive delay elements on the SOM PCB.
199*868ced4dSStefano Radaelli	 * No delay configuration is needed in software via PHY driver.
200*868ced4dSStefano Radaelli	 */
201*868ced4dSStefano Radaelli	phy-mode = "rgmii";
202*868ced4dSStefano Radaelli	phy-handle = <&ethphy0>;
203*868ced4dSStefano Radaelli	status = "okay";
204*868ced4dSStefano Radaelli
205*868ced4dSStefano Radaelli	mdio {
206*868ced4dSStefano Radaelli		#address-cells = <1>;
207*868ced4dSStefano Radaelli		#size-cells = <0>;
208*868ced4dSStefano Radaelli
209*868ced4dSStefano Radaelli		ethphy0: ethernet-phy@4 {
210*868ced4dSStefano Radaelli			compatible = "ethernet-phy-ieee802.3-c22";
211*868ced4dSStefano Radaelli			reg = <4>;
212*868ced4dSStefano Radaelli			reset-gpios = <&lsio_gpio2 28 GPIO_ACTIVE_LOW>;
213*868ced4dSStefano Radaelli			reset-assert-us = <10000>;
214*868ced4dSStefano Radaelli			reset-deassert-us = <20000>;
215*868ced4dSStefano Radaelli			vddio-supply = <&reg_phy_vddio>;
216*868ced4dSStefano Radaelli		};
217*868ced4dSStefano Radaelli	};
218*868ced4dSStefano Radaelli};
219*868ced4dSStefano Radaelli
220*868ced4dSStefano Radaelli&gpio0_mipi_csi0 {
221*868ced4dSStefano Radaelli	status = "disabled";
222*868ced4dSStefano Radaelli};
223*868ced4dSStefano Radaelli
224*868ced4dSStefano Radaelli&gpio0_mipi_csi1 {
225*868ced4dSStefano Radaelli	status = "disabled";
226*868ced4dSStefano Radaelli};
227*868ced4dSStefano Radaelli
228*868ced4dSStefano Radaelli&i2c0 {
229*868ced4dSStefano Radaelli	clock-frequency = <100000>;
230*868ced4dSStefano Radaelli	pinctrl-names = "default";
231*868ced4dSStefano Radaelli	pinctrl-0 = <&pinctrl_i2c0>;
232*868ced4dSStefano Radaelli	status = "okay";
233*868ced4dSStefano Radaelli
234*868ced4dSStefano Radaelli	wm8904: codec@1a {
235*868ced4dSStefano Radaelli		compatible = "wlf,wm8904";
236*868ced4dSStefano Radaelli		reg = <0x1a>;
237*868ced4dSStefano Radaelli		#sound-dai-cells = <0>;
238*868ced4dSStefano Radaelli		clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
239*868ced4dSStefano Radaelli		clock-names = "mclk";
240*868ced4dSStefano Radaelli		assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
241*868ced4dSStefano Radaelli				<&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
242*868ced4dSStefano Radaelli				<&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
243*868ced4dSStefano Radaelli				<&mclkout0_lpcg IMX_LPCG_CLK_0>;
244*868ced4dSStefano Radaelli		assigned-clock-rates = <786432000>, <49152000>, <12288000>, <12288000>;
245*868ced4dSStefano Radaelli		AVDD-supply = <&reg_audio_supply>;
246*868ced4dSStefano Radaelli		CPVDD-supply = <&reg_audio_supply>;
247*868ced4dSStefano Radaelli		DBVDD-supply = <&reg_audio_supply>;
248*868ced4dSStefano Radaelli		DCVDD-supply = <&reg_audio_supply>;
249*868ced4dSStefano Radaelli		MICVDD-supply = <&reg_audio_supply>;
250*868ced4dSStefano Radaelli		wlf,drc-cfg-names = "default", "peaklimiter", "tradition",
251*868ced4dSStefano Radaelli				    "soft", "music";
252*868ced4dSStefano Radaelli		/*
253*868ced4dSStefano Radaelli		 * Config registers per name, respectively:
254*868ced4dSStefano Radaelli		 * KNEE_IP = 0,   KNEE_OP = 0,     HI_COMP = 1,   LO_COMP = 1
255*868ced4dSStefano Radaelli		 * KNEE_IP = -24, KNEE_OP = -6,    HI_COMP = 1/4, LO_COMP = 1
256*868ced4dSStefano Radaelli		 * KNEE_IP = -42, KNEE_OP = -3,    HI_COMP = 0,   LO_COMP = 1
257*868ced4dSStefano Radaelli		 * KNEE_IP = -45, KNEE_OP = -9,    HI_COMP = 1/8, LO_COMP = 1
258*868ced4dSStefano Radaelli		 * KNEE_IP = -30, KNEE_OP = -10.5, HI_COMP = 1/4, LO_COMP = 1
259*868ced4dSStefano Radaelli		 */
260*868ced4dSStefano Radaelli		wlf,drc-cfg-regs = /bits/ 16 <0x01af 0x3248 0x0000 0x0000>,
261*868ced4dSStefano Radaelli				   /bits/ 16 <0x04af 0x324b 0x0010 0x0408>,
262*868ced4dSStefano Radaelli				   /bits/ 16 <0x04af 0x324b 0x0028 0x0704>,
263*868ced4dSStefano Radaelli				   /bits/ 16 <0x04af 0x324b 0x0018 0x078c>,
264*868ced4dSStefano Radaelli				   /bits/ 16 <0x04af 0x324b 0x0010 0x050e>;
265*868ced4dSStefano Radaelli		/* GPIO1 = DMIC_CLK, don't touch others */
266*868ced4dSStefano Radaelli		wlf,gpio-cfg = <0x0018>, <0xffff>, <0xffff>, <0xffff>;
267*868ced4dSStefano Radaelli	};
268*868ced4dSStefano Radaelli};
269*868ced4dSStefano Radaelli
270*868ced4dSStefano Radaelli/* Bluetooth */
271*868ced4dSStefano Radaelli&lpuart1 {
272*868ced4dSStefano Radaelli	pinctrl-names = "default";
273*868ced4dSStefano Radaelli	pinctrl-0 = <&pinctrl_lpuart1>;
274*868ced4dSStefano Radaelli	uart-has-rtscts;
275*868ced4dSStefano Radaelli	status = "okay";
276*868ced4dSStefano Radaelli};
277*868ced4dSStefano Radaelli
278*868ced4dSStefano Radaelli&mu_m0{
279*868ced4dSStefano Radaelli	status = "okay";
280*868ced4dSStefano Radaelli};
281*868ced4dSStefano Radaelli
282*868ced4dSStefano Radaelli&mu1_m0{
283*868ced4dSStefano Radaelli	status = "okay";
284*868ced4dSStefano Radaelli};
285*868ced4dSStefano Radaelli
286*868ced4dSStefano Radaelli&mu2_m0{
287*868ced4dSStefano Radaelli	status = "okay";
288*868ced4dSStefano Radaelli};
289*868ced4dSStefano Radaelli
290*868ced4dSStefano Radaelli&rtc {
291*868ced4dSStefano Radaelli	status = "disabled";
292*868ced4dSStefano Radaelli};
293*868ced4dSStefano Radaelli
294*868ced4dSStefano Radaelli&sai6 {
295*868ced4dSStefano Radaelli	assigned-clocks = <&acm IMX_ADMA_ACM_SAI6_MCLK_SEL>,
296*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
297*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
298*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
299*868ced4dSStefano Radaelli			  <&sai6_lpcg IMX_LPCG_CLK_4>;
300*868ced4dSStefano Radaelli	assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
301*868ced4dSStefano Radaelli	assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
302*868ced4dSStefano Radaelli	fsl,sai-asynchronous;
303*868ced4dSStefano Radaelli	status = "okay";
304*868ced4dSStefano Radaelli};
305*868ced4dSStefano Radaelli
306*868ced4dSStefano Radaelli&sai7 {
307*868ced4dSStefano Radaelli	assigned-clocks = <&acm IMX_ADMA_ACM_SAI7_MCLK_SEL>,
308*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
309*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
310*868ced4dSStefano Radaelli			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
311*868ced4dSStefano Radaelli			  <&sai7_lpcg IMX_LPCG_CLK_4>;
312*868ced4dSStefano Radaelli	assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
313*868ced4dSStefano Radaelli	assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
314*868ced4dSStefano Radaelli	fsl,sai-asynchronous;
315*868ced4dSStefano Radaelli	status = "okay";
316*868ced4dSStefano Radaelli};
317*868ced4dSStefano Radaelli
318*868ced4dSStefano Radaelli&thermal_zones {
319*868ced4dSStefano Radaelli	pmic-thermal {
320*868ced4dSStefano Radaelli		polling-delay-passive = <250>;
321*868ced4dSStefano Radaelli		polling-delay = <2000>;
322*868ced4dSStefano Radaelli		thermal-sensors = <&tsens IMX_SC_R_PMIC_0>;
323*868ced4dSStefano Radaelli		trips {
324*868ced4dSStefano Radaelli			pmic_alert0: trip0 {
325*868ced4dSStefano Radaelli				temperature = <110000>;
326*868ced4dSStefano Radaelli				hysteresis = <2000>;
327*868ced4dSStefano Radaelli				type = "passive";
328*868ced4dSStefano Radaelli			};
329*868ced4dSStefano Radaelli			pmic_crit0: trip1 {
330*868ced4dSStefano Radaelli				temperature = <125000>;
331*868ced4dSStefano Radaelli				hysteresis = <2000>;
332*868ced4dSStefano Radaelli				type = "critical";
333*868ced4dSStefano Radaelli			};
334*868ced4dSStefano Radaelli		};
335*868ced4dSStefano Radaelli		cooling-maps {
336*868ced4dSStefano Radaelli			map0 {
337*868ced4dSStefano Radaelli				trip = <&pmic_alert0>;
338*868ced4dSStefano Radaelli				cooling-device = <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
339*868ced4dSStefano Radaelli						 <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
340*868ced4dSStefano Radaelli						 <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
341*868ced4dSStefano Radaelli						 <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
342*868ced4dSStefano Radaelli			};
343*868ced4dSStefano Radaelli		};
344*868ced4dSStefano Radaelli	};
345*868ced4dSStefano Radaelli};
346*868ced4dSStefano Radaelli
347*868ced4dSStefano Radaelli/* eMMC */
348*868ced4dSStefano Radaelli&usdhc1 {
349*868ced4dSStefano Radaelli	pinctrl-names = "default", "state_100mhz", "state_200mhz";
350*868ced4dSStefano Radaelli	pinctrl-0 = <&pinctrl_usdhc1>;
351*868ced4dSStefano Radaelli	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
352*868ced4dSStefano Radaelli	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
353*868ced4dSStefano Radaelli	bus-width = <8>;
354*868ced4dSStefano Radaelli	non-removable;
355*868ced4dSStefano Radaelli	status = "okay";
356*868ced4dSStefano Radaelli};
357*868ced4dSStefano Radaelli
358*868ced4dSStefano Radaelli/* WIFI */
359*868ced4dSStefano Radaelli&usdhc3 {
360*868ced4dSStefano Radaelli	#address-cells = <1>;
361*868ced4dSStefano Radaelli	#size-cells = <0>;
362*868ced4dSStefano Radaelli	pinctrl-names = "default", "state_100mhz", "state_200mhz";
363*868ced4dSStefano Radaelli	pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_wifi>;
364*868ced4dSStefano Radaelli	pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_wifi>;
365*868ced4dSStefano Radaelli	pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_wifi>;
366*868ced4dSStefano Radaelli	bus-width = <4>;
367*868ced4dSStefano Radaelli	non-removable;
368*868ced4dSStefano Radaelli	status = "okay";
369*868ced4dSStefano Radaelli
370*868ced4dSStefano Radaelli	brcmf: wifi@1 {
371*868ced4dSStefano Radaelli		compatible = "brcm,bcm4329-fmac";
372*868ced4dSStefano Radaelli		reg = <1>;
373*868ced4dSStefano Radaelli	};
374*868ced4dSStefano Radaelli};
375*868ced4dSStefano Radaelli
376*868ced4dSStefano Radaelli&iomuxc {
377*868ced4dSStefano Radaelli	pinctrl-names = "default";
378*868ced4dSStefano Radaelli	pinctrl-0 = <&pinctrl_hog>;
379*868ced4dSStefano Radaelli
380*868ced4dSStefano Radaelli	pinctrl_esai0: esai0grp {
381*868ced4dSStefano Radaelli		fsl,pins = <
382*868ced4dSStefano Radaelli			IMX8QM_ESAI0_FSR_AUD_ESAI0_FSR				0xc6000040
383*868ced4dSStefano Radaelli			IMX8QM_ESAI0_FST_AUD_ESAI0_FST				0xc6000040
384*868ced4dSStefano Radaelli			IMX8QM_ESAI0_SCKR_AUD_ESAI0_SCKR			0xc6000040
385*868ced4dSStefano Radaelli			IMX8QM_ESAI0_SCKT_AUD_ESAI0_SCKT			0xc6000040
386*868ced4dSStefano Radaelli			IMX8QM_ESAI0_TX0_AUD_ESAI0_TX0				0xc6000040
387*868ced4dSStefano Radaelli			IMX8QM_ESAI0_TX5_RX0_AUD_ESAI0_TX5_RX0			0xc6000040
388*868ced4dSStefano Radaelli			IMX8QM_MCLK_OUT0_AUD_ACM_MCLK_OUT0			0xc600004c
389*868ced4dSStefano Radaelli		>;
390*868ced4dSStefano Radaelli	};
391*868ced4dSStefano Radaelli
392*868ced4dSStefano Radaelli	pinctrl_fec1: fec1grp {
393*868ced4dSStefano Radaelli		fsl,pins = <
394*868ced4dSStefano Radaelli			IMX8QM_ENET0_MDC_CONN_ENET0_MDC				0x06000048
395*868ced4dSStefano Radaelli			IMX8QM_ENET0_MDIO_CONN_ENET0_MDIO			0x06000048
396*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL	0x06000048
397*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC		0x06000048
398*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0		0x06000048
399*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1		0x06000048
400*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2		0x06000048
401*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3		0x06000048
402*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC		0x06000048
403*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL	0x06000048
404*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0		0x06000048
405*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1		0x06000048
406*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2		0x06000048
407*868ced4dSStefano Radaelli			IMX8QM_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3		0x06000048
408*868ced4dSStefano Radaelli			IMX8QM_ESAI0_TX2_RX3_LSIO_GPIO2_IO28			0x06000028
409*868ced4dSStefano Radaelli		>;
410*868ced4dSStefano Radaelli	};
411*868ced4dSStefano Radaelli
412*868ced4dSStefano Radaelli	pinctrl_hog: hoggrp {
413*868ced4dSStefano Radaelli		fsl,pins = <
414*868ced4dSStefano Radaelli			IMX8QM_ESAI1_FSR_LSIO_GPIO2_IO04			0x00000041
415*868ced4dSStefano Radaelli			IMX8QM_ESAI1_FST_LSIO_GPIO2_IO05			0x00000041
416*868ced4dSStefano Radaelli			IMX8QM_ESAI1_SCKR_LSIO_GPIO2_IO06			0x00000041
417*868ced4dSStefano Radaelli			IMX8QM_ESAI1_SCKT_LSIO_GPIO2_IO07			0x00000041
418*868ced4dSStefano Radaelli			IMX8QM_SPDIF0_EXT_CLK_LSIO_GPIO2_IO16			0x00000041
419*868ced4dSStefano Radaelli		>;
420*868ced4dSStefano Radaelli	};
421*868ced4dSStefano Radaelli
422*868ced4dSStefano Radaelli	pinctrl_i2c0: i2c0grp {
423*868ced4dSStefano Radaelli		fsl,pins = <
424*868ced4dSStefano Radaelli			IMX8QM_HDMI_TX0_TS_SCL_DMA_I2C0_SCL			0xc6000020
425*868ced4dSStefano Radaelli			IMX8QM_HDMI_TX0_TS_SDA_DMA_I2C0_SDA			0xc6000020
426*868ced4dSStefano Radaelli		>;
427*868ced4dSStefano Radaelli	};
428*868ced4dSStefano Radaelli
429*868ced4dSStefano Radaelli	pinctrl_lpuart1: lpuart1grp {
430*868ced4dSStefano Radaelli		fsl,pins = <
431*868ced4dSStefano Radaelli			IMX8QM_UART1_RX_DMA_UART1_RX				0x06000020
432*868ced4dSStefano Radaelli			IMX8QM_UART1_TX_DMA_UART1_TX				0x06000020
433*868ced4dSStefano Radaelli			IMX8QM_UART1_CTS_B_DMA_UART1_RTS_B			0x06000020
434*868ced4dSStefano Radaelli			IMX8QM_UART1_RTS_B_DMA_UART1_CTS_B			0x06000020
435*868ced4dSStefano Radaelli		>;
436*868ced4dSStefano Radaelli	};
437*868ced4dSStefano Radaelli
438*868ced4dSStefano Radaelli	pinctrl_usdhc1: usdhc1grp {
439*868ced4dSStefano Radaelli		fsl,pins = <
440*868ced4dSStefano Radaelli			IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK				0x06000041
441*868ced4dSStefano Radaelli			IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD				0x00000021
442*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0			0x00000021
443*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1			0x00000021
444*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2			0x00000021
445*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3			0x00000021
446*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4			0x00000021
447*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5			0x00000021
448*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6			0x00000021
449*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7			0x00000021
450*868ced4dSStefano Radaelli			IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE			0x06000041
451*868ced4dSStefano Radaelli			IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B			0x00000021
452*868ced4dSStefano Radaelli		>;
453*868ced4dSStefano Radaelli	};
454*868ced4dSStefano Radaelli
455*868ced4dSStefano Radaelli	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
456*868ced4dSStefano Radaelli		fsl,pins = <
457*868ced4dSStefano Radaelli			IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK				0x06000040
458*868ced4dSStefano Radaelli			IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD				0x00000020
459*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0			0x00000020
460*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1			0x00000020
461*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2			0x00000020
462*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3			0x00000020
463*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4			0x00000020
464*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5			0x00000020
465*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6			0x00000020
466*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7			0x00000020
467*868ced4dSStefano Radaelli			IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE			0x06000040
468*868ced4dSStefano Radaelli			IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B			0x00000020
469*868ced4dSStefano Radaelli		>;
470*868ced4dSStefano Radaelli	};
471*868ced4dSStefano Radaelli
472*868ced4dSStefano Radaelli	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
473*868ced4dSStefano Radaelli		fsl,pins = <
474*868ced4dSStefano Radaelli			IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK				0x06000040
475*868ced4dSStefano Radaelli			IMX8QM_EMMC0_CMD_CONN_EMMC0_CMD				0x00000020
476*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA0_CONN_EMMC0_DATA0			0x00000020
477*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA1_CONN_EMMC0_DATA1			0x00000020
478*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA2_CONN_EMMC0_DATA2			0x00000020
479*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA3_CONN_EMMC0_DATA3			0x00000020
480*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA4_CONN_EMMC0_DATA4			0x00000020
481*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA5_CONN_EMMC0_DATA5			0x00000020
482*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA6_CONN_EMMC0_DATA6			0x00000020
483*868ced4dSStefano Radaelli			IMX8QM_EMMC0_DATA7_CONN_EMMC0_DATA7			0x00000020
484*868ced4dSStefano Radaelli			IMX8QM_EMMC0_STROBE_CONN_EMMC0_STROBE			0x06000040
485*868ced4dSStefano Radaelli			IMX8QM_EMMC0_RESET_B_CONN_EMMC0_RESET_B			0x00000020
486*868ced4dSStefano Radaelli		>;
487*868ced4dSStefano Radaelli	};
488*868ced4dSStefano Radaelli
489*868ced4dSStefano Radaelli	pinctrl_usdhc3: usdhc3grp {
490*868ced4dSStefano Radaelli		fsl,pins = <
491*868ced4dSStefano Radaelli			IMX8QM_USDHC2_CLK_CONN_USDHC2_CLK			0x06000041
492*868ced4dSStefano Radaelli			IMX8QM_USDHC2_CMD_CONN_USDHC2_CMD			0x00000021
493*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA0_CONN_USDHC2_DATA0			0x00000021
494*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA1_CONN_USDHC2_DATA1			0x00000021
495*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA2_CONN_USDHC2_DATA2			0x00000021
496*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA3_CONN_USDHC2_DATA3			0x00000021
497*868ced4dSStefano Radaelli		>;
498*868ced4dSStefano Radaelli	};
499*868ced4dSStefano Radaelli
500*868ced4dSStefano Radaelli	pinctrl_usdhc3_100mhz: usdhc3100mhzgrp {
501*868ced4dSStefano Radaelli		fsl,pins = <
502*868ced4dSStefano Radaelli			IMX8QM_USDHC2_CLK_CONN_USDHC2_CLK			0x06000040
503*868ced4dSStefano Radaelli			IMX8QM_USDHC2_CMD_CONN_USDHC2_CMD			0x00000020
504*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA0_CONN_USDHC2_DATA0			0x00000020
505*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA1_CONN_USDHC2_DATA1			0x00000020
506*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA2_CONN_USDHC2_DATA2			0x00000020
507*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA3_CONN_USDHC2_DATA3			0x00000020
508*868ced4dSStefano Radaelli		>;
509*868ced4dSStefano Radaelli	};
510*868ced4dSStefano Radaelli
511*868ced4dSStefano Radaelli	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
512*868ced4dSStefano Radaelli		fsl,pins = <
513*868ced4dSStefano Radaelli			IMX8QM_USDHC2_CLK_CONN_USDHC2_CLK			0x06000040
514*868ced4dSStefano Radaelli			IMX8QM_USDHC2_CMD_CONN_USDHC2_CMD			0x00000020
515*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA0_CONN_USDHC2_DATA0			0x00000020
516*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA1_CONN_USDHC2_DATA1			0x00000020
517*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA2_CONN_USDHC2_DATA2			0x00000020
518*868ced4dSStefano Radaelli			IMX8QM_USDHC2_DATA3_CONN_USDHC2_DATA3			0x00000020
519*868ced4dSStefano Radaelli		>;
520*868ced4dSStefano Radaelli	};
521*868ced4dSStefano Radaelli
522*868ced4dSStefano Radaelli	pinctrl_wifi: wifigrp {
523*868ced4dSStefano Radaelli		fsl,pins = <
524*868ced4dSStefano Radaelli			/* GPIOs used by user space WiFi init */
525*868ced4dSStefano Radaelli			IMX8QM_SCU_GPIO0_07_SCU_DSC_RTC_CLOCK_OUTPUT_32K	0xc600004c
526*868ced4dSStefano Radaelli			IMX8QM_SCU_GPIO0_03_LSIO_GPIO0_IO31			0x06000021
527*868ced4dSStefano Radaelli			IMX8QM_SCU_GPIO0_02_LSIO_GPIO0_IO30			0x00000021
528*868ced4dSStefano Radaelli			IMX8QM_QSPI1A_DATA0_LSIO_GPIO4_IO26			0x00000021
529*868ced4dSStefano Radaelli		>;
530*868ced4dSStefano Radaelli	};
531*868ced4dSStefano Radaelli};
532