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