xref: /linux/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi (revision 76d9b92e68f2bb55890f935c5143f4fef97a935d)
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&backlight {
68	power-supply = <&reg_3p3v>;
69};
70
71/* Verdin SPI_1 */
72&ecspi1 {
73	status = "okay";
74};
75
76/* EEPROM on display adapter boards */
77&eeprom_display_adapter {
78	status = "okay";
79};
80
81/* EEPROM on Verdin Development board */
82&eeprom_carrier_board {
83	status = "okay";
84};
85
86&eqos {
87	status = "okay";
88};
89
90&fec {
91	phy-supply = <&reg_eth2phy>;
92	status = "okay";
93};
94
95&flexcan1 {
96	status = "okay";
97};
98
99&flexcan2 {
100	status = "okay";
101};
102
103/* Verdin QSPI_1 */
104&flexspi {
105	status = "okay";
106};
107
108&gpio4 {
109	pinctrl-names = "default";
110	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
111};
112
113&gpio_expander_21 {
114	status = "okay";
115	vcc-supply = <&reg_1p8v>;
116};
117
118/* Verdin HDMI_1 */
119&hdmi_pvi {
120	status = "okay";
121};
122
123&hdmi_tx {
124	status = "okay";
125
126	ports {
127		port@1 {
128			hdmi_tx_out: endpoint {
129				remote-endpoint = <&native_hdmi_connector_in>;
130			};
131		};
132	};
133};
134
135&hdmi_tx_phy {
136	status = "okay";
137};
138
139/* Current measurement into module VCC */
140&hwmon {
141	status = "okay";
142};
143
144&hwmon_temp {
145	vs-supply = <&reg_1p8v>;
146	status = "okay";
147};
148
149/* Verdin I2C_2_DSI */
150&i2c2 {
151	status = "okay";
152};
153
154&i2c3 {
155	status = "okay";
156};
157
158/* Verdin I2C_1 */
159&i2c4 {
160	status = "okay";
161
162	/* Audio Codec */
163	nau8822_1a: audio-codec@1a {
164		compatible = "nuvoton,nau8822";
165		reg = <0x1a>;
166		pinctrl-names = "default";
167		pinctrl-0 = <&pinctrl_sai1>;
168		#sound-dai-cells = <0>;
169	};
170};
171
172/* Verdin I2C_3_HDMI */
173&i2c5 {
174	status = "okay";
175};
176
177&lcdif3 {
178	status = "okay";
179};
180
181/* Verdin PCIE_1 */
182&pcie {
183	status = "okay";
184};
185
186&pcie_phy {
187	status = "okay";
188};
189
190/* Verdin PWM_1 */
191&pwm1 {
192	status = "okay";
193};
194
195/* Verdin PWM_2 */
196&pwm2 {
197	status = "okay";
198};
199
200/* Verdin PWM_3_DSI */
201&pwm3 {
202	status = "okay";
203};
204
205&reg_usdhc2_vmmc {
206	vin-supply = <&reg_3p3v>;
207};
208
209/* Verdin I2S_1 */
210&sai1 {
211	assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
212	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
213	assigned-clock-rates = <24576000>;
214	fsl,sai-mclk-direction-output;
215	status = "okay";
216};
217
218/* Verdin UART_1, connector X50 through RS485 transceiver */
219&uart1 {
220	linux,rs485-enabled-at-boot-time;
221	rs485-rts-active-low;
222	rs485-rx-during-tx;
223	status = "okay";
224};
225
226/* Verdin UART_2 */
227&uart2 {
228	status = "okay";
229};
230
231/* Verdin UART_3, used as the Linux Console */
232&uart3 {
233	status = "okay";
234};
235
236/* Verdin USB_1 */
237&usb3_0 {
238	status = "okay";
239};
240
241&usb3_phy0 {
242	status = "okay";
243};
244
245/* Verdin USB_2 */
246&usb3_1 {
247	fsl,permanently-attached;
248	status = "okay";
249};
250
251&usb3_phy1 {
252	status = "okay";
253};
254
255/* Limit frequency on dev board due to long traces and bad signal integrity */
256&usdhc2 {
257	max-frequency = <100000000>;
258	status = "okay";
259};
260