1// 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";
25		simple-audio-card,routing =
26			"Headphone Jack", "HPOUTL",
27			"Headphone Jack", "HPOUTR",
28			"IN2L", "Line In Jack",
29			"IN2R", "Line In Jack",
30			"Headphone Jack", "MICBIAS",
31			"IN1L", "Headphone Jack";
32		simple-audio-card,widgets =
33			"Microphone", "Headphone Jack",
34			"Headphone", "Headphone Jack",
35			"Line", "Line In Jack";
36
37		codec_dai: simple-audio-card,codec {
38			clocks = <&audio_refclk1>;
39			sound-dai = <&wm8904_1a>;
40		};
41
42		simple-audio-card,cpu {
43			sound-dai = <&mcasp0>;
44		};
45	};
46};
47
48/* Verdin ETHs */
49&cpsw3g {
50	status = "okay";
51};
52
53/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
54&cpsw3g_mdio {
55	status = "okay";
56};
57
58/* Verdin ETH_1 (On-module PHY) */
59&cpsw_port1 {
60	status = "okay";
61};
62
63/* Verdin PWM_1, PWM_2 */
64&epwm0 {
65	status = "okay";
66};
67
68/* Verdin PWM_3_DSI */
69&epwm1 {
70	status = "okay";
71};
72
73&main_gpio0 {
74	pinctrl-names = "default";
75	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
76		    <&pinctrl_gpio_5>,
77		    <&pinctrl_gpio_6>,
78		    <&pinctrl_gpio_7>,
79		    <&pinctrl_gpio_8>;
80};
81
82/* Verdin I2C_1 */
83&main_i2c1 {
84	status = "okay";
85
86	/* Audio Codec */
87	wm8904_1a: audio-codec@1a {
88		compatible = "wlf,wm8904";
89		reg = <0x1a>;
90		pinctrl-names = "default";
91		pinctrl-0 = <&pinctrl_i2s1_mclk>;
92		#sound-dai-cells = <0>;
93		clocks = <&audio_refclk1>;
94		clock-names = "mclk";
95		AVDD-supply = <&reg_1v8_sw>;
96		CPVDD-supply = <&reg_1v8_sw>;
97		DBVDD-supply = <&reg_1v8_sw>;
98		DCVDD-supply = <&reg_1v8_sw>;
99		MICVDD-supply = <&reg_1v8_sw>;
100	};
101
102	/* Current measurement into module VCC */
103	hwmon@40 {
104		compatible = "ti,ina219";
105		reg = <0x40>;
106		shunt-resistor = <10000>;
107	};
108
109	/* Temperature sensor */
110	sensor@4f {
111		compatible = "ti,tmp75c";
112		reg = <0x4f>;
113	};
114
115	/* EEPROM */
116	eeprom@57 {
117		compatible = "st,24c02";
118		reg = <0x57>;
119		pagesize = <16>;
120	};
121};
122
123/* Verdin I2C_2_DSI */
124&main_i2c2 {
125	status = "okay";
126};
127
128/* Verdin I2C_4_CSI */
129&main_i2c3 {
130	status = "okay";
131};
132
133/* Verdin CAN_1 */
134&main_mcan0 {
135	status = "okay";
136};
137
138/* Verdin SPI_1 */
139&main_spi1 {
140	status = "okay";
141};
142
143/* Verdin UART_3 */
144&main_uart0 {
145	status = "okay";
146};
147
148/* Verdin UART_1 */
149&main_uart1 {
150	status = "okay";
151};
152
153/* Verdin I2S_1 */
154&mcasp0 {
155	status = "okay";
156};
157
158&mcu_gpio0 {
159	pinctrl-names = "default";
160	pinctrl-0 = <&pinctrl_gpio_1>,
161		    <&pinctrl_gpio_2>,
162		    <&pinctrl_gpio_3>,
163		    <&pinctrl_gpio_4>;
164};
165
166/* Verdin I2C_3_HDMI */
167&mcu_i2c0 {
168	status = "okay";
169};
170
171/* Verdin CAN_2 */
172&mcu_mcan0 {
173	status = "okay";
174};
175
176/* Verdin UART_4 */
177&mcu_uart0 {
178	status = "okay";
179};
180
181/* Verdin QSPI_1 */
182&ospi0 {
183	status = "okay";
184};
185
186/* Verdin SD_1 */
187&sdhci1 {
188	ti,driver-strength-ohm = <33>;
189	status = "okay";
190};
191
192/* Verdin USB_1 */
193&usbss0 {
194	status = "okay";
195};
196
197&usb0 {
198	status = "okay";
199};
200
201/* Verdin USB_2 */
202&usbss1 {
203	status = "okay";
204};
205
206&usb1 {
207	status = "okay";
208};
209
210/* Verdin CTRL_WAKE1_MICO# */
211&verdin_gpio_keys {
212	status = "okay";
213};
214
215/* Verdin UART_2 */
216&wkup_uart0 {
217	/* FIXME: WKUP UART0 is used by DM firmware */
218	status = "reserved";
219};
220