xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx8mp-tx8p-ml81-moduline-display-106.dts (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*833e5d42SEmmanuel Vadot/*
3*833e5d42SEmmanuel Vadot * Copyright 2025 GOcontroll B.V.
4*833e5d42SEmmanuel Vadot * Author: Maud Spierings <maudspierings@gocontroll.com>
5*833e5d42SEmmanuel Vadot */
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadot/dts-v1/;
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadot#include "imx8mp-tx8p-ml81.dtsi"
10*833e5d42SEmmanuel Vadot
11*833e5d42SEmmanuel Vadot/ {
12*833e5d42SEmmanuel Vadot	compatible = "gocontroll,moduline-display", "fsl,imx8mp";
13*833e5d42SEmmanuel Vadot	chassis-type = "embedded";
14*833e5d42SEmmanuel Vadot	hardware = "Moduline Display V1.06";
15*833e5d42SEmmanuel Vadot	model = "GOcontroll Moduline Display baseboard";
16*833e5d42SEmmanuel Vadot
17*833e5d42SEmmanuel Vadot	aliases {
18*833e5d42SEmmanuel Vadot		can0 = &flexcan1;
19*833e5d42SEmmanuel Vadot		can1 = &flexcan2;
20*833e5d42SEmmanuel Vadot		ethernet0 = &eqos;
21*833e5d42SEmmanuel Vadot		ethernet1 = &fec;
22*833e5d42SEmmanuel Vadot		mmc0 = &usdhc3;
23*833e5d42SEmmanuel Vadot		mmc1 = &usdhc2;
24*833e5d42SEmmanuel Vadot		rtc0 = &rtc_pcf; /* i2c rtc is the main rtc */
25*833e5d42SEmmanuel Vadot		rtc1 = &snvs_rtc;
26*833e5d42SEmmanuel Vadot		spi0 = &ecspi2; /* spidev number compatibility */
27*833e5d42SEmmanuel Vadot		spi1 = &ecspi1; /* spidev number compatibility */
28*833e5d42SEmmanuel Vadot	};
29*833e5d42SEmmanuel Vadot
30*833e5d42SEmmanuel Vadot	chosen {
31*833e5d42SEmmanuel Vadot		stdout-path = "serial0:115200n8";
32*833e5d42SEmmanuel Vadot	};
33*833e5d42SEmmanuel Vadot
34*833e5d42SEmmanuel Vadot	external-sensor-supply {
35*833e5d42SEmmanuel Vadot		compatible = "regulator-output";
36*833e5d42SEmmanuel Vadot		vout-supply = <&reg_5v0_sensor>;
37*833e5d42SEmmanuel Vadot	};
38*833e5d42SEmmanuel Vadot
39*833e5d42SEmmanuel Vadot	reg_1v8_per: regulator-1v8-per {
40*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
41*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pinctrl_reg_1v8>;
42*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
43*833e5d42SEmmanuel Vadot		power-supply = <&reg_3v3_per>;
44*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
45*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
46*833e5d42SEmmanuel Vadot		regulator-name = "1v8-per";
47*833e5d42SEmmanuel Vadot		gpio = <&gpio3 25 GPIO_ACTIVE_HIGH>;
48*833e5d42SEmmanuel Vadot		enable-active-high;
49*833e5d42SEmmanuel Vadot	};
50*833e5d42SEmmanuel Vadot
51*833e5d42SEmmanuel Vadot	reg_3v3_per: regulator-3v3-per {
52*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
53*833e5d42SEmmanuel Vadot		power-supply = <&reg_6v4>;
54*833e5d42SEmmanuel Vadot		regulator-always-on;
55*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
56*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
57*833e5d42SEmmanuel Vadot		regulator-name = "3v3-per";
58*833e5d42SEmmanuel Vadot	};
59*833e5d42SEmmanuel Vadot
60*833e5d42SEmmanuel Vadot	reg_5v0: regulator-5v0 {
61*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
62*833e5d42SEmmanuel Vadot		power-supply = <&reg_6v4>;
63*833e5d42SEmmanuel Vadot		regulator-always-on;
64*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
65*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
66*833e5d42SEmmanuel Vadot		regulator-name = "5v0";
67*833e5d42SEmmanuel Vadot	};
68*833e5d42SEmmanuel Vadot
69*833e5d42SEmmanuel Vadot	reg_5v0_sensor: regulator-5v0-sensor {
70*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
71*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pinctrl_reg_5v0_sensor>;
72*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
73*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
74*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
75*833e5d42SEmmanuel Vadot		regulator-name = "5v0-supply-external-sensor";
76*833e5d42SEmmanuel Vadot		gpio = <&gpio4 9 GPIO_ACTIVE_HIGH>;
77*833e5d42SEmmanuel Vadot		enable-active-high;
78*833e5d42SEmmanuel Vadot	};
79*833e5d42SEmmanuel Vadot
80*833e5d42SEmmanuel Vadot	reg_6v4: regulator-6v4 {
81*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
82*833e5d42SEmmanuel Vadot		regulator-always-on;
83*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <6400000>;
84*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <6400000>;
85*833e5d42SEmmanuel Vadot		regulator-name = "6v4";
86*833e5d42SEmmanuel Vadot	};
87*833e5d42SEmmanuel Vadot
88*833e5d42SEmmanuel Vadot	reg_can1_stby: regulator-can1-stby {
89*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
90*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pinctrl_flexcan1_reg>;
91*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
92*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
93*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
94*833e5d42SEmmanuel Vadot		regulator-name = "can1-stby";
95*833e5d42SEmmanuel Vadot		gpio = <&gpio4 3 GPIO_ACTIVE_LOW>;
96*833e5d42SEmmanuel Vadot	};
97*833e5d42SEmmanuel Vadot
98*833e5d42SEmmanuel Vadot	reg_can2_stby: regulator-can2-stby {
99*833e5d42SEmmanuel Vadot		compatible = "regulator-fixed";
100*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pinctrl_flexcan2_reg>;
101*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
102*833e5d42SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
103*833e5d42SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
104*833e5d42SEmmanuel Vadot		regulator-name = "can2-stby";
105*833e5d42SEmmanuel Vadot		gpio = <&gpio5 9 GPIO_ACTIVE_LOW>;
106*833e5d42SEmmanuel Vadot	};
107*833e5d42SEmmanuel Vadot
108*833e5d42SEmmanuel Vadot	sound {
109*833e5d42SEmmanuel Vadot		compatible = "simple-audio-card";
110*833e5d42SEmmanuel Vadot		simple-audio-card,bitclock-master = <&cpudai>;
111*833e5d42SEmmanuel Vadot		simple-audio-card,format = "i2s";
112*833e5d42SEmmanuel Vadot		simple-audio-card,frame-master = <&cpudai>;
113*833e5d42SEmmanuel Vadot		simple-audio-card,name = "tas2505-audio";
114*833e5d42SEmmanuel Vadot		simple-audio-card,routing = "Speaker", "DAC";
115*833e5d42SEmmanuel Vadot		simple-audio-card,widgets = "Speaker", "Speaker External";
116*833e5d42SEmmanuel Vadot
117*833e5d42SEmmanuel Vadot		simple-audio-card,codec {
118*833e5d42SEmmanuel Vadot			sound-dai = <&tas2505>;
119*833e5d42SEmmanuel Vadot		};
120*833e5d42SEmmanuel Vadot
121*833e5d42SEmmanuel Vadot		cpudai: simple-audio-card,cpu {
122*833e5d42SEmmanuel Vadot			sound-dai = <&sai6>;
123*833e5d42SEmmanuel Vadot		};
124*833e5d42SEmmanuel Vadot	};
125*833e5d42SEmmanuel Vadot
126*833e5d42SEmmanuel Vadot	wifi_powerseq: wifi-powerseq {
127*833e5d42SEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
128*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pinctrl_wl_reg>;
129*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
130*833e5d42SEmmanuel Vadot		post-power-on-delay-ms = <100>;
131*833e5d42SEmmanuel Vadot		power-off-delay-us = <500000>;
132*833e5d42SEmmanuel Vadot		reset-gpios = <&gpio2 19 GPIO_ACTIVE_LOW>;
133*833e5d42SEmmanuel Vadot	};
134*833e5d42SEmmanuel Vadot};
135*833e5d42SEmmanuel Vadot
136*833e5d42SEmmanuel Vadot&ecspi1 {
137*833e5d42SEmmanuel Vadot	cs-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>,
138*833e5d42SEmmanuel Vadot		   <&gpio1 11 GPIO_ACTIVE_LOW>,
139*833e5d42SEmmanuel Vadot		   <&gpio1 10 GPIO_ACTIVE_LOW>;
140*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_ecspi1>;
141*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
142*833e5d42SEmmanuel Vadot	status = "okay";
143*833e5d42SEmmanuel Vadot
144*833e5d42SEmmanuel Vadot	connector@0 {
145*833e5d42SEmmanuel Vadot		compatible = "gocontroll,moduline-module-slot";
146*833e5d42SEmmanuel Vadot		reg = <0>;
147*833e5d42SEmmanuel Vadot		interrupt-parent = <&gpio4>;
148*833e5d42SEmmanuel Vadot		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
149*833e5d42SEmmanuel Vadot		i2c-bus = <&i2c2>;
150*833e5d42SEmmanuel Vadot		reset-gpios = <&gpio5 10 GPIO_ACTIVE_LOW>;
151*833e5d42SEmmanuel Vadot		slot-number = <1>;
152*833e5d42SEmmanuel Vadot		spi-max-frequency = <54000000>;
153*833e5d42SEmmanuel Vadot		sync-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
154*833e5d42SEmmanuel Vadot		vddhpp-supply = <&reg_6v4>;
155*833e5d42SEmmanuel Vadot		vddp-supply = <&reg_5v0>;
156*833e5d42SEmmanuel Vadot		vdd-supply = <&reg_3v3_per>;
157*833e5d42SEmmanuel Vadot	};
158*833e5d42SEmmanuel Vadot
159*833e5d42SEmmanuel Vadot	connector@1 {
160*833e5d42SEmmanuel Vadot		compatible = "gocontroll,moduline-module-slot";
161*833e5d42SEmmanuel Vadot		reg = <1>;
162*833e5d42SEmmanuel Vadot		interrupt-parent = <&gpio1>;
163*833e5d42SEmmanuel Vadot		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
164*833e5d42SEmmanuel Vadot		i2c-bus = <&i2c2>;
165*833e5d42SEmmanuel Vadot		reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
166*833e5d42SEmmanuel Vadot		slot-number = <2>;
167*833e5d42SEmmanuel Vadot		spi-max-frequency = <54000000>;
168*833e5d42SEmmanuel Vadot		sync-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
169*833e5d42SEmmanuel Vadot		vddhpp-supply = <&reg_6v4>;
170*833e5d42SEmmanuel Vadot		vddp-supply = <&reg_5v0>;
171*833e5d42SEmmanuel Vadot		vdd-supply = <&reg_3v3_per>;
172*833e5d42SEmmanuel Vadot	};
173*833e5d42SEmmanuel Vadot
174*833e5d42SEmmanuel Vadot	adc@2 {
175*833e5d42SEmmanuel Vadot		compatible = "microchip,mcp3004";
176*833e5d42SEmmanuel Vadot		reg = <2>;
177*833e5d42SEmmanuel Vadot		spi-max-frequency = <2300000>;
178*833e5d42SEmmanuel Vadot		vref-supply = <&reg_vdd_3v3>;
179*833e5d42SEmmanuel Vadot	};
180*833e5d42SEmmanuel Vadot};
181*833e5d42SEmmanuel Vadot
182*833e5d42SEmmanuel Vadot&flexcan1 {
183*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexcan1>;
184*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
185*833e5d42SEmmanuel Vadot	xceiver-supply = <&reg_can1_stby>;
186*833e5d42SEmmanuel Vadot	status = "okay";
187*833e5d42SEmmanuel Vadot};
188*833e5d42SEmmanuel Vadot
189*833e5d42SEmmanuel Vadot&flexcan2 {
190*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexcan2>;
191*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
192*833e5d42SEmmanuel Vadot	xceiver-supply = <&reg_can2_stby>;
193*833e5d42SEmmanuel Vadot	status = "okay";
194*833e5d42SEmmanuel Vadot};
195*833e5d42SEmmanuel Vadot
196*833e5d42SEmmanuel Vadot&i2c2 {
197*833e5d42SEmmanuel Vadot	clock-frequency = <400000>;
198*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c2>;
199*833e5d42SEmmanuel Vadot	pinctrl-1 = <&pinctrl_i2c2_gpio>;
200*833e5d42SEmmanuel Vadot	pinctrl-names = "default", "gpio";
201*833e5d42SEmmanuel Vadot	scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
202*833e5d42SEmmanuel Vadot	sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
203*833e5d42SEmmanuel Vadot	status = "okay";
204*833e5d42SEmmanuel Vadot};
205*833e5d42SEmmanuel Vadot
206*833e5d42SEmmanuel Vadot&i2c4 {
207*833e5d42SEmmanuel Vadot	clock-frequency = <400000>;
208*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c4>;
209*833e5d42SEmmanuel Vadot	pinctrl-1 = <&pinctrl_i2c4_gpio>;
210*833e5d42SEmmanuel Vadot	pinctrl-names = "default", "gpio";
211*833e5d42SEmmanuel Vadot	scl-gpios = <&gpio5 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
212*833e5d42SEmmanuel Vadot	sda-gpios = <&gpio5 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
213*833e5d42SEmmanuel Vadot	status = "okay";
214*833e5d42SEmmanuel Vadot
215*833e5d42SEmmanuel Vadot	tas2505: audio-codec@18 {
216*833e5d42SEmmanuel Vadot		compatible = "ti,tas2505";
217*833e5d42SEmmanuel Vadot		reg = <0x18>;
218*833e5d42SEmmanuel Vadot		clocks = <&clk IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1>;
219*833e5d42SEmmanuel Vadot		clock-names = "mclk";
220*833e5d42SEmmanuel Vadot		#sound-dai-cells = <0>;
221*833e5d42SEmmanuel Vadot		aic32x4-gpio-func = <0xff 0xff 0xff 0xff 0xff>;
222*833e5d42SEmmanuel Vadot		av-supply = <&reg_1v8_per>;
223*833e5d42SEmmanuel Vadot		dv-supply = <&reg_1v8_per>;
224*833e5d42SEmmanuel Vadot		iov-supply = <&reg_vdd_3v3>;
225*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pinctrl_tas_reset>;
226*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
227*833e5d42SEmmanuel Vadot		reset-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
228*833e5d42SEmmanuel Vadot	};
229*833e5d42SEmmanuel Vadot
230*833e5d42SEmmanuel Vadot	rtc_pcf: rtc@51 {
231*833e5d42SEmmanuel Vadot		compatible = "nxp,pcf85063a";
232*833e5d42SEmmanuel Vadot		reg = <0x51>;
233*833e5d42SEmmanuel Vadot		quartz-load-femtofarads = <7000>;
234*833e5d42SEmmanuel Vadot
235*833e5d42SEmmanuel Vadot		clock {
236*833e5d42SEmmanuel Vadot			compatible = "fixed-clock";
237*833e5d42SEmmanuel Vadot			#clock-cells = <0>;
238*833e5d42SEmmanuel Vadot			clock-frequency = <32768>;
239*833e5d42SEmmanuel Vadot		};
240*833e5d42SEmmanuel Vadot	};
241*833e5d42SEmmanuel Vadot};
242*833e5d42SEmmanuel Vadot
243*833e5d42SEmmanuel Vadot&iomuxc {
244*833e5d42SEmmanuel Vadot	pinctrl_bt: btgrp {
245*833e5d42SEmmanuel Vadot		fsl,pins = <
246*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14
247*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
248*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12
249*833e5d42SEmmanuel Vadot				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE | MX8MP_HYS_SCHMITT)
250*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15
251*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
252*833e5d42SEmmanuel Vadot		>;
253*833e5d42SEmmanuel Vadot	};
254*833e5d42SEmmanuel Vadot
255*833e5d42SEmmanuel Vadot	pinctrl_ecspi1: ecspi1grp {
256*833e5d42SEmmanuel Vadot		fsl,pins = <
257*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI
258*833e5d42SEmmanuel Vadot				MX8MP_DSE_X4
259*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO
260*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X4 | MX8MP_HYS_SCHMITT)
261*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK
262*833e5d42SEmmanuel Vadot				MX8MP_DSE_X4
263*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12
264*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
265*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11
266*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
267*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10
268*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
269*833e5d42SEmmanuel Vadot		>;
270*833e5d42SEmmanuel Vadot	};
271*833e5d42SEmmanuel Vadot
272*833e5d42SEmmanuel Vadot	pinctrl_flexcan1: flexcan1grp {
273*833e5d42SEmmanuel Vadot		fsl,pins = <
274*833e5d42SEmmanuel Vadot			 MX8MP_IOMUXC_SPDIF_RX__CAN1_RX
275*833e5d42SEmmanuel Vadot				 (MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
276*833e5d42SEmmanuel Vadot			 MX8MP_IOMUXC_SPDIF_TX__CAN1_TX
277*833e5d42SEmmanuel Vadot				 (MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
278*833e5d42SEmmanuel Vadot		>;
279*833e5d42SEmmanuel Vadot	};
280*833e5d42SEmmanuel Vadot
281*833e5d42SEmmanuel Vadot	pinctrl_flexcan1_reg: flexcan1reggrp {
282*833e5d42SEmmanuel Vadot		fsl,pins = <
283*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03
284*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
285*833e5d42SEmmanuel Vadot		>;
286*833e5d42SEmmanuel Vadot	};
287*833e5d42SEmmanuel Vadot
288*833e5d42SEmmanuel Vadot	pinctrl_flexcan2: flexcan2grp {
289*833e5d42SEmmanuel Vadot		fsl,pins = <
290*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_UART3_TXD__CAN2_RX
291*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
292*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_UART3_RXD__CAN2_TX
293*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
294*833e5d42SEmmanuel Vadot		>;
295*833e5d42SEmmanuel Vadot	};
296*833e5d42SEmmanuel Vadot
297*833e5d42SEmmanuel Vadot	pinctrl_flexcan2_reg: flexcan2reggrp {
298*833e5d42SEmmanuel Vadot		fsl,pins = <
299*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09
300*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
301*833e5d42SEmmanuel Vadot		>;
302*833e5d42SEmmanuel Vadot	};
303*833e5d42SEmmanuel Vadot
304*833e5d42SEmmanuel Vadot	pinctrl_i2c2: i2c2grp {
305*833e5d42SEmmanuel Vadot		fsl,pins = <
306*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL
307*833e5d42SEmmanuel Vadot				MX8MP_I2C_DEFAULT
308*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA
309*833e5d42SEmmanuel Vadot				MX8MP_I2C_DEFAULT
310*833e5d42SEmmanuel Vadot		>;
311*833e5d42SEmmanuel Vadot	};
312*833e5d42SEmmanuel Vadot
313*833e5d42SEmmanuel Vadot	pinctrl_i2c2_gpio: i2c2-gpiogrp {
314*833e5d42SEmmanuel Vadot		fsl,pins = <
315*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_I2C2_SCL__GPIO5_IO16
316*833e5d42SEmmanuel Vadot				MX8MP_I2C_DEFAULT
317*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_I2C2_SDA__GPIO5_IO17
318*833e5d42SEmmanuel Vadot				MX8MP_I2C_DEFAULT
319*833e5d42SEmmanuel Vadot		>;
320*833e5d42SEmmanuel Vadot	};
321*833e5d42SEmmanuel Vadot
322*833e5d42SEmmanuel Vadot	pinctrl_i2c4: i2c4grp {
323*833e5d42SEmmanuel Vadot		fsl,pins = <
324*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_ECSPI2_MISO__I2C4_SCL
325*833e5d42SEmmanuel Vadot				MX8MP_I2C_DEFAULT
326*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_ECSPI2_SS0__I2C4_SDA
327*833e5d42SEmmanuel Vadot				MX8MP_I2C_DEFAULT
328*833e5d42SEmmanuel Vadot		>;
329*833e5d42SEmmanuel Vadot	};
330*833e5d42SEmmanuel Vadot
331*833e5d42SEmmanuel Vadot	pinctrl_i2c4_gpio: i2c4-gpiogrp {
332*833e5d42SEmmanuel Vadot		fsl,pins = <
333*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_ECSPI2_MISO__GPIO5_IO12
334*833e5d42SEmmanuel Vadot				MX8MP_I2C_DEFAULT
335*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13
336*833e5d42SEmmanuel Vadot				MX8MP_I2C_DEFAULT
337*833e5d42SEmmanuel Vadot		>;
338*833e5d42SEmmanuel Vadot	};
339*833e5d42SEmmanuel Vadot
340*833e5d42SEmmanuel Vadot	pinctrl_usdhc2: pinctrlusdhc2grp {
341*833e5d42SEmmanuel Vadot		fsl,pins = <
342*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK
343*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_PULL_ENABLE)
344*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD
345*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
346*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0
347*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
348*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1
349*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
350*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2
351*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
352*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3
353*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
354*833e5d42SEmmanuel Vadot		>;
355*833e5d42SEmmanuel Vadot	};
356*833e5d42SEmmanuel Vadot
357*833e5d42SEmmanuel Vadot	pinctrl_reg_1v8: reg-1v8-grp {
358*833e5d42SEmmanuel Vadot		fsl,pins = <
359*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_MCLK__GPIO3_IO25
360*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
361*833e5d42SEmmanuel Vadot		>;
362*833e5d42SEmmanuel Vadot	};
363*833e5d42SEmmanuel Vadot
364*833e5d42SEmmanuel Vadot	pinctrl_reg_5v0_sensor: reg-5v0-sensorgrp {
365*833e5d42SEmmanuel Vadot		fsl,pins = <
366*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD7__GPIO4_IO09
367*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
368*833e5d42SEmmanuel Vadot		>;
369*833e5d42SEmmanuel Vadot	};
370*833e5d42SEmmanuel Vadot
371*833e5d42SEmmanuel Vadot	pinctrl_sai6: sai6grp {
372*833e5d42SEmmanuel Vadot		fsl,pins = <
373*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD6__AUDIOMIX_SAI6_TX_SYNC
374*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X6 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT)
375*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD4__AUDIOMIX_SAI6_TX_BCLK
376*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X6 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT)
377*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD5__AUDIOMIX_SAI6_TX_DATA00
378*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X6 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT)
379*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_TXD7__AUDIOMIX_SAI6_MCLK
380*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X6 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT)
381*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI1_RXD5__AUDIOMIX_SAI6_RX_DATA00
382*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X6 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT)
383*833e5d42SEmmanuel Vadot		>;
384*833e5d42SEmmanuel Vadot	};
385*833e5d42SEmmanuel Vadot
386*833e5d42SEmmanuel Vadot	pinctrl_tas_reset: tasresetgrp {
387*833e5d42SEmmanuel Vadot		fsl,pins = <
388*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24
389*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
390*833e5d42SEmmanuel Vadot		>;
391*833e5d42SEmmanuel Vadot	};
392*833e5d42SEmmanuel Vadot
393*833e5d42SEmmanuel Vadot	pinctrl_uart1: uart1grp {
394*833e5d42SEmmanuel Vadot		fsl,pins = <
395*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX
396*833e5d42SEmmanuel Vadot				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
397*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX
398*833e5d42SEmmanuel Vadot				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
399*833e5d42SEmmanuel Vadot		>;
400*833e5d42SEmmanuel Vadot	};
401*833e5d42SEmmanuel Vadot
402*833e5d42SEmmanuel Vadot	pinctrl_uart2: uart2grp {
403*833e5d42SEmmanuel Vadot		fsl,pins = <
404*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX
405*833e5d42SEmmanuel Vadot				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
406*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX
407*833e5d42SEmmanuel Vadot				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
408*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI3_RXD__UART2_DCE_RTS
409*833e5d42SEmmanuel Vadot				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
410*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SAI3_RXC__UART2_DCE_CTS
411*833e5d42SEmmanuel Vadot				(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
412*833e5d42SEmmanuel Vadot		>;
413*833e5d42SEmmanuel Vadot	};
414*833e5d42SEmmanuel Vadot
415*833e5d42SEmmanuel Vadot	pinctrl_wdog: wdoggrp {
416*833e5d42SEmmanuel Vadot		fsl,pins = <
417*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B
418*833e5d42SEmmanuel Vadot				(MX8MP_DSE_X6 | MX8MP_HYS_SCHMITT)
419*833e5d42SEmmanuel Vadot		>;
420*833e5d42SEmmanuel Vadot	};
421*833e5d42SEmmanuel Vadot
422*833e5d42SEmmanuel Vadot	pinctrl_wl_int: wlintgrp {
423*833e5d42SEmmanuel Vadot		fsl,pins = <
424*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_GPIO1_IO13__GPIO1_IO13
425*833e5d42SEmmanuel Vadot				(MX8MP_PULL_UP | MX8MP_HYS_SCHMITT | MX8MP_PULL_ENABLE)
426*833e5d42SEmmanuel Vadot		>;
427*833e5d42SEmmanuel Vadot	};
428*833e5d42SEmmanuel Vadot
429*833e5d42SEmmanuel Vadot	pinctrl_wl_reg: wlreggrp {
430*833e5d42SEmmanuel Vadot		fsl,pins = <
431*833e5d42SEmmanuel Vadot			MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19
432*833e5d42SEmmanuel Vadot				MX8MP_DSE_X1
433*833e5d42SEmmanuel Vadot		>;
434*833e5d42SEmmanuel Vadot	};
435*833e5d42SEmmanuel Vadot};
436*833e5d42SEmmanuel Vadot
437*833e5d42SEmmanuel Vadot&sai6 {
438*833e5d42SEmmanuel Vadot	assigned-clocks = <&clk IMX8MP_CLK_SAI6>;
439*833e5d42SEmmanuel Vadot	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
440*833e5d42SEmmanuel Vadot	assigned-clock-rates = <12288000>;
441*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_sai6>;
442*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
443*833e5d42SEmmanuel Vadot	fsl,sai-mclk-direction-output;
444*833e5d42SEmmanuel Vadot	status = "okay";
445*833e5d42SEmmanuel Vadot};
446*833e5d42SEmmanuel Vadot
447*833e5d42SEmmanuel Vadot&uart1 {
448*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart1>;
449*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
450*833e5d42SEmmanuel Vadot	status = "okay";
451*833e5d42SEmmanuel Vadot};
452*833e5d42SEmmanuel Vadot
453*833e5d42SEmmanuel Vadot&uart2 {
454*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_uart2>;
455*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
456*833e5d42SEmmanuel Vadot	uart-has-rtscts;
457*833e5d42SEmmanuel Vadot	status = "okay";
458*833e5d42SEmmanuel Vadot
459*833e5d42SEmmanuel Vadot	bluetooth {
460*833e5d42SEmmanuel Vadot		compatible = "infineon,cyw43439-bt", "brcm,bcm4329-bt";
461*833e5d42SEmmanuel Vadot		interrupt-parent = <&gpio1>;
462*833e5d42SEmmanuel Vadot		interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
463*833e5d42SEmmanuel Vadot		interrupt-names = "host-wakeup";
464*833e5d42SEmmanuel Vadot		device-wakeup-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
465*833e5d42SEmmanuel Vadot		max-speed = <921600>;
466*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pinctrl_bt>;
467*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
468*833e5d42SEmmanuel Vadot		shutdown-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
469*833e5d42SEmmanuel Vadot		vbat-supply = <&reg_3v3_per>;
470*833e5d42SEmmanuel Vadot		vddio-supply = <&reg_3v3_per>;
471*833e5d42SEmmanuel Vadot	};
472*833e5d42SEmmanuel Vadot};
473*833e5d42SEmmanuel Vadot
474*833e5d42SEmmanuel Vadot&usb3_0 {
475*833e5d42SEmmanuel Vadot	status = "okay";
476*833e5d42SEmmanuel Vadot};
477*833e5d42SEmmanuel Vadot
478*833e5d42SEmmanuel Vadot&usb3_1 {
479*833e5d42SEmmanuel Vadot	status = "okay";
480*833e5d42SEmmanuel Vadot};
481*833e5d42SEmmanuel Vadot
482*833e5d42SEmmanuel Vadot&usb3_phy0 {
483*833e5d42SEmmanuel Vadot	status = "okay";
484*833e5d42SEmmanuel Vadot};
485*833e5d42SEmmanuel Vadot
486*833e5d42SEmmanuel Vadot&usb3_phy1 {
487*833e5d42SEmmanuel Vadot	status = "okay";
488*833e5d42SEmmanuel Vadot};
489*833e5d42SEmmanuel Vadot
490*833e5d42SEmmanuel Vadot&usb_dwc3_0 {
491*833e5d42SEmmanuel Vadot	dr_mode = "peripheral";
492*833e5d42SEmmanuel Vadot};
493*833e5d42SEmmanuel Vadot
494*833e5d42SEmmanuel Vadot&usdhc2 {
495*833e5d42SEmmanuel Vadot	#address-cells = <1>;
496*833e5d42SEmmanuel Vadot	#size-cells = <0>;
497*833e5d42SEmmanuel Vadot	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
498*833e5d42SEmmanuel Vadot	assigned-clock-rates = <50000000>;
499*833e5d42SEmmanuel Vadot	cap-power-off-card;
500*833e5d42SEmmanuel Vadot	keep-power-in-suspend;
501*833e5d42SEmmanuel Vadot	max-frequency = <50000000>;
502*833e5d42SEmmanuel Vadot	mmc-pwrseq = <&wifi_powerseq>;
503*833e5d42SEmmanuel Vadot	non-removable;
504*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_usdhc2>;
505*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
506*833e5d42SEmmanuel Vadot	sd-uhs-sdr25;
507*833e5d42SEmmanuel Vadot	vmmc-supply = <&reg_3v3_per>;
508*833e5d42SEmmanuel Vadot	status = "okay";
509*833e5d42SEmmanuel Vadot
510*833e5d42SEmmanuel Vadot	wifi@1 {
511*833e5d42SEmmanuel Vadot		compatible = "infineon,cyw43439-fmac", "brcm,bcm4329-fmac";
512*833e5d42SEmmanuel Vadot		reg = <1>;
513*833e5d42SEmmanuel Vadot		interrupt-parent = <&gpio1>;
514*833e5d42SEmmanuel Vadot		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
515*833e5d42SEmmanuel Vadot		interrupt-names = "host-wake";
516*833e5d42SEmmanuel Vadot		pinctrl-0 = <&pinctrl_wl_int>;
517*833e5d42SEmmanuel Vadot		pinctrl-names = "default";
518*833e5d42SEmmanuel Vadot		brcm,board-type = "GOcontroll,moduline";
519*833e5d42SEmmanuel Vadot	};
520*833e5d42SEmmanuel Vadot};
521*833e5d42SEmmanuel Vadot
522*833e5d42SEmmanuel Vadot&wdog1 {
523*833e5d42SEmmanuel Vadot	pinctrl-0 = <&pinctrl_wdog>;
524*833e5d42SEmmanuel Vadot	pinctrl-names = "default";
525*833e5d42SEmmanuel Vadot	fsl,ext-reset-output;
526*833e5d42SEmmanuel Vadot	status = "okay";
527*833e5d42SEmmanuel Vadot};
528