xref: /linux/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi (revision 566ab427f827b0256d3e8ce0235d088e6a9c28bd)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright 2022 Toradex
4 */
5
6/ {
7	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
19	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>;
37		simple-audio-card,name = "verdin-nau8822";
38		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
67/* Verdin HDMI_1 Audio */
68&aud2htx {
69	status = "okay";
70};
71
72&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
113&gpio4 {
114	pinctrl-names = "default";
115	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
116};
117
118&gpio_expander_21 {
119	status = "okay";
120	vcc-supply = <&reg_1p8v>;
121};
122
123/* 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
144/* 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
177/* Verdin I2C_3_HDMI */
178&i2c5 {
179	status = "okay";
180};
181
182&lcdif3 {
183	status = "okay";
184};
185
186/* 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
223/* Verdin HDMI_1 Audio */
224&sound_hdmi {
225	status = "okay";
226};
227
228/* 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};
270