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
11*c9065820SFrancesco Dolcini/ {
12*c9065820SFrancesco Dolcini	sound {
13*c9065820SFrancesco Dolcini		compatible = "simple-audio-card";
14*c9065820SFrancesco Dolcini		simple-audio-card,bitclock-master = <&codec_dai>;
15*c9065820SFrancesco Dolcini		simple-audio-card,format = "i2s";
16*c9065820SFrancesco Dolcini		simple-audio-card,frame-master = <&codec_dai>;
17*c9065820SFrancesco Dolcini		simple-audio-card,name = "verdin-nau8822";
18*c9065820SFrancesco Dolcini		simple-audio-card,routing =
19*c9065820SFrancesco Dolcini			"Headphones", "LHP",
20*c9065820SFrancesco Dolcini			"Headphones", "RHP",
21*c9065820SFrancesco Dolcini			"Speaker", "LSPK",
22*c9065820SFrancesco Dolcini			"Speaker", "RSPK",
23*c9065820SFrancesco Dolcini			"Line Out", "AUXOUT1",
24*c9065820SFrancesco Dolcini			"Line Out", "AUXOUT2",
25*c9065820SFrancesco Dolcini			"LAUX", "Line In",
26*c9065820SFrancesco Dolcini			"RAUX", "Line In",
27*c9065820SFrancesco Dolcini			"LMICP", "Mic In",
28*c9065820SFrancesco Dolcini			"RMICP", "Mic In";
29*c9065820SFrancesco Dolcini		simple-audio-card,widgets =
30*c9065820SFrancesco Dolcini			"Headphones", "Headphones",
31*c9065820SFrancesco Dolcini			"Line Out", "Line Out",
32*c9065820SFrancesco Dolcini			"Speaker", "Speaker",
33*c9065820SFrancesco Dolcini			"Microphone", "Mic In",
34*c9065820SFrancesco Dolcini			"Line", "Line In";
35*c9065820SFrancesco Dolcini
36*c9065820SFrancesco Dolcini		codec_dai: simple-audio-card,codec {
37*c9065820SFrancesco Dolcini			clocks = <&audio_refclk1>;
38*c9065820SFrancesco Dolcini			sound-dai = <&nau8822_1a>;
39*c9065820SFrancesco Dolcini		};
40*c9065820SFrancesco Dolcini
41*c9065820SFrancesco Dolcini		simple-audio-card,cpu {
42*c9065820SFrancesco Dolcini			sound-dai = <&mcasp0>;
43*c9065820SFrancesco Dolcini		};
44*c9065820SFrancesco Dolcini	};
45*c9065820SFrancesco Dolcini};
46*c9065820SFrancesco 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
104*c9065820SFrancesco Dolcini	/* Audio Codec */
105*c9065820SFrancesco Dolcini	nau8822_1a: audio-codec@1a {
106*c9065820SFrancesco Dolcini		compatible = "nuvoton,nau8822";
107*c9065820SFrancesco Dolcini		reg = <0x1a>;
108*c9065820SFrancesco Dolcini		pinctrl-names = "default";
109*c9065820SFrancesco Dolcini		pinctrl-0 = <&pinctrl_i2s1_mclk>;
110*c9065820SFrancesco Dolcini		#sound-dai-cells = <0>;
111*c9065820SFrancesco Dolcini	};
112*c9065820SFrancesco Dolcini
113316b8024SFrancesco Dolcini	/* IO Expander */
114316b8024SFrancesco Dolcini	gpio_expander_21: gpio@21 {
115316b8024SFrancesco Dolcini		compatible = "nxp,pcal6416";
116316b8024SFrancesco Dolcini		reg = <0x21>;
117316b8024SFrancesco Dolcini		#gpio-cells = <2>;
118316b8024SFrancesco Dolcini		gpio-controller;
119316b8024SFrancesco Dolcini	};
120316b8024SFrancesco Dolcini
121316b8024SFrancesco Dolcini	/* Current measurement into module VCC */
122316b8024SFrancesco Dolcini	hwmon@40 {
123316b8024SFrancesco Dolcini		compatible = "ti,ina219";
124316b8024SFrancesco Dolcini		reg = <0x40>;
125316b8024SFrancesco Dolcini		shunt-resistor = <10000>;
126316b8024SFrancesco Dolcini	};
127316b8024SFrancesco Dolcini
128316b8024SFrancesco Dolcini	/* Temperature sensor */
129316b8024SFrancesco Dolcini	sensor@4f {
130316b8024SFrancesco Dolcini		compatible = "ti,tmp75c";
131316b8024SFrancesco Dolcini		reg = <0x4f>;
132316b8024SFrancesco Dolcini	};
133316b8024SFrancesco Dolcini
134316b8024SFrancesco Dolcini	/* EEPROM */
135316b8024SFrancesco Dolcini	eeprom@57 {
136316b8024SFrancesco Dolcini		compatible = "st,24c02", "atmel,24c02";
137316b8024SFrancesco Dolcini		reg = <0x57>;
138316b8024SFrancesco Dolcini		pagesize = <16>;
139316b8024SFrancesco Dolcini	};
140316b8024SFrancesco Dolcini};
141316b8024SFrancesco Dolcini
142316b8024SFrancesco Dolcini/* Verdin I2C_2_DSI */
143316b8024SFrancesco Dolcini&main_i2c2 {
144316b8024SFrancesco Dolcini	status = "okay";
145316b8024SFrancesco Dolcini};
146316b8024SFrancesco Dolcini
147316b8024SFrancesco Dolcini/* Verdin I2C_4_CSI */
148316b8024SFrancesco Dolcini&main_i2c3 {
149316b8024SFrancesco Dolcini	status = "okay";
150316b8024SFrancesco Dolcini};
151316b8024SFrancesco Dolcini
152316b8024SFrancesco Dolcini/* Verdin CAN_1 */
153316b8024SFrancesco Dolcini&main_mcan0 {
154316b8024SFrancesco Dolcini	status = "okay";
155316b8024SFrancesco Dolcini};
156316b8024SFrancesco Dolcini
157316b8024SFrancesco Dolcini/* Verdin SPI_1 */
158316b8024SFrancesco Dolcini&main_spi1 {
159316b8024SFrancesco Dolcini	status = "okay";
160316b8024SFrancesco Dolcini};
161316b8024SFrancesco Dolcini
162316b8024SFrancesco Dolcini/* Verdin UART_3 */
163316b8024SFrancesco Dolcini&main_uart0 {
164316b8024SFrancesco Dolcini	status = "okay";
165316b8024SFrancesco Dolcini};
166316b8024SFrancesco Dolcini
167316b8024SFrancesco Dolcini/* Verdin UART_1, connector X50 through RS485 transceiver. */
168316b8024SFrancesco Dolcini&main_uart1 {
169316b8024SFrancesco Dolcini	linux,rs485-enabled-at-boot-time;
170316b8024SFrancesco Dolcini	rs485-rx-during-tx;
171316b8024SFrancesco Dolcini	status = "okay";
172316b8024SFrancesco Dolcini};
173316b8024SFrancesco Dolcini
174316b8024SFrancesco Dolcini/* Verdin I2S_1 */
175316b8024SFrancesco Dolcini&mcasp0 {
176316b8024SFrancesco Dolcini	status = "okay";
177316b8024SFrancesco Dolcini};
178316b8024SFrancesco Dolcini
179316b8024SFrancesco Dolcini&mcu_gpio0 {
180316b8024SFrancesco Dolcini	pinctrl-names = "default";
181316b8024SFrancesco Dolcini	pinctrl-0 = <&pinctrl_gpio_1>,
182316b8024SFrancesco Dolcini		    <&pinctrl_gpio_2>,
183316b8024SFrancesco Dolcini		    <&pinctrl_gpio_3>,
184316b8024SFrancesco Dolcini		    <&pinctrl_gpio_4>;
185316b8024SFrancesco Dolcini};
186316b8024SFrancesco Dolcini
187316b8024SFrancesco Dolcini/* Verdin I2C_3_HDMI */
188316b8024SFrancesco Dolcini&mcu_i2c0 {
189316b8024SFrancesco Dolcini	status = "okay";
190316b8024SFrancesco Dolcini};
191316b8024SFrancesco Dolcini
1927480cea3SHiago De Franco/* Verdin CAN_2 */
1937480cea3SHiago De Franco&mcu_mcan0 {
1947480cea3SHiago De Franco	status = "okay";
1957480cea3SHiago De Franco};
1967480cea3SHiago De Franco
197316b8024SFrancesco Dolcini/* Verdin UART_4 */
198316b8024SFrancesco Dolcini&mcu_uart0 {
199316b8024SFrancesco Dolcini	status = "okay";
200316b8024SFrancesco Dolcini};
201316b8024SFrancesco Dolcini
202316b8024SFrancesco Dolcini/* Verdin QSPI_1 */
203316b8024SFrancesco Dolcini&ospi0 {
204316b8024SFrancesco Dolcini	status = "okay";
205316b8024SFrancesco Dolcini};
206316b8024SFrancesco Dolcini
207316b8024SFrancesco Dolcini/* Verdin SD_1 */
208316b8024SFrancesco Dolcini&sdhci1 {
209316b8024SFrancesco Dolcini	ti,driver-strength-ohm = <33>;
210316b8024SFrancesco Dolcini	status = "okay";
211316b8024SFrancesco Dolcini};
212316b8024SFrancesco Dolcini
213316b8024SFrancesco Dolcini/* Verdin USB_1 */
214316b8024SFrancesco Dolcini&usbss0 {
215316b8024SFrancesco Dolcini	status = "okay";
216316b8024SFrancesco Dolcini};
217316b8024SFrancesco Dolcini
218316b8024SFrancesco Dolcini&usb0 {
219316b8024SFrancesco Dolcini	status = "okay";
220316b8024SFrancesco Dolcini};
221316b8024SFrancesco Dolcini
222316b8024SFrancesco Dolcini/* Verdin USB_2 */
223316b8024SFrancesco Dolcini&usbss1 {
224316b8024SFrancesco Dolcini	status = "okay";
225316b8024SFrancesco Dolcini};
226316b8024SFrancesco Dolcini
227316b8024SFrancesco Dolcini&usb1 {
228316b8024SFrancesco Dolcini	status = "okay";
229316b8024SFrancesco Dolcini};
230316b8024SFrancesco Dolcini
231316b8024SFrancesco Dolcini/* Verdin CTRL_WAKE1_MICO# */
232316b8024SFrancesco Dolcini&verdin_gpio_keys {
233316b8024SFrancesco Dolcini	status = "okay";
234316b8024SFrancesco Dolcini};
235316b8024SFrancesco Dolcini
236316b8024SFrancesco Dolcini/* Verdin UART_2 */
237316b8024SFrancesco Dolcini&wkup_uart0 {
238316b8024SFrancesco Dolcini	/* FIXME: WKUP UART0 is used by DM firmware */
239316b8024SFrancesco Dolcini	status = "reserved";
240316b8024SFrancesco Dolcini};
241