blob: e8f4d136e5dfb4dd67c16f450141ebf9cd498b24 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright 2023 Toradex
4 *
5 * Common dtsi for Verdin AM62 SoM on Dahlia carrier board
6 *
7 * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
8 * https://www.toradex.com/products/carrier-board/dahlia-carrier-board-kit
9 */
10
11/ {
12 reg_1v8_sw: regulator-1v8-sw {
13 compatible = "regulator-fixed";
14 regulator-max-microvolt = <1800000>;
15 regulator-min-microvolt = <1800000>;
16 regulator-name = "On-carrier +V1.8_SW";
17 };
18
19 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,name = "verdin-wm8904";
Tom Rini762f85b2024-07-20 11:15:10 -060025 simple-audio-card,mclk-fs = <256>;
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 {
Tom Rini53633a82024-02-29 12:33:36 -050039 sound-dai = <&wm8904_1a>;
40 };
41
42 simple-audio-card,cpu {
43 sound-dai = <&mcasp0>;
44 };
45 };
Tom Rini762f85b2024-07-20 11:15:10 -060046
47 reg_usb_hub: regulator-usb-hub {
48 compatible = "regulator-fixed";
49 enable-active-high;
50 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
51 gpio = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
52 regulator-boot-on;
53 regulator-name = "HUB_PWR_EN";
54 };
Tom Rini53633a82024-02-29 12:33:36 -050055};
56
57/* Verdin ETHs */
58&cpsw3g {
59 status = "okay";
60};
61
62/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
63&cpsw3g_mdio {
64 status = "okay";
65};
66
67/* Verdin ETH_1 (On-module PHY) */
68&cpsw_port1 {
69 status = "okay";
70};
71
72/* Verdin PWM_1, PWM_2 */
73&epwm0 {
74 status = "okay";
75};
76
77/* Verdin PWM_3_DSI */
78&epwm1 {
79 status = "okay";
80};
81
82&main_gpio0 {
83 pinctrl-names = "default";
84 pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
85 <&pinctrl_gpio_5>,
86 <&pinctrl_gpio_6>,
87 <&pinctrl_gpio_7>,
88 <&pinctrl_gpio_8>;
89};
90
91/* Verdin I2C_1 */
92&main_i2c1 {
93 status = "okay";
94
95 /* Audio Codec */
96 wm8904_1a: audio-codec@1a {
97 compatible = "wlf,wm8904";
98 reg = <0x1a>;
99 pinctrl-names = "default";
100 pinctrl-0 = <&pinctrl_i2s1_mclk>;
101 #sound-dai-cells = <0>;
102 clocks = <&audio_refclk1>;
103 clock-names = "mclk";
104 AVDD-supply = <&reg_1v8_sw>;
105 CPVDD-supply = <&reg_1v8_sw>;
106 DBVDD-supply = <&reg_1v8_sw>;
107 DCVDD-supply = <&reg_1v8_sw>;
108 MICVDD-supply = <&reg_1v8_sw>;
109 };
110
111 /* Current measurement into module VCC */
112 hwmon@40 {
113 compatible = "ti,ina219";
114 reg = <0x40>;
115 shunt-resistor = <10000>;
116 };
117
118 /* Temperature sensor */
119 sensor@4f {
120 compatible = "ti,tmp75c";
121 reg = <0x4f>;
122 };
123
124 /* EEPROM */
125 eeprom@57 {
126 compatible = "st,24c02";
127 reg = <0x57>;
128 pagesize = <16>;
129 };
130};
131
132/* Verdin I2C_2_DSI */
133&main_i2c2 {
134 status = "okay";
135};
136
137/* Verdin I2C_4_CSI */
138&main_i2c3 {
139 status = "okay";
140};
141
142/* Verdin CAN_1 */
143&main_mcan0 {
144 status = "okay";
145};
146
147/* Verdin SPI_1 */
148&main_spi1 {
149 status = "okay";
150};
151
152/* Verdin UART_3 */
153&main_uart0 {
154 status = "okay";
155};
156
157/* Verdin UART_1 */
158&main_uart1 {
159 status = "okay";
160};
161
162/* Verdin I2S_1 */
163&mcasp0 {
164 status = "okay";
165};
166
167&mcu_gpio0 {
168 pinctrl-names = "default";
169 pinctrl-0 = <&pinctrl_gpio_1>,
170 <&pinctrl_gpio_2>,
171 <&pinctrl_gpio_3>,
Tom Rini762f85b2024-07-20 11:15:10 -0600172 <&pinctrl_gpio_4>,
173 <&pinctrl_pcie_1_reset>;
Tom Rini53633a82024-02-29 12:33:36 -0500174};
175
176/* Verdin I2C_3_HDMI */
177&mcu_i2c0 {
178 status = "okay";
179};
180
181/* Verdin CAN_2 */
182&mcu_mcan0 {
183 status = "okay";
184};
185
186/* Verdin UART_4 */
187&mcu_uart0 {
188 status = "okay";
189};
190
191/* Verdin QSPI_1 */
192&ospi0 {
193 status = "okay";
194};
195
Tom Rini762f85b2024-07-20 11:15:10 -0600196/* Do not force CTRL_SLEEP_MOCI# always enabled */
197&reg_force_sleep_moci {
198 status = "disabled";
199};
200
Tom Rini53633a82024-02-29 12:33:36 -0500201/* Verdin SD_1 */
202&sdhci1 {
Tom Rini53633a82024-02-29 12:33:36 -0500203 status = "okay";
204};
205
206/* Verdin USB_1 */
207&usbss0 {
208 status = "okay";
209};
210
211&usb0 {
212 status = "okay";
213};
214
215/* Verdin USB_2 */
216&usbss1 {
217 status = "okay";
218};
219
220&usb1 {
Tom Rini762f85b2024-07-20 11:15:10 -0600221 #address-cells = <1>;
222 #size-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500223 status = "okay";
Tom Rini762f85b2024-07-20 11:15:10 -0600224
225 usb-hub@1 {
226 compatible = "usb424,2744";
227 reg = <1>;
228 vdd-supply = <&reg_usb_hub>;
229 };
Tom Rini53633a82024-02-29 12:33:36 -0500230};
231
232/* Verdin CTRL_WAKE1_MICO# */
233&verdin_gpio_keys {
234 status = "okay";
235};
236
Tom Rini762f85b2024-07-20 11:15:10 -0600237/* Verdin PCIE_1_RESET# */
238&verdin_pcie_1_reset_hog {
239 status = "okay";
240};
241
Tom Rini53633a82024-02-29 12:33:36 -0500242/* Verdin UART_2 */
243&wkup_uart0 {
Tom Rini93743d22024-04-01 09:08:13 -0400244 status = "okay";
Tom Rini53633a82024-02-29 12:33:36 -0500245};