blob: 6e6b9c2c46406fc3691193e6874eb85fd8d28065 [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/ {
7 sound {
8 compatible = "simple-audio-card";
9 simple-audio-card,bitclock-master = <&codec_dai>;
10 simple-audio-card,format = "i2s";
11 simple-audio-card,frame-master = <&codec_dai>;
12 simple-audio-card,mclk-fs = <256>;
Tom Rini762f85b2024-07-20 11:15:10 -060013 simple-audio-card,name = "verdin-wm8904";
Tom Rini53633a82024-02-29 12:33:36 -050014 simple-audio-card,routing =
15 "Headphone Jack", "HPOUTL",
16 "Headphone Jack", "HPOUTR",
17 "IN2L", "Line In Jack",
18 "IN2R", "Line In Jack",
19 "Headphone Jack", "MICBIAS",
20 "IN1L", "Headphone Jack";
21 simple-audio-card,widgets =
22 "Microphone", "Headphone Jack",
23 "Headphone", "Headphone Jack",
24 "Line", "Line In Jack";
25
26 codec_dai: simple-audio-card,codec {
27 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
28 sound-dai = <&wm8904_1a>;
29 };
30
31 simple-audio-card,cpu {
32 sound-dai = <&sai1>;
33 };
34 };
Tom Rini762f85b2024-07-20 11:15:10 -060035
36 reg_usb_hub: regulator-usb-hub {
37 compatible = "regulator-fixed";
38 enable-active-high;
39 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
40 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
41 regulator-boot-on;
42 regulator-name = "HUB_PWR_EN";
43 };
44
45 reg_pcie: regulator-pcie {
46 compatible = "regulator-fixed";
47 enable-active-high;
48 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
49 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
50 regulator-boot-on;
51 regulator-name = "PCIE_1_PWR_EN";
52 startup-delay-us = <100000>;
53 };
Tom Rini53633a82024-02-29 12:33:36 -050054};
55
56&backlight {
57 power-supply = <&reg_3p3v>;
58};
59
60/* Verdin SPI_1 */
61&ecspi1 {
62 status = "okay";
63};
64
65/* EEPROM on display adapter boards */
66&eeprom_display_adapter {
67 status = "okay";
68};
69
70/* EEPROM on Verdin Development board */
71&eeprom_carrier_board {
72 status = "okay";
73};
74
75&eqos {
76 status = "okay";
77};
78
79&flexcan1 {
80 status = "okay";
81};
82
83&flexcan2 {
84 status = "okay";
85};
86
87/* Verdin QSPI_1 */
88&flexspi {
89 status = "okay";
90};
91
Tom Rini762f85b2024-07-20 11:15:10 -060092&gpio4 {
93 pinctrl-names = "default";
94 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
95};
96
Tom Rini53633a82024-02-29 12:33:36 -050097/* Current measurement into module VCC */
98&hwmon {
99 status = "okay";
100};
101
102&hwmon_temp {
103 vs-supply = <&reg_1p8v>;
104 status = "okay";
105};
106
107/* Verdin I2C_2_DSI */
108&i2c2 {
109 status = "okay";
110};
111
112&i2c3 {
113 status = "okay";
114};
115
116/* Verdin I2C_1 */
117&i2c4 {
118 status = "okay";
119
120 /* Audio Codec */
121 wm8904_1a: audio-codec@1a {
122 compatible = "wlf,wm8904";
123 reg = <0x1a>;
124 pinctrl-names = "default";
125 pinctrl-0 = <&pinctrl_sai1>;
126 #sound-dai-cells = <0>;
127 clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
128 clock-names = "mclk";
129 AVDD-supply = <&reg_1p8v>;
130 CPVDD-supply = <&reg_1p8v>;
131 DBVDD-supply = <&reg_1p8v>;
132 DCVDD-supply = <&reg_1p8v>;
133 MICVDD-supply = <&reg_1p8v>;
134 };
135};
136
Tom Rini762f85b2024-07-20 11:15:10 -0600137/* Verdin I2C_3_HDMI */
138&i2c5 {
139 status = "okay";
140};
141
Tom Rini53633a82024-02-29 12:33:36 -0500142/* Verdin PCIE_1 */
143&pcie {
Tom Rini762f85b2024-07-20 11:15:10 -0600144 vpcie-supply = <&reg_pcie>;
Tom Rini53633a82024-02-29 12:33:36 -0500145 status = "okay";
146};
147
148&pcie_phy {
149 status = "okay";
150};
151
152/* Verdin PWM_1 */
153&pwm1 {
154 status = "okay";
155};
156
157/* Verdin PWM_2 */
158&pwm2 {
159 status = "okay";
160};
161
162/* Verdin PWM_3_DSI */
163&pwm3 {
164 status = "okay";
165};
166
167&reg_usdhc2_vmmc {
168 vin-supply = <&reg_3p3v>;
169};
170
Tom Rini762f85b2024-07-20 11:15:10 -0600171/* We support turning off sleep moci on Dahlia */
172&reg_force_sleep_moci {
173 status = "disabled";
174};
175
Tom Rini53633a82024-02-29 12:33:36 -0500176/* Verdin I2S_1 */
177&sai1 {
178 assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
179 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
180 assigned-clock-rates = <24576000>;
181 fsl,sai-mclk-direction-output;
182 status = "okay";
183};
184
185/* Verdin UART_1 */
186&uart1 {
187 status = "okay";
188};
189
190/* Verdin UART_2 */
191&uart2 {
192 status = "okay";
193};
194
195/* Verdin UART_3, used as the Linux Console */
196&uart3 {
197 status = "okay";
198};
199
200/* Verdin USB_1 */
201&usb3_0 {
202 status = "okay";
203};
204
205&usb3_phy0 {
206 status = "okay";
207};
208
209/* Verdin USB_2 */
210&usb3_1 {
211 fsl,permanently-attached;
212 status = "okay";
213};
214
215&usb3_phy1 {
216 status = "okay";
217};
218
Tom Rini762f85b2024-07-20 11:15:10 -0600219&usb_dwc3_1 {
220 #address-cells = <1>;
221 #size-cells = <0>;
222
223 usb_hub_3_0: usb-hub@1 {
224 compatible = "usb424,5744";
225 reg = <1>;
226 peer-hub = <&usb_hub_2_0>;
227 vdd-supply = <&reg_usb_hub>;
228 };
229
230 usb_hub_2_0: usb-hub@2 {
231 compatible = "usb424,2744";
232 reg = <2>;
233 peer-hub = <&usb_hub_3_0>;
234 vdd-supply = <&reg_usb_hub>;
235 };
236};
237
Tom Rini53633a82024-02-29 12:33:36 -0500238/* Verdin SD_1 */
239&usdhc2 {
240 status = "okay";
241};