xref: /linux/arch/arm64/boot/dts/ti/k3-am62-verdin-dahlia.dtsi (revision 001821b0e79716c4e17c71d8e053a23599a7a508)
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,mclk-fs = <256>;
26		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			sound-dai = <&wm8904_1a>;
40		};
41
42		simple-audio-card,cpu {
43			sound-dai = <&mcasp0>;
44		};
45	};
46
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	};
55};
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>,
172		    <&pinctrl_gpio_4>,
173		    <&pinctrl_pcie_1_reset>;
174};
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
196/* Do not force CTRL_SLEEP_MOCI# always enabled */
197&reg_force_sleep_moci {
198	status = "disabled";
199};
200
201/* Verdin SD_1 */
202&sdhci1 {
203	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 {
221	#address-cells = <1>;
222	#size-cells = <0>;
223	status = "okay";
224
225	usb-hub@1 {
226		compatible = "usb424,2744";
227		reg = <1>;
228		vdd-supply = <&reg_usb_hub>;
229	};
230};
231
232/* Verdin CTRL_WAKE1_MICO# */
233&verdin_gpio_keys {
234	status = "okay";
235};
236
237/* Verdin PCIE_1_RESET# */
238&verdin_pcie_1_reset_hog {
239	status = "okay";
240};
241
242/* Verdin UART_2 */
243&wkup_uart0 {
244	status = "okay";
245};
246