blob: a38e7c947a421cac689c14661530ced445697d47 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright 2022 Toradex
4 */
5
6/ {
Tom Rini6b642ac2024-10-01 12:20:28 -06007 native-hdmi-connector {
8 compatible = "hdmi-connector";
9 label = "X37";
10 type = "a";
11
12 port {
13 native_hdmi_connector_in: endpoint {
14 remote-endpoint = <&hdmi_tx_out>;
15 };
16 };
17 };
18
Tom Rini53633a82024-02-29 12:33:36 -050019 reg_eth2phy: regulator-eth2phy {
20 compatible = "regulator-fixed";
21 enable-active-high;
22 gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */
23 off-on-delay-us = <500000>;
24 regulator-max-microvolt = <3300000>;
25 regulator-min-microvolt = <3300000>;
26 regulator-name = "+V3.3_ETH";
27 startup-delay-us = <200000>;
28 vin-supply = <&reg_3p3v>;
29 };
30
31 sound {
32 compatible = "simple-audio-card";
33 simple-audio-card,bitclock-master = <&codec_dai>;
34 simple-audio-card,format = "i2s";
35 simple-audio-card,frame-master = <&codec_dai>;
36 simple-audio-card,mclk-fs = <256>;
Tom Rini762f85b2024-07-20 11:15:10 -060037 simple-audio-card,name = "verdin-nau8822";
Tom Rini53633a82024-02-29 12:33:36 -050038 simple-audio-card,routing =
39 "Headphones", "LHP",
40 "Headphones", "RHP",
41 "Speaker", "LSPK",
42 "Speaker", "RSPK",
43 "Line Out", "AUXOUT1",
44 "Line Out", "AUXOUT2",
45 "LAUX", "Line In",
46 "RAUX", "Line In",
47 "LMICP", "Mic In",
48 "RMICP", "Mic In";
49 simple-audio-card,widgets =
50 "Headphones", "Headphones",
51 "Line Out", "Line Out",
52 "Speaker", "Speaker",
53 "Microphone", "Mic In",
54 "Line", "Line In";
55
56 codec_dai: simple-audio-card,codec {
57 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
58 sound-dai = <&nau8822_1a>;
59 };
60
61 simple-audio-card,cpu {
62 sound-dai = <&sai1>;
63 };
64 };
65};
66
Tom Rini9c8af152024-12-24 12:03:04 -060067/* Verdin HDMI_1 Audio */
68&aud2htx {
69 status = "okay";
70};
71
Tom Rini53633a82024-02-29 12:33:36 -050072&backlight {
73 power-supply = <&reg_3p3v>;
74};
75
76/* Verdin SPI_1 */
77&ecspi1 {
78 status = "okay";
79};
80
81/* EEPROM on display adapter boards */
82&eeprom_display_adapter {
83 status = "okay";
84};
85
86/* EEPROM on Verdin Development board */
87&eeprom_carrier_board {
88 status = "okay";
89};
90
91&eqos {
92 status = "okay";
93};
94
95&fec {
96 phy-supply = <&reg_eth2phy>;
97 status = "okay";
98};
99
100&flexcan1 {
101 status = "okay";
102};
103
104&flexcan2 {
105 status = "okay";
106};
107
108/* Verdin QSPI_1 */
109&flexspi {
110 status = "okay";
111};
112
Tom Rini762f85b2024-07-20 11:15:10 -0600113&gpio4 {
114 pinctrl-names = "default";
115 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
116};
117
Tom Rini53633a82024-02-29 12:33:36 -0500118&gpio_expander_21 {
119 status = "okay";
120 vcc-supply = <&reg_1p8v>;
121};
122
Tom Rini6b642ac2024-10-01 12:20:28 -0600123/* Verdin HDMI_1 */
124&hdmi_pvi {
125 status = "okay";
126};
127
128&hdmi_tx {
129 status = "okay";
130
131 ports {
132 port@1 {
133 hdmi_tx_out: endpoint {
134 remote-endpoint = <&native_hdmi_connector_in>;
135 };
136 };
137 };
138};
139
140&hdmi_tx_phy {
141 status = "okay";
142};
143
Tom Rini53633a82024-02-29 12:33:36 -0500144/* Current measurement into module VCC */
145&hwmon {
146 status = "okay";
147};
148
149&hwmon_temp {
150 vs-supply = <&reg_1p8v>;
151 status = "okay";
152};
153
154/* Verdin I2C_2_DSI */
155&i2c2 {
156 status = "okay";
157};
158
159&i2c3 {
160 status = "okay";
161};
162
163/* Verdin I2C_1 */
164&i2c4 {
165 status = "okay";
166
167 /* Audio Codec */
168 nau8822_1a: audio-codec@1a {
169 compatible = "nuvoton,nau8822";
170 reg = <0x1a>;
171 pinctrl-names = "default";
172 pinctrl-0 = <&pinctrl_sai1>;
173 #sound-dai-cells = <0>;
174 };
175};
176
Tom Rini762f85b2024-07-20 11:15:10 -0600177/* Verdin I2C_3_HDMI */
178&i2c5 {
179 status = "okay";
180};
181
Tom Rini6b642ac2024-10-01 12:20:28 -0600182&lcdif3 {
183 status = "okay";
184};
185
Tom Rini53633a82024-02-29 12:33:36 -0500186/* Verdin PCIE_1 */
187&pcie {
188 status = "okay";
189};
190
191&pcie_phy {
192 status = "okay";
193};
194
195/* Verdin PWM_1 */
196&pwm1 {
197 status = "okay";
198};
199
200/* Verdin PWM_2 */
201&pwm2 {
202 status = "okay";
203};
204
205/* Verdin PWM_3_DSI */
206&pwm3 {
207 status = "okay";
208};
209
210&reg_usdhc2_vmmc {
211 vin-supply = <&reg_3p3v>;
212};
213
214/* Verdin I2S_1 */
215&sai1 {
216 assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
217 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
218 assigned-clock-rates = <24576000>;
219 fsl,sai-mclk-direction-output;
220 status = "okay";
221};
222
Tom Rini9c8af152024-12-24 12:03:04 -0600223/* Verdin HDMI_1 Audio */
224&sound_hdmi {
225 status = "okay";
226};
227
Tom Rini53633a82024-02-29 12:33:36 -0500228/* Verdin UART_1, connector X50 through RS485 transceiver */
229&uart1 {
230 linux,rs485-enabled-at-boot-time;
231 rs485-rts-active-low;
232 rs485-rx-during-tx;
233 status = "okay";
234};
235
236/* Verdin UART_2 */
237&uart2 {
238 status = "okay";
239};
240
241/* Verdin UART_3, used as the Linux Console */
242&uart3 {
243 status = "okay";
244};
245
246/* Verdin USB_1 */
247&usb3_0 {
248 status = "okay";
249};
250
251&usb3_phy0 {
252 status = "okay";
253};
254
255/* Verdin USB_2 */
256&usb3_1 {
257 fsl,permanently-attached;
258 status = "okay";
259};
260
261&usb3_phy1 {
262 status = "okay";
263};
264
265/* Limit frequency on dev board due to long traces and bad signal integrity */
266&usdhc2 {
267 max-frequency = <100000000>;
268 status = "okay";
269};