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