blob: fbcd93e33aeaa0864be6ac66b8a33baed39795fc [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 = "X21";
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 sound {
20 compatible = "simple-audio-card";
21 simple-audio-card,bitclock-master = <&codec_dai>;
22 simple-audio-card,format = "i2s";
23 simple-audio-card,frame-master = <&codec_dai>;
24 simple-audio-card,mclk-fs = <256>;
Tom Rini762f85b2024-07-20 11:15:10 -060025 simple-audio-card,name = "verdin-wm8904";
Tom Rini53633a82024-02-29 12:33:36 -050026 simple-audio-card,routing =
27 "Headphone Jack", "HPOUTL",
28 "Headphone Jack", "HPOUTR",
29 "IN2L", "Line In Jack",
30 "IN2R", "Line In Jack",
31 "Headphone Jack", "MICBIAS",
32 "IN1L", "Headphone Jack";
33 simple-audio-card,widgets =
34 "Microphone", "Headphone Jack",
35 "Headphone", "Headphone Jack",
36 "Line", "Line In Jack";
37
38 codec_dai: simple-audio-card,codec {
39 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
40 sound-dai = <&wm8904_1a>;
41 };
42
43 simple-audio-card,cpu {
44 sound-dai = <&sai1>;
45 };
46 };
Tom Rini762f85b2024-07-20 11:15:10 -060047
48 reg_usb_hub: regulator-usb-hub {
49 compatible = "regulator-fixed";
50 enable-active-high;
51 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
52 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
53 regulator-boot-on;
54 regulator-name = "HUB_PWR_EN";
55 };
56
57 reg_pcie: regulator-pcie {
58 compatible = "regulator-fixed";
59 enable-active-high;
60 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
61 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
62 regulator-boot-on;
63 regulator-name = "PCIE_1_PWR_EN";
64 startup-delay-us = <100000>;
65 };
Tom Rini53633a82024-02-29 12:33:36 -050066};
67
68&backlight {
69 power-supply = <&reg_3p3v>;
70};
71
72/* Verdin SPI_1 */
73&ecspi1 {
74 status = "okay";
75};
76
77/* EEPROM on display adapter boards */
78&eeprom_display_adapter {
79 status = "okay";
80};
81
82/* EEPROM on Verdin Development board */
83&eeprom_carrier_board {
84 status = "okay";
85};
86
87&eqos {
88 status = "okay";
89};
90
91&flexcan1 {
92 status = "okay";
93};
94
95&flexcan2 {
96 status = "okay";
97};
98
99/* Verdin QSPI_1 */
100&flexspi {
101 status = "okay";
102};
103
Tom Rini762f85b2024-07-20 11:15:10 -0600104&gpio4 {
105 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
107};
108
Tom Rini6b642ac2024-10-01 12:20:28 -0600109/* Verdin HDMI_1 */
110&hdmi_pvi {
111 status = "okay";
112};
113
114&hdmi_tx {
115 status = "okay";
116
117 ports {
118 port@1 {
119 hdmi_tx_out: endpoint {
120 remote-endpoint = <&native_hdmi_connector_in>;
121 };
122 };
123 };
124};
125
126&hdmi_tx_phy {
127 status = "okay";
128};
129
Tom Rini53633a82024-02-29 12:33:36 -0500130/* Current measurement into module VCC */
131&hwmon {
132 status = "okay";
133};
134
135&hwmon_temp {
136 vs-supply = <&reg_1p8v>;
137 status = "okay";
138};
139
140/* Verdin I2C_2_DSI */
141&i2c2 {
142 status = "okay";
143};
144
145&i2c3 {
146 status = "okay";
147};
148
149/* Verdin I2C_1 */
150&i2c4 {
151 status = "okay";
152
153 /* Audio Codec */
154 wm8904_1a: audio-codec@1a {
155 compatible = "wlf,wm8904";
156 reg = <0x1a>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_sai1>;
159 #sound-dai-cells = <0>;
160 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
161 clock-names = "mclk";
162 AVDD-supply = <&reg_1p8v>;
163 CPVDD-supply = <&reg_1p8v>;
164 DBVDD-supply = <&reg_1p8v>;
165 DCVDD-supply = <&reg_1p8v>;
166 MICVDD-supply = <&reg_1p8v>;
167 };
168};
169
Tom Rini762f85b2024-07-20 11:15:10 -0600170/* Verdin I2C_3_HDMI */
171&i2c5 {
172 status = "okay";
173};
174
Tom Rini6b642ac2024-10-01 12:20:28 -0600175&lcdif3 {
176 status = "okay";
177};
178
Tom Rini53633a82024-02-29 12:33:36 -0500179/* Verdin PCIE_1 */
180&pcie {
Tom Rini762f85b2024-07-20 11:15:10 -0600181 vpcie-supply = <&reg_pcie>;
Tom Rini53633a82024-02-29 12:33:36 -0500182 status = "okay";
183};
184
185&pcie_phy {
186 status = "okay";
187};
188
189/* Verdin PWM_1 */
190&pwm1 {
191 status = "okay";
192};
193
194/* Verdin PWM_2 */
195&pwm2 {
196 status = "okay";
197};
198
199/* Verdin PWM_3_DSI */
200&pwm3 {
201 status = "okay";
202};
203
204&reg_usdhc2_vmmc {
205 vin-supply = <&reg_3p3v>;
206};
207
Tom Rini762f85b2024-07-20 11:15:10 -0600208/* We support turning off sleep moci on Dahlia */
209&reg_force_sleep_moci {
210 status = "disabled";
211};
212
Tom Rini53633a82024-02-29 12:33:36 -0500213/* Verdin I2S_1 */
214&sai1 {
215 assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
216 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
217 assigned-clock-rates = <24576000>;
218 fsl,sai-mclk-direction-output;
219 status = "okay";
220};
221
222/* Verdin UART_1 */
223&uart1 {
224 status = "okay";
225};
226
227/* Verdin UART_2 */
228&uart2 {
229 status = "okay";
230};
231
232/* Verdin UART_3, used as the Linux Console */
233&uart3 {
234 status = "okay";
235};
236
237/* Verdin USB_1 */
238&usb3_0 {
239 status = "okay";
240};
241
242&usb3_phy0 {
243 status = "okay";
244};
245
246/* Verdin USB_2 */
247&usb3_1 {
248 fsl,permanently-attached;
249 status = "okay";
250};
251
252&usb3_phy1 {
253 status = "okay";
254};
255
Tom Rini762f85b2024-07-20 11:15:10 -0600256&usb_dwc3_1 {
257 #address-cells = <1>;
258 #size-cells = <0>;
259
260 usb_hub_3_0: usb-hub@1 {
261 compatible = "usb424,5744";
262 reg = <1>;
263 peer-hub = <&usb_hub_2_0>;
264 vdd-supply = <&reg_usb_hub>;
265 };
266
267 usb_hub_2_0: usb-hub@2 {
268 compatible = "usb424,2744";
269 reg = <2>;
270 peer-hub = <&usb_hub_3_0>;
271 vdd-supply = <&reg_usb_hub>;
272 };
273};
274
Tom Rini53633a82024-02-29 12:33:36 -0500275/* Verdin SD_1 */
276&usdhc2 {
277 status = "okay";
278};