1d5b0e70fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2d5b0e70fSEmmanuel Vadot/*
3d5b0e70fSEmmanuel Vadot * Copyright 2022 Toradex
4d5b0e70fSEmmanuel Vadot */
5d5b0e70fSEmmanuel Vadot
6d5b0e70fSEmmanuel Vadot/ {
7d5b0e70fSEmmanuel Vadot	reg_eth2phy: regulator-eth2phy {
8d5b0e70fSEmmanuel Vadot		compatible = "regulator-fixed";
9d5b0e70fSEmmanuel Vadot		enable-active-high;
10d5b0e70fSEmmanuel Vadot		gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */
11cb7aa33aSEmmanuel Vadot		off-on-delay-us = <500000>;
12d5b0e70fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
13d5b0e70fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
14d5b0e70fSEmmanuel Vadot		regulator-name = "+V3.3_ETH";
15d5b0e70fSEmmanuel Vadot		startup-delay-us = <200000>;
16d5b0e70fSEmmanuel Vadot		vin-supply = <&reg_3p3v>;
17d5b0e70fSEmmanuel Vadot	};
18*aa1a8ff2SEmmanuel Vadot
19*aa1a8ff2SEmmanuel Vadot	sound {
20*aa1a8ff2SEmmanuel Vadot		compatible = "simple-audio-card";
21*aa1a8ff2SEmmanuel Vadot		simple-audio-card,bitclock-master = <&codec_dai>;
22*aa1a8ff2SEmmanuel Vadot		simple-audio-card,format = "i2s";
23*aa1a8ff2SEmmanuel Vadot		simple-audio-card,frame-master = <&codec_dai>;
24*aa1a8ff2SEmmanuel Vadot		simple-audio-card,mclk-fs = <256>;
25*aa1a8ff2SEmmanuel Vadot		simple-audio-card,name = "imx8mp-nau8822";
26*aa1a8ff2SEmmanuel Vadot		simple-audio-card,routing =
27*aa1a8ff2SEmmanuel Vadot			"Headphones", "LHP",
28*aa1a8ff2SEmmanuel Vadot			"Headphones", "RHP",
29*aa1a8ff2SEmmanuel Vadot			"Speaker", "LSPK",
30*aa1a8ff2SEmmanuel Vadot			"Speaker", "RSPK",
31*aa1a8ff2SEmmanuel Vadot			"Line Out", "AUXOUT1",
32*aa1a8ff2SEmmanuel Vadot			"Line Out", "AUXOUT2",
33*aa1a8ff2SEmmanuel Vadot			"LAUX", "Line In",
34*aa1a8ff2SEmmanuel Vadot			"RAUX", "Line In",
35*aa1a8ff2SEmmanuel Vadot			"LMICP", "Mic In",
36*aa1a8ff2SEmmanuel Vadot			"RMICP", "Mic In";
37*aa1a8ff2SEmmanuel Vadot		simple-audio-card,widgets =
38*aa1a8ff2SEmmanuel Vadot			"Headphones", "Headphones",
39*aa1a8ff2SEmmanuel Vadot			"Line Out", "Line Out",
40*aa1a8ff2SEmmanuel Vadot			"Speaker", "Speaker",
41*aa1a8ff2SEmmanuel Vadot			"Microphone", "Mic In",
42*aa1a8ff2SEmmanuel Vadot			"Line", "Line In";
43*aa1a8ff2SEmmanuel Vadot
44*aa1a8ff2SEmmanuel Vadot		codec_dai: simple-audio-card,codec {
45*aa1a8ff2SEmmanuel Vadot			clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
46*aa1a8ff2SEmmanuel Vadot			sound-dai = <&nau8822_1a>;
47*aa1a8ff2SEmmanuel Vadot		};
48*aa1a8ff2SEmmanuel Vadot
49*aa1a8ff2SEmmanuel Vadot		simple-audio-card,cpu {
50*aa1a8ff2SEmmanuel Vadot			sound-dai = <&sai1>;
51*aa1a8ff2SEmmanuel Vadot		};
52*aa1a8ff2SEmmanuel Vadot	};
53d5b0e70fSEmmanuel Vadot};
54d5b0e70fSEmmanuel Vadot
55cb7aa33aSEmmanuel Vadot&backlight {
56cb7aa33aSEmmanuel Vadot	power-supply = <&reg_3p3v>;
57cb7aa33aSEmmanuel Vadot};
58cb7aa33aSEmmanuel Vadot
59cb7aa33aSEmmanuel Vadot/* Verdin SPI_1 */
60cb7aa33aSEmmanuel Vadot&ecspi1 {
61cb7aa33aSEmmanuel Vadot	status = "okay";
62cb7aa33aSEmmanuel Vadot};
63cb7aa33aSEmmanuel Vadot
64cb7aa33aSEmmanuel Vadot/* EEPROM on display adapter boards */
65cb7aa33aSEmmanuel Vadot&eeprom_display_adapter {
66cb7aa33aSEmmanuel Vadot	status = "okay";
67cb7aa33aSEmmanuel Vadot};
68cb7aa33aSEmmanuel Vadot
69cb7aa33aSEmmanuel Vadot/* EEPROM on Verdin Development board */
70cb7aa33aSEmmanuel Vadot&eeprom_carrier_board {
71cb7aa33aSEmmanuel Vadot	status = "okay";
72cb7aa33aSEmmanuel Vadot};
73cb7aa33aSEmmanuel Vadot
74cb7aa33aSEmmanuel Vadot&eqos {
75cb7aa33aSEmmanuel Vadot	status = "okay";
76cb7aa33aSEmmanuel Vadot};
77cb7aa33aSEmmanuel Vadot
78d5b0e70fSEmmanuel Vadot&fec {
79d5b0e70fSEmmanuel Vadot	phy-supply = <&reg_eth2phy>;
80d5b0e70fSEmmanuel Vadot	status = "okay";
81d5b0e70fSEmmanuel Vadot};
82d5b0e70fSEmmanuel Vadot
83cb7aa33aSEmmanuel Vadot&flexcan1 {
84cb7aa33aSEmmanuel Vadot	status = "okay";
85cb7aa33aSEmmanuel Vadot};
86cb7aa33aSEmmanuel Vadot
87cb7aa33aSEmmanuel Vadot&flexcan2 {
88cb7aa33aSEmmanuel Vadot	status = "okay";
89cb7aa33aSEmmanuel Vadot};
90cb7aa33aSEmmanuel Vadot
91cb7aa33aSEmmanuel Vadot/* Verdin QSPI_1 */
92cb7aa33aSEmmanuel Vadot&flexspi {
93cb7aa33aSEmmanuel Vadot	status = "okay";
94cb7aa33aSEmmanuel Vadot};
95cb7aa33aSEmmanuel Vadot
96d5b0e70fSEmmanuel Vadot&gpio_expander_21 {
97d5b0e70fSEmmanuel Vadot	status = "okay";
98d5b0e70fSEmmanuel Vadot	vcc-supply = <&reg_1p8v>;
99d5b0e70fSEmmanuel Vadot};
100d5b0e70fSEmmanuel Vadot
101cb7aa33aSEmmanuel Vadot/* Current measurement into module VCC */
102cb7aa33aSEmmanuel Vadot&hwmon {
103cb7aa33aSEmmanuel Vadot	status = "okay";
104cb7aa33aSEmmanuel Vadot};
105cb7aa33aSEmmanuel Vadot
106cb7aa33aSEmmanuel Vadot&hwmon_temp {
107cb7aa33aSEmmanuel Vadot	vs-supply = <&reg_1p8v>;
108cb7aa33aSEmmanuel Vadot	status = "okay";
109cb7aa33aSEmmanuel Vadot};
110cb7aa33aSEmmanuel Vadot
111cb7aa33aSEmmanuel Vadot/* Verdin I2C_2_DSI */
112cb7aa33aSEmmanuel Vadot&i2c2 {
113cb7aa33aSEmmanuel Vadot	status = "okay";
114cb7aa33aSEmmanuel Vadot};
115cb7aa33aSEmmanuel Vadot
116cb7aa33aSEmmanuel Vadot&i2c3 {
117cb7aa33aSEmmanuel Vadot	status = "okay";
118cb7aa33aSEmmanuel Vadot};
119cb7aa33aSEmmanuel Vadot
120cb7aa33aSEmmanuel Vadot/* Verdin I2C_1 */
121cb7aa33aSEmmanuel Vadot&i2c4 {
122cb7aa33aSEmmanuel Vadot	status = "okay";
123cb7aa33aSEmmanuel Vadot
124*aa1a8ff2SEmmanuel Vadot	/* Audio Codec */
125*aa1a8ff2SEmmanuel Vadot	nau8822_1a: audio-codec@1a {
126*aa1a8ff2SEmmanuel Vadot		compatible = "nuvoton,nau8822";
127*aa1a8ff2SEmmanuel Vadot		reg = <0x1a>;
128*aa1a8ff2SEmmanuel Vadot		pinctrl-names = "default";
129*aa1a8ff2SEmmanuel Vadot		pinctrl-0 = <&pinctrl_sai1>;
130*aa1a8ff2SEmmanuel Vadot		#sound-dai-cells = <0>;
131*aa1a8ff2SEmmanuel Vadot	};
132cb7aa33aSEmmanuel Vadot};
133cb7aa33aSEmmanuel Vadot
134fac71e4eSEmmanuel Vadot/* Verdin PCIE_1 */
135fac71e4eSEmmanuel Vadot&pcie {
136fac71e4eSEmmanuel Vadot	status = "okay";
137fac71e4eSEmmanuel Vadot};
138fac71e4eSEmmanuel Vadot
139fac71e4eSEmmanuel Vadot&pcie_phy {
140fac71e4eSEmmanuel Vadot	status = "okay";
141fac71e4eSEmmanuel Vadot};
142cb7aa33aSEmmanuel Vadot
143cb7aa33aSEmmanuel Vadot/* Verdin PWM_1 */
144cb7aa33aSEmmanuel Vadot&pwm1 {
145cb7aa33aSEmmanuel Vadot	status = "okay";
146cb7aa33aSEmmanuel Vadot};
147cb7aa33aSEmmanuel Vadot
148cb7aa33aSEmmanuel Vadot/* Verdin PWM_2 */
149cb7aa33aSEmmanuel Vadot&pwm2 {
150cb7aa33aSEmmanuel Vadot	status = "okay";
151cb7aa33aSEmmanuel Vadot};
152cb7aa33aSEmmanuel Vadot
153cb7aa33aSEmmanuel Vadot/* Verdin PWM_3_DSI */
154cb7aa33aSEmmanuel Vadot&pwm3 {
155cb7aa33aSEmmanuel Vadot	status = "okay";
156cb7aa33aSEmmanuel Vadot};
157cb7aa33aSEmmanuel Vadot
158cb7aa33aSEmmanuel Vadot&reg_usdhc2_vmmc {
159cb7aa33aSEmmanuel Vadot	vin-supply = <&reg_3p3v>;
160cb7aa33aSEmmanuel Vadot};
161cb7aa33aSEmmanuel Vadot
162*aa1a8ff2SEmmanuel Vadot/* Verdin I2S_1 */
163*aa1a8ff2SEmmanuel Vadot&sai1 {
164*aa1a8ff2SEmmanuel Vadot	assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
165*aa1a8ff2SEmmanuel Vadot	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
166*aa1a8ff2SEmmanuel Vadot	assigned-clock-rates = <24576000>;
167*aa1a8ff2SEmmanuel Vadot	fsl,sai-mclk-direction-output;
168*aa1a8ff2SEmmanuel Vadot	status = "okay";
169*aa1a8ff2SEmmanuel Vadot};
170d5b0e70fSEmmanuel Vadot
171d5b0e70fSEmmanuel Vadot/* Verdin UART_1, connector X50 through RS485 transceiver */
172d5b0e70fSEmmanuel Vadot&uart1 {
173d5b0e70fSEmmanuel Vadot	linux,rs485-enabled-at-boot-time;
174d5b0e70fSEmmanuel Vadot	rs485-rts-active-low;
175d5b0e70fSEmmanuel Vadot	rs485-rx-during-tx;
176cb7aa33aSEmmanuel Vadot	status = "okay";
177cb7aa33aSEmmanuel Vadot};
178cb7aa33aSEmmanuel Vadot
179cb7aa33aSEmmanuel Vadot/* Verdin UART_2 */
180cb7aa33aSEmmanuel Vadot&uart2 {
181cb7aa33aSEmmanuel Vadot	status = "okay";
182cb7aa33aSEmmanuel Vadot};
183cb7aa33aSEmmanuel Vadot
184cb7aa33aSEmmanuel Vadot/* Verdin UART_3, used as the Linux Console */
185cb7aa33aSEmmanuel Vadot&uart3 {
186cb7aa33aSEmmanuel Vadot	status = "okay";
187cb7aa33aSEmmanuel Vadot};
188cb7aa33aSEmmanuel Vadot
189cb7aa33aSEmmanuel Vadot/* Verdin USB_1 */
190cb7aa33aSEmmanuel Vadot&usb3_0 {
191cb7aa33aSEmmanuel Vadot	status = "okay";
192cb7aa33aSEmmanuel Vadot};
193cb7aa33aSEmmanuel Vadot
194cb7aa33aSEmmanuel Vadot&usb3_phy0 {
195cb7aa33aSEmmanuel Vadot	status = "okay";
196cb7aa33aSEmmanuel Vadot};
197cb7aa33aSEmmanuel Vadot
198cb7aa33aSEmmanuel Vadot/* Verdin USB_2 */
199cb7aa33aSEmmanuel Vadot&usb3_1 {
200cb7aa33aSEmmanuel Vadot	fsl,permanently-attached;
201cb7aa33aSEmmanuel Vadot	status = "okay";
202cb7aa33aSEmmanuel Vadot};
203cb7aa33aSEmmanuel Vadot
204cb7aa33aSEmmanuel Vadot&usb3_phy1 {
205cb7aa33aSEmmanuel Vadot	status = "okay";
206d5b0e70fSEmmanuel Vadot};
207d5b0e70fSEmmanuel Vadot
208d5b0e70fSEmmanuel Vadot/* Limit frequency on dev board due to long traces and bad signal integrity */
209d5b0e70fSEmmanuel Vadot&usdhc2 {
210d5b0e70fSEmmanuel Vadot	max-frequency = <100000000>;
211cb7aa33aSEmmanuel Vadot	status = "okay";
212d5b0e70fSEmmanuel Vadot};
213