xref: /linux/arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1316b8024SFrancesco Dolcini// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2316b8024SFrancesco Dolcini/*
3316b8024SFrancesco Dolcini * Copyright 2023 Toradex
4316b8024SFrancesco Dolcini *
5316b8024SFrancesco Dolcini * Common dtsi for Verdin AM62 SoM on Development carrier board
6316b8024SFrancesco Dolcini *
7316b8024SFrancesco Dolcini * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
8316b8024SFrancesco Dolcini * https://www.toradex.com/products/carrier-board/verdin-development-board-kit
9316b8024SFrancesco Dolcini */
10316b8024SFrancesco Dolcini
11c9065820SFrancesco Dolcini/ {
12c9065820SFrancesco Dolcini	sound {
13c9065820SFrancesco Dolcini		compatible = "simple-audio-card";
14c9065820SFrancesco Dolcini		simple-audio-card,bitclock-master = <&codec_dai>;
15c9065820SFrancesco Dolcini		simple-audio-card,format = "i2s";
16c9065820SFrancesco Dolcini		simple-audio-card,frame-master = <&codec_dai>;
17*feebfe95SAndrejs Cainikovs		simple-audio-card,mclk-fs = <256>;
18c9065820SFrancesco Dolcini		simple-audio-card,name = "verdin-nau8822";
19c9065820SFrancesco Dolcini		simple-audio-card,routing =
20c9065820SFrancesco Dolcini			"Headphones", "LHP",
21c9065820SFrancesco Dolcini			"Headphones", "RHP",
22c9065820SFrancesco Dolcini			"Speaker", "LSPK",
23c9065820SFrancesco Dolcini			"Speaker", "RSPK",
24c9065820SFrancesco Dolcini			"Line Out", "AUXOUT1",
25c9065820SFrancesco Dolcini			"Line Out", "AUXOUT2",
26c9065820SFrancesco Dolcini			"LAUX", "Line In",
27c9065820SFrancesco Dolcini			"RAUX", "Line In",
28c9065820SFrancesco Dolcini			"LMICP", "Mic In",
29c9065820SFrancesco Dolcini			"RMICP", "Mic In";
30c9065820SFrancesco Dolcini		simple-audio-card,widgets =
31c9065820SFrancesco Dolcini			"Headphones", "Headphones",
32c9065820SFrancesco Dolcini			"Line Out", "Line Out",
33c9065820SFrancesco Dolcini			"Speaker", "Speaker",
34c9065820SFrancesco Dolcini			"Microphone", "Mic In",
35c9065820SFrancesco Dolcini			"Line", "Line In";
36c9065820SFrancesco Dolcini
37c9065820SFrancesco Dolcini		codec_dai: simple-audio-card,codec {
38c9065820SFrancesco Dolcini			sound-dai = <&nau8822_1a>;
39c9065820SFrancesco Dolcini		};
40c9065820SFrancesco Dolcini
41c9065820SFrancesco Dolcini		simple-audio-card,cpu {
42c9065820SFrancesco Dolcini			sound-dai = <&mcasp0>;
43c9065820SFrancesco Dolcini		};
44c9065820SFrancesco Dolcini	};
45c9065820SFrancesco Dolcini};
46c9065820SFrancesco Dolcini
47316b8024SFrancesco Dolcini/* Verdin ETHs */
48316b8024SFrancesco Dolcini&cpsw3g {
49316b8024SFrancesco Dolcini	pinctrl-names = "default";
50316b8024SFrancesco Dolcini	pinctrl-0 = <&pinctrl_rgmii1>, <&pinctrl_rgmii2>;
51316b8024SFrancesco Dolcini	status = "okay";
52316b8024SFrancesco Dolcini};
53316b8024SFrancesco Dolcini
54316b8024SFrancesco Dolcini/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
55316b8024SFrancesco Dolcini&cpsw3g_mdio {
56316b8024SFrancesco Dolcini	status = "okay";
57316b8024SFrancesco Dolcini
58316b8024SFrancesco Dolcini	cpsw3g_phy1: ethernet-phy@7 {
59316b8024SFrancesco Dolcini		compatible = "ethernet-phy-ieee802.3-c22";
60316b8024SFrancesco Dolcini		reg = <7>;
61316b8024SFrancesco Dolcini		interrupt-parent = <&main_gpio0>;
62316b8024SFrancesco Dolcini		interrupts = <38 IRQ_TYPE_EDGE_FALLING>;
63316b8024SFrancesco Dolcini		pinctrl-names = "default";
64316b8024SFrancesco Dolcini		pinctrl-0 = <&pinctrl_eth2_rgmii_int>;
65316b8024SFrancesco Dolcini		micrel,led-mode = <0>;
66316b8024SFrancesco Dolcini	};
67316b8024SFrancesco Dolcini};
68316b8024SFrancesco Dolcini
69316b8024SFrancesco Dolcini/* Verdin ETH_1 (On-module PHY) */
70316b8024SFrancesco Dolcini&cpsw_port1 {
71316b8024SFrancesco Dolcini	status = "okay";
72316b8024SFrancesco Dolcini};
73316b8024SFrancesco Dolcini
74316b8024SFrancesco Dolcini/* Verdin ETH_2_RGMII */
75316b8024SFrancesco Dolcini&cpsw_port2 {
76316b8024SFrancesco Dolcini	phy-handle = <&cpsw3g_phy1>;
77316b8024SFrancesco Dolcini	phy-mode = "rgmii-rxid";
78316b8024SFrancesco Dolcini	status = "okay";
79316b8024SFrancesco Dolcini};
80316b8024SFrancesco Dolcini
81316b8024SFrancesco Dolcini/* Verdin PWM_1, PWM_2 */
82316b8024SFrancesco Dolcini&epwm0 {
83316b8024SFrancesco Dolcini	status = "okay";
84316b8024SFrancesco Dolcini};
85316b8024SFrancesco Dolcini
86316b8024SFrancesco Dolcini/* Verdin PWM_3_DSI */
87316b8024SFrancesco Dolcini&epwm1 {
88316b8024SFrancesco Dolcini	status = "okay";
89316b8024SFrancesco Dolcini};
90316b8024SFrancesco Dolcini
91316b8024SFrancesco Dolcini&main_gpio0 {
92316b8024SFrancesco Dolcini	pinctrl-names = "default";
93316b8024SFrancesco Dolcini	pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
94316b8024SFrancesco Dolcini		    <&pinctrl_gpio_5>,
95316b8024SFrancesco Dolcini		    <&pinctrl_gpio_6>,
96316b8024SFrancesco Dolcini		    <&pinctrl_gpio_7>,
97316b8024SFrancesco Dolcini		    <&pinctrl_gpio_8>;
98316b8024SFrancesco Dolcini};
99316b8024SFrancesco Dolcini
100316b8024SFrancesco Dolcini/* Verdin I2C_1 */
101316b8024SFrancesco Dolcini&main_i2c1 {
102316b8024SFrancesco Dolcini	status = "okay";
103316b8024SFrancesco Dolcini
104c9065820SFrancesco Dolcini	/* Audio Codec */
105c9065820SFrancesco Dolcini	nau8822_1a: audio-codec@1a {
106c9065820SFrancesco Dolcini		compatible = "nuvoton,nau8822";
107c9065820SFrancesco Dolcini		reg = <0x1a>;
108c9065820SFrancesco Dolcini		pinctrl-names = "default";
109c9065820SFrancesco Dolcini		pinctrl-0 = <&pinctrl_i2s1_mclk>;
110*feebfe95SAndrejs Cainikovs		clock-names = "mclk";
111*feebfe95SAndrejs Cainikovs		clocks = <&audio_refclk1>;
112c9065820SFrancesco Dolcini		#sound-dai-cells = <0>;
113c9065820SFrancesco Dolcini	};
114c9065820SFrancesco Dolcini
115316b8024SFrancesco Dolcini	/* IO Expander */
116316b8024SFrancesco Dolcini	gpio_expander_21: gpio@21 {
117316b8024SFrancesco Dolcini		compatible = "nxp,pcal6416";
118316b8024SFrancesco Dolcini		reg = <0x21>;
119316b8024SFrancesco Dolcini		#gpio-cells = <2>;
120316b8024SFrancesco Dolcini		gpio-controller;
121316b8024SFrancesco Dolcini	};
122316b8024SFrancesco Dolcini
123316b8024SFrancesco Dolcini	/* Current measurement into module VCC */
124316b8024SFrancesco Dolcini	hwmon@40 {
125316b8024SFrancesco Dolcini		compatible = "ti,ina219";
126316b8024SFrancesco Dolcini		reg = <0x40>;
127316b8024SFrancesco Dolcini		shunt-resistor = <10000>;
128316b8024SFrancesco Dolcini	};
129316b8024SFrancesco Dolcini
130316b8024SFrancesco Dolcini	/* Temperature sensor */
131316b8024SFrancesco Dolcini	sensor@4f {
132316b8024SFrancesco Dolcini		compatible = "ti,tmp75c";
133316b8024SFrancesco Dolcini		reg = <0x4f>;
134316b8024SFrancesco Dolcini	};
135316b8024SFrancesco Dolcini
136316b8024SFrancesco Dolcini	/* EEPROM */
137316b8024SFrancesco Dolcini	eeprom@57 {
138316b8024SFrancesco Dolcini		compatible = "st,24c02", "atmel,24c02";
139316b8024SFrancesco Dolcini		reg = <0x57>;
140316b8024SFrancesco Dolcini		pagesize = <16>;
141316b8024SFrancesco Dolcini	};
142316b8024SFrancesco Dolcini};
143316b8024SFrancesco Dolcini
144316b8024SFrancesco Dolcini/* Verdin I2C_2_DSI */
145316b8024SFrancesco Dolcini&main_i2c2 {
146316b8024SFrancesco Dolcini	status = "okay";
147316b8024SFrancesco Dolcini};
148316b8024SFrancesco Dolcini
149316b8024SFrancesco Dolcini/* Verdin I2C_4_CSI */
150316b8024SFrancesco Dolcini&main_i2c3 {
151316b8024SFrancesco Dolcini	status = "okay";
152316b8024SFrancesco Dolcini};
153316b8024SFrancesco Dolcini
154316b8024SFrancesco Dolcini/* Verdin CAN_1 */
155316b8024SFrancesco Dolcini&main_mcan0 {
156316b8024SFrancesco Dolcini	status = "okay";
157316b8024SFrancesco Dolcini};
158316b8024SFrancesco Dolcini
159316b8024SFrancesco Dolcini/* Verdin SPI_1 */
160316b8024SFrancesco Dolcini&main_spi1 {
161316b8024SFrancesco Dolcini	status = "okay";
162316b8024SFrancesco Dolcini};
163316b8024SFrancesco Dolcini
164316b8024SFrancesco Dolcini/* Verdin UART_3 */
165316b8024SFrancesco Dolcini&main_uart0 {
166316b8024SFrancesco Dolcini	status = "okay";
167316b8024SFrancesco Dolcini};
168316b8024SFrancesco Dolcini
169316b8024SFrancesco Dolcini/* Verdin UART_1, connector X50 through RS485 transceiver. */
170316b8024SFrancesco Dolcini&main_uart1 {
171316b8024SFrancesco Dolcini	linux,rs485-enabled-at-boot-time;
172316b8024SFrancesco Dolcini	rs485-rx-during-tx;
173316b8024SFrancesco Dolcini	status = "okay";
174316b8024SFrancesco Dolcini};
175316b8024SFrancesco Dolcini
176316b8024SFrancesco Dolcini/* Verdin I2S_1 */
177316b8024SFrancesco Dolcini&mcasp0 {
178316b8024SFrancesco Dolcini	status = "okay";
179316b8024SFrancesco Dolcini};
180316b8024SFrancesco Dolcini
181316b8024SFrancesco Dolcini&mcu_gpio0 {
182316b8024SFrancesco Dolcini	pinctrl-names = "default";
183316b8024SFrancesco Dolcini	pinctrl-0 = <&pinctrl_gpio_1>,
184316b8024SFrancesco Dolcini		    <&pinctrl_gpio_2>,
185316b8024SFrancesco Dolcini		    <&pinctrl_gpio_3>,
18669ef7d9cSFrancesco Dolcini		    <&pinctrl_gpio_4>,
18769ef7d9cSFrancesco Dolcini		    <&pinctrl_pcie_1_reset>;
188316b8024SFrancesco Dolcini};
189316b8024SFrancesco Dolcini
190316b8024SFrancesco Dolcini/* Verdin I2C_3_HDMI */
191316b8024SFrancesco Dolcini&mcu_i2c0 {
192316b8024SFrancesco Dolcini	status = "okay";
193316b8024SFrancesco Dolcini};
194316b8024SFrancesco Dolcini
1957480cea3SHiago De Franco/* Verdin CAN_2 */
1967480cea3SHiago De Franco&mcu_mcan0 {
1977480cea3SHiago De Franco	status = "okay";
1987480cea3SHiago De Franco};
1997480cea3SHiago De Franco
200316b8024SFrancesco Dolcini/* Verdin UART_4 */
201316b8024SFrancesco Dolcini&mcu_uart0 {
202316b8024SFrancesco Dolcini	status = "okay";
203316b8024SFrancesco Dolcini};
204316b8024SFrancesco Dolcini
205316b8024SFrancesco Dolcini/* Verdin QSPI_1 */
206316b8024SFrancesco Dolcini&ospi0 {
207316b8024SFrancesco Dolcini	status = "okay";
208316b8024SFrancesco Dolcini};
209316b8024SFrancesco Dolcini
210316b8024SFrancesco Dolcini/* Verdin SD_1 */
211316b8024SFrancesco Dolcini&sdhci1 {
212316b8024SFrancesco Dolcini	status = "okay";
213316b8024SFrancesco Dolcini};
214316b8024SFrancesco Dolcini
215316b8024SFrancesco Dolcini/* Verdin USB_1 */
216316b8024SFrancesco Dolcini&usbss0 {
217316b8024SFrancesco Dolcini	status = "okay";
218316b8024SFrancesco Dolcini};
219316b8024SFrancesco Dolcini
220316b8024SFrancesco Dolcini&usb0 {
221316b8024SFrancesco Dolcini	status = "okay";
222316b8024SFrancesco Dolcini};
223316b8024SFrancesco Dolcini
224316b8024SFrancesco Dolcini/* Verdin USB_2 */
225316b8024SFrancesco Dolcini&usbss1 {
226316b8024SFrancesco Dolcini	status = "okay";
227316b8024SFrancesco Dolcini};
228316b8024SFrancesco Dolcini
229316b8024SFrancesco Dolcini&usb1 {
230316b8024SFrancesco Dolcini	status = "okay";
231316b8024SFrancesco Dolcini};
232316b8024SFrancesco Dolcini
233316b8024SFrancesco Dolcini/* Verdin CTRL_WAKE1_MICO# */
234316b8024SFrancesco Dolcini&verdin_gpio_keys {
235316b8024SFrancesco Dolcini	status = "okay";
236316b8024SFrancesco Dolcini};
237316b8024SFrancesco Dolcini
23869ef7d9cSFrancesco Dolcini/* Verdin PCIE_1_RESET# */
23969ef7d9cSFrancesco Dolcini&verdin_pcie_1_reset_hog {
24069ef7d9cSFrancesco Dolcini	status = "okay";
24169ef7d9cSFrancesco Dolcini};
24269ef7d9cSFrancesco Dolcini
243316b8024SFrancesco Dolcini/* Verdin UART_2 */
244316b8024SFrancesco Dolcini&wkup_uart0 {
24526e01246SParth Pancholi	status = "okay";
246316b8024SFrancesco Dolcini};
247