1*c982ecfaSAlexander Stein// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2*c982ecfaSAlexander Stein/*
3*c982ecfaSAlexander Stein * Copyright (c) 2022-2023 TQ-Systems GmbH <linux@ew.tq-group.com>,
4*c982ecfaSAlexander Stein * D-82229 Seefeld, Germany.
5*c982ecfaSAlexander Stein * Author: Markus Niebel
6*c982ecfaSAlexander Stein * Author: Alexander Stein
7*c982ecfaSAlexander Stein */
8*c982ecfaSAlexander Stein/dts-v1/;
9*c982ecfaSAlexander Stein
10*c982ecfaSAlexander Stein#include <dt-bindings/input/input.h>
11*c982ecfaSAlexander Stein#include <dt-bindings/leds/common.h>
12*c982ecfaSAlexander Stein#include <dt-bindings/net/ti-dp83867.h>
13*c982ecfaSAlexander Stein#include <dt-bindings/pwm/pwm.h>
14*c982ecfaSAlexander Stein#include <dt-bindings/usb/pd.h>
15*c982ecfaSAlexander Stein#include "imx93-tqma9352.dtsi"
16*c982ecfaSAlexander Stein
17*c982ecfaSAlexander Stein/{
18*c982ecfaSAlexander Stein	model = "TQ-Systems i.MX93 TQMa93xxLA on MBa93xxLA SBC";
19*c982ecfaSAlexander Stein	compatible = "tq,imx93-tqma9352-mba93xxla",
20*c982ecfaSAlexander Stein		     "tq,imx93-tqma9352", "fsl,imx93";
21*c982ecfaSAlexander Stein
22*c982ecfaSAlexander Stein	chosen {
23*c982ecfaSAlexander Stein		stdout-path = &lpuart1;
24*c982ecfaSAlexander Stein	};
25*c982ecfaSAlexander Stein
26*c982ecfaSAlexander Stein	aliases {
27*c982ecfaSAlexander Stein		eeprom0 = &eeprom0;
28*c982ecfaSAlexander Stein		rtc0 = &pcf85063;
29*c982ecfaSAlexander Stein		rtc1 = &bbnsm_rtc;
30*c982ecfaSAlexander Stein	};
31*c982ecfaSAlexander Stein
32*c982ecfaSAlexander Stein	backlight_lvds: backlight {
33*c982ecfaSAlexander Stein		compatible = "pwm-backlight";
34*c982ecfaSAlexander Stein		pwms = <&tpm5 0 5000000 0>;
35*c982ecfaSAlexander Stein		brightness-levels = <0 4 8 16 32 64 128 255>;
36*c982ecfaSAlexander Stein		default-brightness-level = <7>;
37*c982ecfaSAlexander Stein		power-supply = <&reg_12v0>;
38*c982ecfaSAlexander Stein		enable-gpios = <&expander2 2 GPIO_ACTIVE_HIGH>;
39*c982ecfaSAlexander Stein		status = "disabled";
40*c982ecfaSAlexander Stein	};
41*c982ecfaSAlexander Stein
42*c982ecfaSAlexander Stein	clk_dp: clk-dp {
43*c982ecfaSAlexander Stein		compatible = "fixed-clock";
44*c982ecfaSAlexander Stein		#clock-cells = <0>;
45*c982ecfaSAlexander Stein		clock-frequency = <26000000>;
46*c982ecfaSAlexander Stein	};
47*c982ecfaSAlexander Stein
48*c982ecfaSAlexander Stein	gpio-keys {
49*c982ecfaSAlexander Stein		compatible = "gpio-keys";
50*c982ecfaSAlexander Stein		autorepeat;
51*c982ecfaSAlexander Stein
52*c982ecfaSAlexander Stein		switch-a {
53*c982ecfaSAlexander Stein			label = "switcha";
54*c982ecfaSAlexander Stein			linux,code = <BTN_0>;
55*c982ecfaSAlexander Stein			gpios = <&expander0 6 GPIO_ACTIVE_LOW>;
56*c982ecfaSAlexander Stein			wakeup-source;
57*c982ecfaSAlexander Stein		};
58*c982ecfaSAlexander Stein
59*c982ecfaSAlexander Stein		switch-b {
60*c982ecfaSAlexander Stein			label = "switchb";
61*c982ecfaSAlexander Stein			linux,code = <BTN_1>;
62*c982ecfaSAlexander Stein			gpios = <&expander0 7 GPIO_ACTIVE_LOW>;
63*c982ecfaSAlexander Stein			wakeup-source;
64*c982ecfaSAlexander Stein		};
65*c982ecfaSAlexander Stein	};
66*c982ecfaSAlexander Stein
67*c982ecfaSAlexander Stein	gpio-leds {
68*c982ecfaSAlexander Stein		compatible = "gpio-leds";
69*c982ecfaSAlexander Stein
70*c982ecfaSAlexander Stein		led-1 {
71*c982ecfaSAlexander Stein			color = <LED_COLOR_ID_GREEN>;
72*c982ecfaSAlexander Stein			function = LED_FUNCTION_STATUS;
73*c982ecfaSAlexander Stein			gpios = <&expander2 6 GPIO_ACTIVE_HIGH>;
74*c982ecfaSAlexander Stein			linux,default-trigger = "default-on";
75*c982ecfaSAlexander Stein		};
76*c982ecfaSAlexander Stein
77*c982ecfaSAlexander Stein		led-2 {
78*c982ecfaSAlexander Stein			color = <LED_COLOR_ID_AMBER>;
79*c982ecfaSAlexander Stein			function = LED_FUNCTION_HEARTBEAT;
80*c982ecfaSAlexander Stein			gpios = <&expander2 7 GPIO_ACTIVE_HIGH>;
81*c982ecfaSAlexander Stein			linux,default-trigger = "heartbeat";
82*c982ecfaSAlexander Stein		};
83*c982ecfaSAlexander Stein	};
84*c982ecfaSAlexander Stein
85*c982ecfaSAlexander Stein	iio-hwmon {
86*c982ecfaSAlexander Stein		compatible = "iio-hwmon";
87*c982ecfaSAlexander Stein		io-channels = <&adc1 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>;
88*c982ecfaSAlexander Stein	};
89*c982ecfaSAlexander Stein
90*c982ecfaSAlexander Stein	reg_3v3: regulator-3v3 {
91*c982ecfaSAlexander Stein		compatible = "regulator-fixed";
92*c982ecfaSAlexander Stein		regulator-name = "V_3V3_MB";
93*c982ecfaSAlexander Stein		regulator-min-microvolt = <3300000>;
94*c982ecfaSAlexander Stein		regulator-max-microvolt = <3300000>;
95*c982ecfaSAlexander Stein	};
96*c982ecfaSAlexander Stein
97*c982ecfaSAlexander Stein	reg_3v8: regulator-3v8 {
98*c982ecfaSAlexander Stein		compatible = "regulator-fixed";
99*c982ecfaSAlexander Stein		regulator-name = "V_3V8";
100*c982ecfaSAlexander Stein		regulator-min-microvolt = <3800000>;
101*c982ecfaSAlexander Stein		regulator-max-microvolt = <3800000>;
102*c982ecfaSAlexander Stein		gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
103*c982ecfaSAlexander Stein		enable-active-high;
104*c982ecfaSAlexander Stein		/* TODO: this is supply for IOT module */
105*c982ecfaSAlexander Stein		regulator-always-on;
106*c982ecfaSAlexander Stein	};
107*c982ecfaSAlexander Stein
108*c982ecfaSAlexander Stein	reg_5v0: regulator-5v0 {
109*c982ecfaSAlexander Stein		compatible = "regulator-fixed";
110*c982ecfaSAlexander Stein		regulator-name = "V_5V0_MB";
111*c982ecfaSAlexander Stein		regulator-min-microvolt = <5000000>;
112*c982ecfaSAlexander Stein		regulator-max-microvolt = <5000000>;
113*c982ecfaSAlexander Stein	};
114*c982ecfaSAlexander Stein
115*c982ecfaSAlexander Stein	reg_12v0: regulator-12v0 {
116*c982ecfaSAlexander Stein		compatible = "regulator-fixed";
117*c982ecfaSAlexander Stein		regulator-name = "V_12V";
118*c982ecfaSAlexander Stein		regulator-min-microvolt = <12000000>;
119*c982ecfaSAlexander Stein		regulator-max-microvolt = <12000000>;
120*c982ecfaSAlexander Stein		gpio = <&expander1 7 GPIO_ACTIVE_HIGH>;
121*c982ecfaSAlexander Stein		enable-active-high;
122*c982ecfaSAlexander Stein	};
123*c982ecfaSAlexander Stein};
124*c982ecfaSAlexander Stein
125*c982ecfaSAlexander Stein&adc1 {
126*c982ecfaSAlexander Stein	status = "okay";
127*c982ecfaSAlexander Stein};
128*c982ecfaSAlexander Stein
129*c982ecfaSAlexander Stein&eqos {
130*c982ecfaSAlexander Stein	pinctrl-names = "default";
131*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_eqos>;
132*c982ecfaSAlexander Stein	phy-mode = "rgmii-id";
133*c982ecfaSAlexander Stein	phy-handle = <&ethphy_eqos>;
134*c982ecfaSAlexander Stein	status = "okay";
135*c982ecfaSAlexander Stein
136*c982ecfaSAlexander Stein	mdio {
137*c982ecfaSAlexander Stein		compatible = "snps,dwmac-mdio";
138*c982ecfaSAlexander Stein		#address-cells = <1>;
139*c982ecfaSAlexander Stein		#size-cells = <0>;
140*c982ecfaSAlexander Stein
141*c982ecfaSAlexander Stein		ethphy_eqos: ethernet-phy@0 {
142*c982ecfaSAlexander Stein			compatible = "ethernet-phy-ieee802.3-c22";
143*c982ecfaSAlexander Stein			reg = <0>;
144*c982ecfaSAlexander Stein			pinctrl-names = "default";
145*c982ecfaSAlexander Stein			pinctrl-0 = <&pinctrl_eqos_phy>;
146*c982ecfaSAlexander Stein			interrupt-parent = <&gpio3>;
147*c982ecfaSAlexander Stein			interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
148*c982ecfaSAlexander Stein			reset-gpios = <&expander1 0 GPIO_ACTIVE_LOW>;
149*c982ecfaSAlexander Stein			reset-assert-us = <500000>;
150*c982ecfaSAlexander Stein			reset-deassert-us = <50000>;
151*c982ecfaSAlexander Stein			enet-phy-lane-no-swap;
152*c982ecfaSAlexander Stein			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
153*c982ecfaSAlexander Stein			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
154*c982ecfaSAlexander Stein			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
155*c982ecfaSAlexander Stein			ti,dp83867-rxctrl-strap-quirk;
156*c982ecfaSAlexander Stein			ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
157*c982ecfaSAlexander Stein		};
158*c982ecfaSAlexander Stein	};
159*c982ecfaSAlexander Stein};
160*c982ecfaSAlexander Stein
161*c982ecfaSAlexander Stein&fec {
162*c982ecfaSAlexander Stein	pinctrl-names = "default";
163*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_fec>;
164*c982ecfaSAlexander Stein	phy-mode = "rgmii-id";
165*c982ecfaSAlexander Stein	phy-handle = <&ethphy_fec>;
166*c982ecfaSAlexander Stein	fsl,magic-packet;
167*c982ecfaSAlexander Stein	status = "okay";
168*c982ecfaSAlexander Stein
169*c982ecfaSAlexander Stein	mdio {
170*c982ecfaSAlexander Stein		#address-cells = <1>;
171*c982ecfaSAlexander Stein		#size-cells = <0>;
172*c982ecfaSAlexander Stein		clock-frequency = <5000000>;
173*c982ecfaSAlexander Stein
174*c982ecfaSAlexander Stein		ethphy_fec: ethernet-phy@0 {
175*c982ecfaSAlexander Stein			compatible = "ethernet-phy-ieee802.3-c22";
176*c982ecfaSAlexander Stein			reg = <0>;
177*c982ecfaSAlexander Stein			pinctrl-names = "default";
178*c982ecfaSAlexander Stein			pinctrl-0 = <&pinctrl_fec_phy>;
179*c982ecfaSAlexander Stein			interrupt-parent = <&gpio3>;
180*c982ecfaSAlexander Stein			interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
181*c982ecfaSAlexander Stein			reset-gpios = <&expander1 1 GPIO_ACTIVE_LOW>;
182*c982ecfaSAlexander Stein			reset-assert-us = <500000>;
183*c982ecfaSAlexander Stein			reset-deassert-us = <50000>;
184*c982ecfaSAlexander Stein			enet-phy-lane-no-swap;
185*c982ecfaSAlexander Stein			ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
186*c982ecfaSAlexander Stein			ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
187*c982ecfaSAlexander Stein			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
188*c982ecfaSAlexander Stein			ti,dp83867-rxctrl-strap-quirk;
189*c982ecfaSAlexander Stein			ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
190*c982ecfaSAlexander Stein		};
191*c982ecfaSAlexander Stein	};
192*c982ecfaSAlexander Stein};
193*c982ecfaSAlexander Stein
194*c982ecfaSAlexander Stein&flexcan1 {
195*c982ecfaSAlexander Stein	pinctrl-names = "default";
196*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_flexcan1>;
197*c982ecfaSAlexander Stein	xceiver-supply = <&reg_3v3>;
198*c982ecfaSAlexander Stein	status = "okay";
199*c982ecfaSAlexander Stein};
200*c982ecfaSAlexander Stein
201*c982ecfaSAlexander Stein&flexcan2 {
202*c982ecfaSAlexander Stein	pinctrl-names = "default";
203*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_flexcan2>;
204*c982ecfaSAlexander Stein	xceiver-supply = <&reg_3v3>;
205*c982ecfaSAlexander Stein	status = "okay";
206*c982ecfaSAlexander Stein};
207*c982ecfaSAlexander Stein
208*c982ecfaSAlexander Stein&gpio1 {
209*c982ecfaSAlexander Stein	expander-irq-hog {
210*c982ecfaSAlexander Stein		gpio-hog;
211*c982ecfaSAlexander Stein		gpios = <12 GPIO_ACTIVE_LOW>;
212*c982ecfaSAlexander Stein		input;
213*c982ecfaSAlexander Stein		line-name = "PEX_INT#";
214*c982ecfaSAlexander Stein	};
215*c982ecfaSAlexander Stein
216*c982ecfaSAlexander Stein	rtc-irq-hog {
217*c982ecfaSAlexander Stein		gpio-hog;
218*c982ecfaSAlexander Stein		gpios = <14 GPIO_ACTIVE_LOW>;
219*c982ecfaSAlexander Stein		input;
220*c982ecfaSAlexander Stein		line-name = "RTC_EVENT#";
221*c982ecfaSAlexander Stein	};
222*c982ecfaSAlexander Stein};
223*c982ecfaSAlexander Stein
224*c982ecfaSAlexander Stein&gpio3 {
225*c982ecfaSAlexander Stein	ethphy-eqos-irq-hog {
226*c982ecfaSAlexander Stein		gpio-hog;
227*c982ecfaSAlexander Stein		gpios = <26 GPIO_ACTIVE_LOW>;
228*c982ecfaSAlexander Stein		input;
229*c982ecfaSAlexander Stein		line-name = "ENET0_IRQ#";
230*c982ecfaSAlexander Stein	};
231*c982ecfaSAlexander Stein
232*c982ecfaSAlexander Stein	ethphy-fec-irq-hog {
233*c982ecfaSAlexander Stein		gpio-hog;
234*c982ecfaSAlexander Stein		gpios = <27 GPIO_ACTIVE_LOW>;
235*c982ecfaSAlexander Stein		input;
236*c982ecfaSAlexander Stein		line-name = "ENET1_IRQ#";
237*c982ecfaSAlexander Stein	};
238*c982ecfaSAlexander Stein};
239*c982ecfaSAlexander Stein
240*c982ecfaSAlexander Stein&lpi2c3 {
241*c982ecfaSAlexander Stein	#address-cells = <1>;
242*c982ecfaSAlexander Stein	#size-cells = <0>;
243*c982ecfaSAlexander Stein	clock-frequency = <400000>;
244*c982ecfaSAlexander Stein	pinctrl-names = "default", "sleep";
245*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_lpi2c3>;
246*c982ecfaSAlexander Stein	pinctrl-1 = <&pinctrl_lpi2c3>;
247*c982ecfaSAlexander Stein	status = "okay";
248*c982ecfaSAlexander Stein
249*c982ecfaSAlexander Stein	temperature-sensor@1c {
250*c982ecfaSAlexander Stein		compatible = "nxp,se97b", "jedec,jc-42.4-temp";
251*c982ecfaSAlexander Stein		reg = <0x1c>;
252*c982ecfaSAlexander Stein	};
253*c982ecfaSAlexander Stein
254*c982ecfaSAlexander Stein	eeprom2: eeprom@54 {
255*c982ecfaSAlexander Stein		compatible = "nxp,se97b", "atmel,24c02";
256*c982ecfaSAlexander Stein		reg = <0x54>;
257*c982ecfaSAlexander Stein		pagesize = <16>;
258*c982ecfaSAlexander Stein		vcc-supply = <&reg_3v3>;
259*c982ecfaSAlexander Stein	};
260*c982ecfaSAlexander Stein
261*c982ecfaSAlexander Stein	expander0: gpio@70 {
262*c982ecfaSAlexander Stein		compatible = "nxp,pca9538";
263*c982ecfaSAlexander Stein		reg = <0x70>;
264*c982ecfaSAlexander Stein		pinctrl-names = "default";
265*c982ecfaSAlexander Stein		pinctrl-0 = <&pinctrl_pexp_irq>;
266*c982ecfaSAlexander Stein		gpio-controller;
267*c982ecfaSAlexander Stein		#gpio-cells = <2>;
268*c982ecfaSAlexander Stein		interrupt-controller;
269*c982ecfaSAlexander Stein		#interrupt-cells = <2>;
270*c982ecfaSAlexander Stein		interrupt-parent = <&gpio1>;
271*c982ecfaSAlexander Stein		interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
272*c982ecfaSAlexander Stein		vcc-supply = <&reg_3v3>;
273*c982ecfaSAlexander Stein		gpio-line-names = "3V8_EN", "",
274*c982ecfaSAlexander Stein				  "", "IOT_PWRKEY",
275*c982ecfaSAlexander Stein				  "IOT_RESET", "IOT_W_DISABLE",
276*c982ecfaSAlexander Stein				  "BUTTON_A#", "BUTTON_B#";
277*c982ecfaSAlexander Stein
278*c982ecfaSAlexander Stein		/*
279*c982ecfaSAlexander Stein		 * Controls the IOT W_DISABLE pin which is low active
280*c982ecfaSAlexander Stein		 * as disable signal but inverted as seen from the CPU.
281*c982ecfaSAlexander Stein		 * The output-low states, the signal is
282*c982ecfaSAlexander Stein		 * inactive, e.g. not disabled
283*c982ecfaSAlexander Stein		 */
284*c982ecfaSAlexander Stein		iot_wdisable_hog: iot-wdisable-hog {
285*c982ecfaSAlexander Stein			gpio-hog;
286*c982ecfaSAlexander Stein			gpios = <5 GPIO_ACTIVE_HIGH>;
287*c982ecfaSAlexander Stein			output-low;
288*c982ecfaSAlexander Stein			line-name = "IOT_W_DISABLE";
289*c982ecfaSAlexander Stein		};
290*c982ecfaSAlexander Stein	};
291*c982ecfaSAlexander Stein
292*c982ecfaSAlexander Stein	expander1: gpio@71 {
293*c982ecfaSAlexander Stein		compatible = "nxp,pca9538";
294*c982ecfaSAlexander Stein		reg = <0x71>;
295*c982ecfaSAlexander Stein		gpio-controller;
296*c982ecfaSAlexander Stein		#gpio-cells = <2>;
297*c982ecfaSAlexander Stein		vcc-supply = <&reg_3v3>;
298*c982ecfaSAlexander Stein		gpio-line-names = "ENET1_RESET#", "ENET2_RESET#",
299*c982ecfaSAlexander Stein				  "USB_RESET#", "",
300*c982ecfaSAlexander Stein				  "WLAN_PD#", "WLAN_W_DISABLE#",
301*c982ecfaSAlexander Stein				  "WLAN_PERST#", "12V_EN";
302*c982ecfaSAlexander Stein
303*c982ecfaSAlexander Stein		/*
304*c982ecfaSAlexander Stein		 * Controls the WiFi card PD pin which is low active
305*c982ecfaSAlexander Stein		 * as power down signal. The output-low states, the signal
306*c982ecfaSAlexander Stein		 * is inactive, e.g. not power down
307*c982ecfaSAlexander Stein		 */
308*c982ecfaSAlexander Stein		wlan-pd-hog {
309*c982ecfaSAlexander Stein			gpio-hog;
310*c982ecfaSAlexander Stein			gpios = <4 GPIO_ACTIVE_LOW>;
311*c982ecfaSAlexander Stein			output-low;
312*c982ecfaSAlexander Stein			line-name = "WLAN_PD#";
313*c982ecfaSAlexander Stein		};
314*c982ecfaSAlexander Stein
315*c982ecfaSAlexander Stein		/*
316*c982ecfaSAlexander Stein		 * Controls the WiFi card disable pin which is low active
317*c982ecfaSAlexander Stein		 * as disable signal. The output-low states, the signal
318*c982ecfaSAlexander Stein		 * is inactive, e.g. not disabled
319*c982ecfaSAlexander Stein		 */
320*c982ecfaSAlexander Stein		wlan-wdisable-hog {
321*c982ecfaSAlexander Stein			gpio-hog;
322*c982ecfaSAlexander Stein			gpios = <5 GPIO_ACTIVE_LOW>;
323*c982ecfaSAlexander Stein			output-low;
324*c982ecfaSAlexander Stein			line-name = "WLAN_W_DISABLE#";
325*c982ecfaSAlexander Stein		};
326*c982ecfaSAlexander Stein
327*c982ecfaSAlexander Stein		/*
328*c982ecfaSAlexander Stein		 * Controls the WiFi card reset pin which is low active
329*c982ecfaSAlexander Stein		 * as reset signal. The output-low states, the signal
330*c982ecfaSAlexander Stein		 * is inactive, e.g. not in reset
331*c982ecfaSAlexander Stein		 */
332*c982ecfaSAlexander Stein		wlan-perst-hog {
333*c982ecfaSAlexander Stein			gpio-hog;
334*c982ecfaSAlexander Stein			gpios = <6 GPIO_ACTIVE_LOW>;
335*c982ecfaSAlexander Stein			output-low;
336*c982ecfaSAlexander Stein			line-name = "WLAN_PERST#";
337*c982ecfaSAlexander Stein		};
338*c982ecfaSAlexander Stein	};
339*c982ecfaSAlexander Stein
340*c982ecfaSAlexander Stein	expander2: gpio@72 {
341*c982ecfaSAlexander Stein		compatible = "nxp,pca9538";
342*c982ecfaSAlexander Stein		reg = <0x72>;
343*c982ecfaSAlexander Stein		gpio-controller;
344*c982ecfaSAlexander Stein		#gpio-cells = <2>;
345*c982ecfaSAlexander Stein		vcc-supply = <&reg_3v3>;
346*c982ecfaSAlexander Stein		gpio-line-names = "LCD_RESET#", "LCD_PWR_EN",
347*c982ecfaSAlexander Stein				  "LCD_BL_EN", "DP_EN",
348*c982ecfaSAlexander Stein				  "MIPI_CSI_EN", "MIPI_CSI_RST#",
349*c982ecfaSAlexander Stein				  "USER_LED1", "USER_LED2";
350*c982ecfaSAlexander Stein	};
351*c982ecfaSAlexander Stein};
352*c982ecfaSAlexander Stein
353*c982ecfaSAlexander Stein&lpi2c5 {
354*c982ecfaSAlexander Stein	#address-cells = <1>;
355*c982ecfaSAlexander Stein	#size-cells = <0>;
356*c982ecfaSAlexander Stein	clock-frequency = <400000>;
357*c982ecfaSAlexander Stein	pinctrl-names = "default", "sleep";
358*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_lpi2c5>;
359*c982ecfaSAlexander Stein	pinctrl-1 = <&pinctrl_lpi2c5>;
360*c982ecfaSAlexander Stein	status = "okay";
361*c982ecfaSAlexander Stein
362*c982ecfaSAlexander Stein	dp_bridge: dp-bridge@f {
363*c982ecfaSAlexander Stein		compatible = "toshiba,tc9595", "toshiba,tc358767";
364*c982ecfaSAlexander Stein		reg = <0x0f>;
365*c982ecfaSAlexander Stein		pinctrl-names = "default";
366*c982ecfaSAlexander Stein		pinctrl-0 = <&pinctrl_tc9595>;
367*c982ecfaSAlexander Stein		clock-names = "ref";
368*c982ecfaSAlexander Stein		clocks = <&clk_dp>;
369*c982ecfaSAlexander Stein		reset-gpios = <&expander2 3 GPIO_ACTIVE_HIGH>;
370*c982ecfaSAlexander Stein		interrupt-parent = <&gpio4>;
371*c982ecfaSAlexander Stein		interrupts = <29 IRQ_TYPE_EDGE_RISING>;
372*c982ecfaSAlexander Stein		toshiba,hpd-pin = <0>;
373*c982ecfaSAlexander Stein		status = "disabled";
374*c982ecfaSAlexander Stein
375*c982ecfaSAlexander Stein		ports {
376*c982ecfaSAlexander Stein			#address-cells = <1>;
377*c982ecfaSAlexander Stein			#size-cells = <0>;
378*c982ecfaSAlexander Stein
379*c982ecfaSAlexander Stein			port@0 {
380*c982ecfaSAlexander Stein				reg = <0>;
381*c982ecfaSAlexander Stein
382*c982ecfaSAlexander Stein				dp_dsi_in: endpoint {
383*c982ecfaSAlexander Stein					data-lanes = <1 2 3 4>;
384*c982ecfaSAlexander Stein				};
385*c982ecfaSAlexander Stein			};
386*c982ecfaSAlexander Stein		};
387*c982ecfaSAlexander Stein	};
388*c982ecfaSAlexander Stein};
389*c982ecfaSAlexander Stein
390*c982ecfaSAlexander Stein&lpuart1 {
391*c982ecfaSAlexander Stein	pinctrl-names = "default";
392*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_uart1>;
393*c982ecfaSAlexander Stein	status = "okay";
394*c982ecfaSAlexander Stein};
395*c982ecfaSAlexander Stein
396*c982ecfaSAlexander Stein&lpuart2 {
397*c982ecfaSAlexander Stein	pinctrl-names = "default";
398*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_uart2>;
399*c982ecfaSAlexander Stein	linux,rs485-enabled-at-boot-time;
400*c982ecfaSAlexander Stein	status = "okay";
401*c982ecfaSAlexander Stein};
402*c982ecfaSAlexander Stein
403*c982ecfaSAlexander Stein/* disabled per default, console for M33 */
404*c982ecfaSAlexander Stein&lpuart3 {
405*c982ecfaSAlexander Stein	pinctrl-names = "default";
406*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_uart3>;
407*c982ecfaSAlexander Stein	status = "disabled";
408*c982ecfaSAlexander Stein};
409*c982ecfaSAlexander Stein
410*c982ecfaSAlexander Stein&lpuart6 {
411*c982ecfaSAlexander Stein	pinctrl-names = "default";
412*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_uart6>;
413*c982ecfaSAlexander Stein	status = "okay";
414*c982ecfaSAlexander Stein};
415*c982ecfaSAlexander Stein
416*c982ecfaSAlexander Stein&lpuart8 {
417*c982ecfaSAlexander Stein	pinctrl-names = "default";
418*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_uart8>;
419*c982ecfaSAlexander Stein	status = "okay";
420*c982ecfaSAlexander Stein};
421*c982ecfaSAlexander Stein
422*c982ecfaSAlexander Stein&pcf85063 {
423*c982ecfaSAlexander Stein	/* RTC_EVENT# is connected on MBa93xxLA */
424*c982ecfaSAlexander Stein	pinctrl-names = "default";
425*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_pcf85063>;
426*c982ecfaSAlexander Stein	interrupt-parent = <&gpio1>;
427*c982ecfaSAlexander Stein	interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
428*c982ecfaSAlexander Stein};
429*c982ecfaSAlexander Stein
430*c982ecfaSAlexander Stein&tpm5 {
431*c982ecfaSAlexander Stein	pinctrl-names = "default";
432*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_tpm5>;
433*c982ecfaSAlexander Stein};
434*c982ecfaSAlexander Stein
435*c982ecfaSAlexander Stein&usdhc2 {
436*c982ecfaSAlexander Stein	pinctrl-names = "default", "state_100mhz", "state_200mhz";
437*c982ecfaSAlexander Stein	pinctrl-0 = <&pinctrl_usdhc2_hs>, <&pinctrl_usdhc2_gpio>;
438*c982ecfaSAlexander Stein	pinctrl-1 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
439*c982ecfaSAlexander Stein	pinctrl-2 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
440*c982ecfaSAlexander Stein	cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
441*c982ecfaSAlexander Stein	vmmc-supply = <&reg_usdhc2_vmmc>;
442*c982ecfaSAlexander Stein	bus-width = <4>;
443*c982ecfaSAlexander Stein	no-sdio;
444*c982ecfaSAlexander Stein	no-mmc;
445*c982ecfaSAlexander Stein	disable-wp;
446*c982ecfaSAlexander Stein	status = "okay";
447*c982ecfaSAlexander Stein};
448*c982ecfaSAlexander Stein
449*c982ecfaSAlexander Stein&iomuxc {
450*c982ecfaSAlexander Stein	pinctrl_eqos: eqosgrp {
451*c982ecfaSAlexander Stein		fsl,pins = <
452*c982ecfaSAlexander Stein			/* PD | FSEL_2 | DSE X4 */
453*c982ecfaSAlexander Stein			MX93_PAD_ENET1_MDC__ENET_QOS_MDC		0x51e
454*c982ecfaSAlexander Stein			MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO		0x4000051e
455*c982ecfaSAlexander Stein			/* PD | FSEL_2 | DSE X6 */
456*c982ecfaSAlexander Stein			MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0		0x57e
457*c982ecfaSAlexander Stein			MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1		0x57e
458*c982ecfaSAlexander Stein			MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2		0x57e
459*c982ecfaSAlexander Stein			MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3		0x57e
460*c982ecfaSAlexander Stein			/* PD | FSEL_3 | DSE X6 */
461*c982ecfaSAlexander Stein			MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK	0x5fe
462*c982ecfaSAlexander Stein			MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL	0x57e
463*c982ecfaSAlexander Stein			/* PD | FSEL_2 | DSE X4 */
464*c982ecfaSAlexander Stein			MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0		0x51e
465*c982ecfaSAlexander Stein			MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1		0x51e
466*c982ecfaSAlexander Stein			MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2		0x51e
467*c982ecfaSAlexander Stein			MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3		0x51e
468*c982ecfaSAlexander Stein			MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL	0x51e
469*c982ecfaSAlexander Stein			/* PD | FSEL_3 | DSE X3 */
470*c982ecfaSAlexander Stein			MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK	0x58e
471*c982ecfaSAlexander Stein		>;
472*c982ecfaSAlexander Stein	};
473*c982ecfaSAlexander Stein
474*c982ecfaSAlexander Stein	pinctrl_eqos_phy: eqosphygrp {
475*c982ecfaSAlexander Stein		fsl,pins = <
476*c982ecfaSAlexander Stein			MX93_PAD_CCM_CLKO1__GPIO3_IO26		0x1306
477*c982ecfaSAlexander Stein		>;
478*c982ecfaSAlexander Stein	};
479*c982ecfaSAlexander Stein
480*c982ecfaSAlexander Stein	pinctrl_fec: fecgrp {
481*c982ecfaSAlexander Stein		fsl,pins = <
482*c982ecfaSAlexander Stein			/* PD | FSEL_2 | DSE X4 */
483*c982ecfaSAlexander Stein			MX93_PAD_ENET2_MDC__ENET1_MDC			0x51e
484*c982ecfaSAlexander Stein			MX93_PAD_ENET2_MDIO__ENET1_MDIO			0x4000051e
485*c982ecfaSAlexander Stein			/* PD | FSEL_2 | DSE X6 */
486*c982ecfaSAlexander Stein			MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0		0x57e
487*c982ecfaSAlexander Stein			MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1		0x57e
488*c982ecfaSAlexander Stein			MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2		0x57e
489*c982ecfaSAlexander Stein			MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3		0x57e
490*c982ecfaSAlexander Stein			/* PD | FSEL_3 | DSE X6 */
491*c982ecfaSAlexander Stein			MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC		0x5fe
492*c982ecfaSAlexander Stein			MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL	0x57e
493*c982ecfaSAlexander Stein			/* PD | FSEL_2 | DSE X4 */
494*c982ecfaSAlexander Stein			MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0		0x51e
495*c982ecfaSAlexander Stein			MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1		0x51e
496*c982ecfaSAlexander Stein			MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2		0x51e
497*c982ecfaSAlexander Stein			MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3		0x51e
498*c982ecfaSAlexander Stein			MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL	0x51e
499*c982ecfaSAlexander Stein			/* PD | FSEL_3 | DSE X3 */
500*c982ecfaSAlexander Stein			MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC		0x58e
501*c982ecfaSAlexander Stein		>;
502*c982ecfaSAlexander Stein	};
503*c982ecfaSAlexander Stein
504*c982ecfaSAlexander Stein	pinctrl_fec_phy: fecphygrp {
505*c982ecfaSAlexander Stein		fsl,pins = <
506*c982ecfaSAlexander Stein			MX93_PAD_CCM_CLKO2__GPIO3_IO27		0x1306
507*c982ecfaSAlexander Stein		>;
508*c982ecfaSAlexander Stein	};
509*c982ecfaSAlexander Stein
510*c982ecfaSAlexander Stein	pinctrl_flexcan1: flexcan1grp {
511*c982ecfaSAlexander Stein		fsl,pins = <
512*c982ecfaSAlexander Stein			MX93_PAD_PDM_BIT_STREAM0__CAN1_RX	0x139e
513*c982ecfaSAlexander Stein			MX93_PAD_PDM_CLK__CAN1_TX		0x139e
514*c982ecfaSAlexander Stein		>;
515*c982ecfaSAlexander Stein	};
516*c982ecfaSAlexander Stein
517*c982ecfaSAlexander Stein	pinctrl_flexcan2: flexcan2grp {
518*c982ecfaSAlexander Stein		fsl,pins = <
519*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO25__CAN2_TX		0x139e
520*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO27__CAN2_RX		0x139e
521*c982ecfaSAlexander Stein		>;
522*c982ecfaSAlexander Stein	};
523*c982ecfaSAlexander Stein
524*c982ecfaSAlexander Stein	pinctrl_lpi2c3: lpi2c3grp {
525*c982ecfaSAlexander Stein		fsl,pins = <
526*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO28__LPI2C3_SDA		0x40000b9e
527*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO29__LPI2C3_SCL		0x40000b9e
528*c982ecfaSAlexander Stein		>;
529*c982ecfaSAlexander Stein	};
530*c982ecfaSAlexander Stein
531*c982ecfaSAlexander Stein	pinctrl_lpi2c5: lpi2c5grp {
532*c982ecfaSAlexander Stein		fsl,pins = <
533*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO22__LPI2C5_SDA		0x40000b9e
534*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO23__LPI2C5_SCL		0x40000b9e
535*c982ecfaSAlexander Stein		>;
536*c982ecfaSAlexander Stein	};
537*c982ecfaSAlexander Stein
538*c982ecfaSAlexander Stein	pinctrl_pcf85063: pcf85063grp {
539*c982ecfaSAlexander Stein		fsl,pins = <
540*c982ecfaSAlexander Stein			MX93_PAD_SAI1_RXD0__GPIO1_IO14		0x1306
541*c982ecfaSAlexander Stein		>;
542*c982ecfaSAlexander Stein	};
543*c982ecfaSAlexander Stein
544*c982ecfaSAlexander Stein	pinctrl_pexp_irq: pexpirqgrp {
545*c982ecfaSAlexander Stein		fsl,pins = <
546*c982ecfaSAlexander Stein			MX93_PAD_SAI1_TXC__GPIO1_IO12		0x1306
547*c982ecfaSAlexander Stein		>;
548*c982ecfaSAlexander Stein	};
549*c982ecfaSAlexander Stein
550*c982ecfaSAlexander Stein	pinctrl_tc9595: tc9595-grp {
551*c982ecfaSAlexander Stein		fsl,pins = <
552*c982ecfaSAlexander Stein			/* DP_IRQ */
553*c982ecfaSAlexander Stein			MX93_PAD_CCM_CLKO4__GPIO4_IO29		0x1306
554*c982ecfaSAlexander Stein		>;
555*c982ecfaSAlexander Stein	};
556*c982ecfaSAlexander Stein
557*c982ecfaSAlexander Stein	pinctrl_tpm5: tpm5grp {
558*c982ecfaSAlexander Stein		fsl,pins = <
559*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO06__TPM5_CH0		0x57e
560*c982ecfaSAlexander Stein		>;
561*c982ecfaSAlexander Stein	};
562*c982ecfaSAlexander Stein
563*c982ecfaSAlexander Stein	pinctrl_typec: typecgrp {
564*c982ecfaSAlexander Stein		fsl,pins = <
565*c982ecfaSAlexander Stein			MX93_PAD_I2C2_SCL__GPIO1_IO02		0x1306
566*c982ecfaSAlexander Stein		>;
567*c982ecfaSAlexander Stein	};
568*c982ecfaSAlexander Stein
569*c982ecfaSAlexander Stein	pinctrl_uart1: uart1grp {
570*c982ecfaSAlexander Stein		fsl,pins = <
571*c982ecfaSAlexander Stein			MX93_PAD_UART1_RXD__LPUART1_RX		0x31e
572*c982ecfaSAlexander Stein			MX93_PAD_UART1_TXD__LPUART1_TX		0x31e
573*c982ecfaSAlexander Stein		>;
574*c982ecfaSAlexander Stein	};
575*c982ecfaSAlexander Stein
576*c982ecfaSAlexander Stein	pinctrl_uart2: uart2grp {
577*c982ecfaSAlexander Stein		fsl,pins = <
578*c982ecfaSAlexander Stein			MX93_PAD_UART2_TXD__LPUART2_TX		0x31e
579*c982ecfaSAlexander Stein			MX93_PAD_UART2_RXD__LPUART2_RX		0x31e
580*c982ecfaSAlexander Stein			MX93_PAD_SAI1_TXD0__LPUART2_RTS_B	0x31e
581*c982ecfaSAlexander Stein		>;
582*c982ecfaSAlexander Stein	};
583*c982ecfaSAlexander Stein
584*c982ecfaSAlexander Stein	pinctrl_uart3: uart3grp {
585*c982ecfaSAlexander Stein		fsl,pins = <
586*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO14__LPUART3_TX		0x31e
587*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO15__LPUART3_RX		0x31e
588*c982ecfaSAlexander Stein		>;
589*c982ecfaSAlexander Stein	};
590*c982ecfaSAlexander Stein
591*c982ecfaSAlexander Stein	pinctrl_uart6: uart6grp {
592*c982ecfaSAlexander Stein		fsl,pins = <
593*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO04__LPUART6_TX		0x31e
594*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO05__LPUART6_RX		0x31e
595*c982ecfaSAlexander Stein		>;
596*c982ecfaSAlexander Stein	};
597*c982ecfaSAlexander Stein
598*c982ecfaSAlexander Stein	pinctrl_uart8: uart8grp {
599*c982ecfaSAlexander Stein		fsl,pins = <
600*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO12__LPUART8_TX		0x31e
601*c982ecfaSAlexander Stein			MX93_PAD_GPIO_IO13__LPUART8_RX		0x31e
602*c982ecfaSAlexander Stein		>;
603*c982ecfaSAlexander Stein	};
604*c982ecfaSAlexander Stein
605*c982ecfaSAlexander Stein	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
606*c982ecfaSAlexander Stein		fsl,pins = <
607*c982ecfaSAlexander Stein			MX93_PAD_SD2_CD_B__GPIO3_IO00		0x31e
608*c982ecfaSAlexander Stein		>;
609*c982ecfaSAlexander Stein	};
610*c982ecfaSAlexander Stein
611*c982ecfaSAlexander Stein	pinctrl_usdhc2_hs: usdhc2hsgrp {
612*c982ecfaSAlexander Stein		fsl,pins = <
613*c982ecfaSAlexander Stein			/* HYS | PD | PU | FSEL_3 | DSE X5 */
614*c982ecfaSAlexander Stein			MX93_PAD_SD2_CLK__USDHC2_CLK		0x17be
615*c982ecfaSAlexander Stein			/* HYS | PD | PU | FSEL_3 | DSE X4 */
616*c982ecfaSAlexander Stein			MX93_PAD_SD2_CMD__USDHC2_CMD		0x139e
617*c982ecfaSAlexander Stein			/* HYS | PD | PU | FSEL_3 | DSE X3 */
618*c982ecfaSAlexander Stein			MX93_PAD_SD2_DATA0__USDHC2_DATA0	0x138e
619*c982ecfaSAlexander Stein			MX93_PAD_SD2_DATA1__USDHC2_DATA1	0x138e
620*c982ecfaSAlexander Stein			MX93_PAD_SD2_DATA2__USDHC2_DATA2	0x138e
621*c982ecfaSAlexander Stein			MX93_PAD_SD2_DATA3__USDHC2_DATA3	0x138e
622*c982ecfaSAlexander Stein			/* PD | PU | FSEL_2 | DSE X3 */
623*c982ecfaSAlexander Stein			MX93_PAD_SD2_VSELECT__USDHC2_VSELECT	0x50e
624*c982ecfaSAlexander Stein		>;
625*c982ecfaSAlexander Stein	};
626*c982ecfaSAlexander Stein
627*c982ecfaSAlexander Stein	pinctrl_usdhc2_uhs: usdhc2uhsgrp {
628*c982ecfaSAlexander Stein		fsl,pins = <
629*c982ecfaSAlexander Stein			/* HYS | PD | PU | FSEL_3 | DSE X6 */
630*c982ecfaSAlexander Stein			MX93_PAD_SD2_CLK__USDHC2_CLK		0x17fe
631*c982ecfaSAlexander Stein			/* HYS | PD | PU | FSEL_3 | DSE X4 */
632*c982ecfaSAlexander Stein			MX93_PAD_SD2_CMD__USDHC2_CMD		0x139e
633*c982ecfaSAlexander Stein			MX93_PAD_SD2_DATA0__USDHC2_DATA0	0x139e
634*c982ecfaSAlexander Stein			MX93_PAD_SD2_DATA1__USDHC2_DATA1	0x139e
635*c982ecfaSAlexander Stein			MX93_PAD_SD2_DATA2__USDHC2_DATA2	0x139e
636*c982ecfaSAlexander Stein			MX93_PAD_SD2_DATA3__USDHC2_DATA3	0x139e
637*c982ecfaSAlexander Stein			/* PD | PU | FSEL_2 | DSE X3 */
638*c982ecfaSAlexander Stein			MX93_PAD_SD2_VSELECT__USDHC2_VSELECT	0x50e
639*c982ecfaSAlexander Stein		>;
640*c982ecfaSAlexander Stein	};
641*c982ecfaSAlexander Stein};
642