xref: /linux/arch/arm64/boot/dts/ti/k3-am62p-verdin-dev.dtsi (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright 2025 Toradex
4 *
5 * Common dtsi for Verdin AM62P SoM on Development carrier board
6 *
7 * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62p
8 * https://www.toradex.com/products/carrier-board/verdin-development-board-kit
9 */
10
11/ {
12	aliases {
13		eeprom1 = &carrier_eeprom;
14	};
15
16	sound {
17		compatible = "simple-audio-card";
18		simple-audio-card,bitclock-master = <&codec_dai>;
19		simple-audio-card,format = "i2s";
20		simple-audio-card,frame-master = <&codec_dai>;
21		simple-audio-card,mclk-fs = <256>;
22		simple-audio-card,name = "verdin-nau8822";
23		simple-audio-card,routing =
24			"Headphones", "LHP",
25			"Headphones", "RHP",
26			"Speaker", "LSPK",
27			"Speaker", "RSPK",
28			"Line Out", "AUXOUT1",
29			"Line Out", "AUXOUT2",
30			"LAUX", "Line In",
31			"RAUX", "Line In",
32			"LMICP", "Mic In",
33			"RMICP", "Mic In";
34		simple-audio-card,widgets =
35			"Headphones", "Headphones",
36			"Line Out", "Line Out",
37			"Speaker", "Speaker",
38			"Microphone", "Mic In",
39			"Line", "Line In";
40
41		codec_dai: simple-audio-card,codec {
42			sound-dai = <&nau8822_1a>;
43		};
44
45		simple-audio-card,cpu {
46			sound-dai = <&mcasp0>;
47		};
48	};
49};
50
51/* Verdin ETHs */
52&cpsw3g {
53	pinctrl-names = "default";
54	pinctrl-0 = <&pinctrl_rgmii1>, <&pinctrl_rgmii2>;
55	status = "okay";
56};
57
58/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
59&cpsw3g_mdio {
60	status = "okay";
61
62	carrier_eth_phy: ethernet-phy@7 {
63		compatible = "ethernet-phy-ieee802.3-c22";
64		reg = <7>;
65		pinctrl-names = "default";
66		pinctrl-0 = <&pinctrl_eth2_rgmii_int>;
67		interrupt-parent = <&main_gpio0>;
68		interrupts = <42 IRQ_TYPE_EDGE_FALLING>;
69		micrel,led-mode = <0>;
70	};
71};
72
73/* Verdin ETH_1 (On-module PHY) */
74&cpsw_port1 {
75	status = "okay";
76};
77
78/* Verdin ETH_2_RGMII */
79&cpsw_port2 {
80	phy-handle = <&carrier_eth_phy>;
81	phy-mode = "rgmii-rxid";
82	status = "okay";
83};
84
85/* Verdin PWM_3_DSI */
86&epwm0 {
87	status = "okay";
88};
89
90/* Verdin PWM_1, PWM_2 */
91&epwm2 {
92	status = "okay";
93};
94
95&main_gpio0 {
96	pinctrl-names = "default";
97	pinctrl-0 = <&pinctrl_pcie_1_reset>,
98		    <&pinctrl_gpio_5>,
99		    <&pinctrl_gpio_6>,
100		    <&pinctrl_gpio_7>,
101		    <&pinctrl_gpio_8>;
102};
103
104/* Verdin I2C_1 */
105&main_i2c0 {
106	status = "okay";
107
108	nau8822_1a: audio-codec@1a {
109		compatible = "nuvoton,nau8822";
110		reg = <0x1a>;
111		pinctrl-names = "default";
112		pinctrl-0 = <&pinctrl_i2s1_mclk>;
113		clock-names = "mclk";
114		clocks = <&audio_refclk0>;
115		#sound-dai-cells = <0>;
116	};
117
118	carrier_gpio_expander: gpio@21 {
119		compatible = "nxp,pcal6416";
120		reg = <0x21>;
121		#gpio-cells = <2>;
122		gpio-controller;
123	};
124
125	/* Current measurement into module VCC */
126	hwmon@40 {
127		compatible = "ti,ina219";
128		reg = <0x40>;
129		shunt-resistor = <10000>;
130	};
131
132	temperature-sensor@4f {
133		compatible = "ti,tmp75c";
134		reg = <0x4f>;
135	};
136
137	carrier_eeprom: eeprom@57 {
138		compatible = "st,24c02", "atmel,24c02";
139		reg = <0x57>;
140		pagesize = <16>;
141	};
142};
143
144/* Verdin I2C_2_DSI */
145&main_i2c1 {
146	status = "okay";
147};
148
149/* Verdin I2C_4_CSI */
150&main_i2c3 {
151	status = "okay";
152};
153
154/* Verdin CAN_1 */
155&main_mcan0 {
156	status = "okay";
157};
158
159/* Verdin SPI_1 */
160&main_spi1 {
161	status = "okay";
162};
163
164/* Verdin UART_3, used as the Linux console */
165&main_uart0 {
166	status = "okay";
167};
168
169/* Verdin UART_1, connector X50 through RS485 transceiver */
170&main_uart1 {
171	rs485-rx-during-tx;
172	linux,rs485-enabled-at-boot-time;
173	status = "okay";
174};
175
176/* Verdin I2S_1 */
177&mcasp0 {
178	status = "okay";
179};
180
181&mcu_gpio0 {
182	pinctrl-names = "default";
183	pinctrl-0 = <&pinctrl_gpio_1>,
184		    <&pinctrl_gpio_2>,
185		    <&pinctrl_gpio_3>,
186		    <&pinctrl_gpio_4>;
187};
188
189/* Verdin I2C_3_HDMI */
190&mcu_i2c0 {
191	status = "okay";
192};
193
194/* Verdin CAN_2 */
195&mcu_mcan0 {
196	status = "okay";
197};
198
199/* Verdin UART_4 */
200&mcu_uart0 {
201	status = "okay";
202};
203
204/* Verdin QSPI_1 */
205&ospi0 {
206	status = "okay";
207};
208
209/* Verdin SD_1 */
210&sdhci1 {
211	status = "okay";
212};
213
214/* Verdin USB_1 */
215&usbss0 {
216	status = "okay";
217};
218
219&usb0 {
220	status = "okay";
221};
222
223/* Verdin USB_2 */
224&usbss1 {
225	status = "okay";
226};
227
228&usb1 {
229	status = "okay";
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