blob: 34c8ffc553ec3dcc45d8e484fe459364418ce2dc [file] [log] [blame]
Nishanth Menone17596d2023-07-27 04:03:31 -05001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Common dtsi for AM62x SK and derivatives
4 *
5 * Copyright (C) 2021-2023 Texas Instruments Incorporated - https://www.ti.com/
6 */
7
8#include <dt-bindings/leds/common.h>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/net/ti-dp83867.h>
11#include "k3-am625.dtsi"
12
13/ {
14 aliases {
15 serial2 = &main_uart0;
16 mmc0 = &sdhci0;
17 mmc1 = &sdhci1;
18 mmc2 = &sdhci2;
19 spi0 = &ospi0;
20 ethernet0 = &cpsw_port1;
21 ethernet1 = &cpsw_port2;
22 usb0 = &usb0;
23 usb1 = &usb1;
24 };
25
26 chosen {
27 stdout-path = "serial2:115200n8";
28 };
29
30 memory@80000000 {
31 device_type = "memory";
32 /* 2G RAM */
33 reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
34 };
35
36 reserved-memory {
37 #address-cells = <2>;
38 #size-cells = <2>;
39 ranges;
40
41 ramoops@9ca00000 {
42 compatible = "ramoops";
43 reg = <0x00 0x9ca00000 0x00 0x00100000>;
44 record-size = <0x8000>;
45 console-size = <0x8000>;
46 ftrace-size = <0x00>;
47 pmsg-size = <0x8000>;
48 };
49
50 secure_tfa_ddr: tfa@9e780000 {
51 reg = <0x00 0x9e780000 0x00 0x80000>;
52 alignment = <0x1000>;
53 no-map;
54 };
55
56 secure_ddr: optee@9e800000 {
57 reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
58 alignment = <0x1000>;
59 no-map;
60 };
61
62 wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9db00000 {
63 compatible = "shared-dma-pool";
64 reg = <0x00 0x9db00000 0x00 0xc00000>;
65 no-map;
66 };
67 };
68
69 leds {
70 compatible = "gpio-leds";
71 pinctrl-names = "default";
72 pinctrl-0 = <&usr_led_pins_default>;
73
74 led-0 {
75 label = "am62-sk:green:heartbeat";
76 gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
77 linux,default-trigger = "heartbeat";
78 function = LED_FUNCTION_HEARTBEAT;
79 default-state = "off";
80 };
81 };
82
83 tlv320_mclk: clk-0 {
84 #clock-cells = <0>;
85 compatible = "fixed-clock";
86 clock-frequency = <12288000>;
87 };
88
89 codec_audio: sound {
90 compatible = "simple-audio-card";
91 simple-audio-card,name = "AM62x-SKEVM";
92 simple-audio-card,widgets =
93 "Headphone", "Headphone Jack",
94 "Line", "Line In",
95 "Microphone", "Microphone Jack";
96 simple-audio-card,routing =
97 "Headphone Jack", "HPLOUT",
98 "Headphone Jack", "HPROUT",
99 "LINE1L", "Line In",
100 "LINE1R", "Line In",
101 "MIC3R", "Microphone Jack",
102 "Microphone Jack", "Mic Bias";
103 simple-audio-card,format = "dsp_b";
104 simple-audio-card,bitclock-master = <&sound_master>;
105 simple-audio-card,frame-master = <&sound_master>;
106 simple-audio-card,bitclock-inversion;
107
108 simple-audio-card,cpu {
109 sound-dai = <&mcasp1>;
110 };
111
112 sound_master: simple-audio-card,codec {
113 sound-dai = <&tlv320aic3106>;
114 clocks = <&tlv320_mclk>;
115 };
116 };
117};
118
119&main_pmx0 {
120 /* First pad number is ALW package and second is AMC package */
121 main_uart0_pins_default: main-uart0-default-pins {
122 pinctrl-single,pins = <
123 AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14/A13) UART0_RXD */
124 AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */
125 >;
126 };
127
128 main_uart1_pins_default: main-uart1-default-pins {
129 pinctrl-single,pins = <
130 AM62X_IOPAD(0x194, PIN_INPUT, 2) /* (B19/B18) MCASP0_AXR3.UART1_CTSn */
131 AM62X_IOPAD(0x198, PIN_OUTPUT, 2) /* (A19/B17) MCASP0_AXR2.UART1_RTSn */
132 AM62X_IOPAD(0x1ac, PIN_INPUT, 2) /* (E19/D15) MCASP0_AFSR.UART1_RXD */
133 AM62X_IOPAD(0x1b0, PIN_OUTPUT, 2) /* (A20/D16) MCASP0_ACLKR.UART1_TXD */
134 >;
135 };
136
137 main_i2c0_pins_default: main-i2c0-default-pins {
138 pinctrl-single,pins = <
139 AM62X_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (B16/E12) I2C0_SCL */
140 AM62X_IOPAD(0x1e4, PIN_INPUT_PULLUP, 0) /* (A16/D14) I2C0_SDA */
141 >;
142 };
143
144 main_i2c1_pins_default: main-i2c1-default-pins {
145 pinctrl-single,pins = <
146 AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17/A17) I2C1_SCL */
147 AM62X_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17/A16) I2C1_SDA */
148 >;
149 };
150
151 main_i2c2_pins_default: main-i2c2-default-pins {
152 pinctrl-single,pins = <
153 AM62X_IOPAD(0x0b0, PIN_INPUT_PULLUP, 1) /* (K22/H18) GPMC0_CSn2.I2C2_SCL */
154 AM62X_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24/H19) GPMC0_CSn3.I2C2_SDA */
155 >;
156 };
157
158 main_mmc0_pins_default: main-mmc0-default-pins {
159 pinctrl-single,pins = <
160 AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3/V3) MMC0_CMD */
161 AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1/Y1) MMC0_CLK */
162 AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2/V2) MMC0_DAT0 */
163 AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1/V1) MMC0_DAT1 */
164 AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3/W2) MMC0_DAT2 */
165 AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4/W1) MMC0_DAT3 */
166 AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2/Y2) MMC0_DAT4 */
167 AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1/W3) MMC0_DAT5 */
168 AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2/W4) MMC0_DAT6 */
169 AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2/V4) MMC0_DAT7 */
170 >;
171 };
172
173 main_mmc1_pins_default: main-mmc1-default-pins {
174 pinctrl-single,pins = <
175 AM62X_IOPAD(0x23c, PIN_INPUT, 0) /* (A21/C18) MMC1_CMD */
176 AM62X_IOPAD(0x234, PIN_INPUT, 0) /* (B22/A20) MMC1_CLK */
177 AM62X_IOPAD(0x230, PIN_INPUT, 0) /* (A22/A19) MMC1_DAT0 */
178 AM62X_IOPAD(0x22c, PIN_INPUT, 0) /* (B21/B19) MMC1_DAT1 */
179 AM62X_IOPAD(0x228, PIN_INPUT, 0) /* (C21/B20) MMC1_DAT2 */
180 AM62X_IOPAD(0x224, PIN_INPUT, 0) /* (D22/C19) MMC1_DAT3 */
181 AM62X_IOPAD(0x240, PIN_INPUT, 0) /* (D17/C15) MMC1_SDCD */
182 >;
183 };
184
185 usr_led_pins_default: usr-led-default-pins {
186 pinctrl-single,pins = <
187 AM62X_IOPAD(0x244, PIN_OUTPUT, 7) /* (C17/B15) MMC1_SDWP.GPIO1_49 */
188 >;
189 };
190
191 main_mdio1_pins_default: main-mdio1-default-pins {
192 pinctrl-single,pins = <
193 AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24/V17) MDIO0_MDC */
194 AM62X_IOPAD(0x15c, PIN_INPUT, 0) /* (AB22/U16) MDIO0_MDIO */
195 >;
196 };
197
198 main_rgmii1_pins_default: main-rgmii1-default-pins {
199 pinctrl-single,pins = <
200 AM62X_IOPAD(0x14c, PIN_INPUT, 0) /* (AB17/W15) RGMII1_RD0 */
201 AM62X_IOPAD(0x150, PIN_INPUT, 0) /* (AC17/Y16) RGMII1_RD1 */
202 AM62X_IOPAD(0x154, PIN_INPUT, 0) /* (AB16/AA17) RGMII1_RD2 */
203 AM62X_IOPAD(0x158, PIN_INPUT, 0) /* (AA15/Y15) RGMII1_RD3 */
204 AM62X_IOPAD(0x148, PIN_INPUT, 0) /* (AD17/AA16) RGMII1_RXC */
205 AM62X_IOPAD(0x144, PIN_INPUT, 0) /* (AE17/W14) RGMII1_RX_CTL */
206 AM62X_IOPAD(0x134, PIN_OUTPUT, 0) /* (AE20/U14) RGMII1_TD0 */
207 AM62X_IOPAD(0x138, PIN_OUTPUT, 0) /* (AD20/AA19) RGMII1_TD1 */
208 AM62X_IOPAD(0x13c, PIN_OUTPUT, 0) /* (AE18/Y17) RGMII1_TD2 */
209 AM62X_IOPAD(0x140, PIN_OUTPUT, 0) /* (AD18/AA18) RGMII1_TD3 */
210 AM62X_IOPAD(0x130, PIN_OUTPUT, 0) /* (AE19/W16) RGMII1_TXC */
211 AM62X_IOPAD(0x12c, PIN_OUTPUT, 0) /* (AD19/V15) RGMII1_TX_CTL */
212 >;
213 };
214
215 main_usb1_pins_default: main-usb1-default-pins {
216 pinctrl-single,pins = <
217 AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18/E16) USB1_DRVVBUS */
218 >;
219 };
220
221 main_mcasp1_pins_default: main-mcasp1-default-pins {
222 pinctrl-single,pins = <
223 AM62X_IOPAD(0x090, PIN_INPUT, 2) /* (M24/K17) GPMC0_BE0N_CLE.MCASP1_ACLKX */
224 AM62X_IOPAD(0x098, PIN_INPUT, 2) /* (U23/P21) GPMC0_WAIT0.MCASP1_AFSX */
225 AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25/J17) GPMC0_WEN.MCASP1_AXR0 */
226 AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23/K20) GPMC0_ADVN_ALE.MCASP1_AXR2 */
227 >;
228 };
229};
230
231&mcu_pmx0 {
232 wkup_uart0_pins_default: wkup-uart0-default-pins {
233 pinctrl-single,pins = <
234 AM62X_MCU_IOPAD(0x02c, PIN_INPUT, 0) /* (C6/A7) WKUP_UART0_CTSn */
235 AM62X_MCU_IOPAD(0x030, PIN_OUTPUT, 0) /* (A4/B4) WKUP_UART0_RTSn */
236 AM62X_MCU_IOPAD(0x024, PIN_INPUT, 0) /* (B4/B5) WKUP_UART0_RXD */
237 AM62X_MCU_IOPAD(0x028, PIN_OUTPUT, 0) /* (C5/C6) WKUP_UART0_TXD */
238 >;
239 };
240};
241
242&wkup_uart0 {
243 /* WKUP UART0 is used by DM firmware */
244 status = "reserved";
245 pinctrl-names = "default";
246 pinctrl-0 = <&wkup_uart0_pins_default>;
247};
248
249&main_uart0 {
250 status = "okay";
251 pinctrl-names = "default";
252 pinctrl-0 = <&main_uart0_pins_default>;
253};
254
255&main_uart1 {
256 /* Main UART1 is used by TIFS firmware */
257 status = "reserved";
258 pinctrl-names = "default";
259 pinctrl-0 = <&main_uart1_pins_default>;
260};
261
262&main_i2c0 {
263 status = "okay";
264 pinctrl-names = "default";
265 pinctrl-0 = <&main_i2c0_pins_default>;
266 clock-frequency = <400000>;
267
268 eeprom@51 {
269 /* AT24C512C-MAHM-T or M24512-DFMC6TG */
270 compatible = "atmel,24c512";
271 reg = <0x51>;
272 };
273
274 typec_pd0: tps6598x@3f {
275 compatible = "ti,tps6598x";
276 reg = <0x3f>;
277
278 connector {
279 compatible = "usb-c-connector";
280 label = "USB-C";
281 self-powered;
282 data-role = "dual";
283 power-role = "sink";
284 ports {
285 #address-cells = <1>;
286 #size-cells = <0>;
287
288 port@0 {
289 reg = <0>;
290 usb_con_hs: endpoint {
291 remote-endpoint = <&usb0_hs_ep>;
292 };
293 };
294 };
295 };
296 };
297};
298
299&main_i2c1 {
300 status = "okay";
301 pinctrl-names = "default";
302 pinctrl-0 = <&main_i2c1_pins_default>;
303 clock-frequency = <400000>;
304
305 tlv320aic3106: audio-codec@1b {
306 #sound-dai-cells = <0>;
307 compatible = "ti,tlv320aic3106";
308 reg = <0x1b>;
309 ai3x-micbias-vg = <1>; /* 2.0V */
310
311 /* Regulators */
312 AVDD-supply = <&vcc_3v3_sys>;
313 IOVDD-supply = <&vcc_3v3_sys>;
314 DRVDD-supply = <&vcc_3v3_sys>;
315 };
316};
317
318&sdhci0 {
319 status = "okay";
320 pinctrl-names = "default";
321 pinctrl-0 = <&main_mmc0_pins_default>;
322 ti,driver-strength-ohm = <50>;
323 disable-wp;
324};
325
326&sdhci1 {
327 /* SD/MMC */
328 status = "okay";
329 pinctrl-names = "default";
330 pinctrl-0 = <&main_mmc1_pins_default>;
331 ti,driver-strength-ohm = <50>;
332 disable-wp;
333};
334
335&cpsw3g {
336 pinctrl-names = "default";
337 pinctrl-0 = <&main_rgmii1_pins_default>;
338};
339
340&cpsw_port1 {
341 phy-mode = "rgmii-rxid";
342 phy-handle = <&cpsw3g_phy0>;
343};
344
345&cpsw3g_mdio {
346 status = "okay";
347 pinctrl-names = "default";
348 pinctrl-0 = <&main_mdio1_pins_default>;
349
350 cpsw3g_phy0: ethernet-phy@0 {
351 reg = <0>;
352 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
353 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
354 ti,min-output-impedance;
355 };
356};
357
358&mailbox0_cluster0 {
359 mbox_m4_0: mbox-m4-0 {
360 ti,mbox-rx = <0 0 0>;
361 ti,mbox-tx = <1 0 0>;
362 };
363};
364
365&usbss0 {
366 status = "okay";
367 ti,vbus-divider;
368};
369
370&usbss1 {
371 status = "okay";
372 ti,vbus-divider;
373};
374
375&usb0 {
376 #address-cells = <1>;
377 #size-cells = <0>;
378 usb-role-switch;
379
380 port@0 {
381 reg = <0>;
382 usb0_hs_ep: endpoint {
383 remote-endpoint = <&usb_con_hs>;
384 };
385 };
386};
387
388&usb1 {
389 dr_mode = "host";
390 pinctrl-names = "default";
391 pinctrl-0 = <&main_usb1_pins_default>;
392};
393
394&mcasp1 {
395 status = "okay";
396 #sound-dai-cells = <0>;
397
398 pinctrl-names = "default";
399 pinctrl-0 = <&main_mcasp1_pins_default>;
400
401 op-mode = <0>; /* MCASP_IIS_MODE */
402 tdm-slots = <2>;
403
404 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
405 1 0 2 0
406 0 0 0 0
407 0 0 0 0
408 0 0 0 0
409 >;
410 tx-num-evt = <32>;
411 rx-num-evt = <32>;
412};