blob: 5bef31b8577be52133a4e151727ba8579d0e51ae [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
6 *
7 * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
8 */
9
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/net/ti-dp83867.h>
15
16/ {
17 chosen {
18 stdout-path = "serial2:115200n8";
19 };
20
21 aliases {
22 can0 = &main_mcan0;
23 can1 = &mcu_mcan0;
24 ethernet0 = &cpsw_port1;
25 ethernet1 = &cpsw_port2;
26 i2c0 = &main_i2c0;
27 i2c1 = &main_i2c1;
28 i2c2 = &main_i2c2;
29 i2c3 = &mcu_i2c0;
30 i2c4 = &main_i2c3;
31 mmc0 = &sdhci0;
32 mmc1 = &sdhci1;
33 mmc2 = &sdhci2;
34 rtc0 = &rtc_i2c;
35 rtc1 = &wkup_rtc0;
36 serial0 = &main_uart1;
37 serial1 = &wkup_uart0;
38 serial2 = &main_uart0;
39 serial3 = &mcu_uart0;
40 serial4 = &main_uart5;
41 usb0 = &usb0;
42 usb1 = &usb1;
43 };
44
Tom Rini6bb92fc2024-05-20 09:54:58 -060045 connector {
46 compatible = "gpio-usb-b-connector", "usb-b-connector";
47 pinctrl-names = "default";
48 pinctrl-0 = <&pinctrl_usb0_id>;
49 id-gpios = <&main_gpio1 19 GPIO_ACTIVE_HIGH>;
50 label = "USB_1";
51 self-powered;
52 vbus-supply = <&reg_usb0_vbus>;
53
54 port {
55 usb_dr_connector: endpoint {
56 remote-endpoint = <&usb0_ep>;
57 };
58 };
59 };
60
Tom Rini53633a82024-02-29 12:33:36 -050061 verdin_gpio_keys: gpio-keys {
62 compatible = "gpio-keys";
63 pinctrl-names = "default";
64 pinctrl-0 = <&pinctrl_ctrl_wake1_mico>;
65 status = "disabled";
66
67 verdin_key_wakeup: key-wakeup {
68 debounce-interval = <10>;
69 /* Verdin CTRL_WAKE1_MICO# (SODIMM 252) */
70 gpios = <&main_gpio0 32 GPIO_ACTIVE_LOW>;
71 label = "Wake-Up";
72 linux,code = <KEY_WAKEUP>;
73 wakeup-source;
74 };
75 };
76
77 memory@80000000 {
78 device_type = "memory";
Tom Rini762f85b2024-07-20 11:15:10 -060079 reg = <0x00000000 0x80000000 0x00000000 0x80000000>; /* 2G RAM */
Tom Rini53633a82024-02-29 12:33:36 -050080 };
81
82 opp-table {
83 /* Add 1.4GHz OPP. Requires VDD_CORE to be at 0.85V */
84 opp-1400000000 {
85 opp-hz = /bits/ 64 <1400000000>;
86 opp-supported-hw = <0x01 0x0004>;
87 clock-latency-ns = <6000000>;
88 };
89 };
90
91 /* Module Power Supply */
92 reg_vsodimm: regulator-vsodimm {
93 compatible = "regulator-fixed";
94 regulator-name = "+V_SODIMM";
95 };
96
97 /* Non PMIC On-module Supplies */
98 reg_3v3: regulator-3v3 {
99 compatible = "regulator-fixed";
100 regulator-max-microvolt = <3300000>;
101 regulator-min-microvolt = <3300000>;
102 regulator-name = "On-module +V3.3";
103 vin-supply = <&reg_vsodimm>;
104 };
105
106 reg_1v2_dsi: regulator-1v2-dsi {
107 compatible = "regulator-fixed";
108 regulator-max-microvolt = <1200000>;
109 regulator-min-microvolt = <1200000>;
110 regulator-name = "On-module +V1.2_DSI";
111 vin-supply = <&reg_1v8>;
112 };
113
114 /* Enabled by +V1.2_DSI */
115 reg_1v8_dsi: regulator-1v8-dsi {
116 compatible = "regulator-fixed";
117 regulator-max-microvolt = <1800000>;
118 regulator-min-microvolt = <1800000>;
119 regulator-name = "On-module +V1.8_DSI";
120 vin-supply = <&reg_1v8>;
121 };
122
123 /* Enabled by +V2.5_ETH */
124 reg_1v0_eth: regulator-1v0-eth {
125 compatible = "regulator-fixed";
126 regulator-max-microvolt = <1000000>;
127 regulator-min-microvolt = <1000000>;
128 regulator-name = "On-module +V1.0_ETH";
129 vin-supply = <&reg_1v8>;
130 };
131
132 /* Enabled by +V2.5_ETH */
133 reg_1v8_eth: regulator-1v8-eth {
134 compatible = "regulator-fixed";
135 regulator-max-microvolt = <1800000>;
136 regulator-min-microvolt = <1800000>;
137 regulator-name = "On-module +V1.8_ETH";
138 vin-supply = <&reg_1v8>;
139 };
140
Tom Rini762f85b2024-07-20 11:15:10 -0600141 reg_force_sleep_moci: regulator-force-sleep-moci {
142 compatible = "regulator-fixed";
143 enable-active-high;
144 /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
145 gpio = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
146 regulator-always-on;
147 regulator-boot-on;
148 regulator-name = "CTRL_SLEEP_MOCI#";
149 };
150
Tom Rini53633a82024-02-29 12:33:36 -0500151 /* Verdin SD_1 Power Supply */
152 reg_sdhc1_vmmc: regulator-sdhci1 {
153 compatible = "regulator-fixed";
154 pinctrl-names = "default";
155 pinctrl-0 = <&pinctrl_sd1_pwr_en>;
156 enable-active-high;
157 /* Verdin SD_1_PWR_EN (SODIMM 76) */
158 gpio = <&main_gpio0 29 GPIO_ACTIVE_HIGH>;
159 off-on-delay-us = <100000>;
160 regulator-max-microvolt = <3300000>;
161 regulator-min-microvolt = <3300000>;
162 regulator-name = "+V3.3_SD";
163 startup-delay-us = <2000>;
164 };
165
166 reg_sdhc1_vqmmc: regulator-sdhci1-vqmmc {
167 compatible = "regulator-gpio";
168 pinctrl-names = "default";
169 pinctrl-0 = <&pinctrl_vsel_sd>;
170 /* PMIC_VSEL_SD */
171 gpios = <&main_gpio0 21 GPIO_ACTIVE_HIGH>;
172 regulator-name = "LDO1-VSEL-SD (PMIC)";
173 regulator-min-microvolt = <1800000>;
174 regulator-max-microvolt = <3300000>;
175 states = <1800000 0x0>,
176 <3300000 0x1>;
177 vin-supply = <&reg_sd_3v3_1v8>;
178 };
179
Tom Rini6bb92fc2024-05-20 09:54:58 -0600180 reg_usb0_vbus: regulator-usb0-vbus {
181 compatible = "regulator-fixed";
182 pinctrl-names = "default";
183 pinctrl-0 = <&pinctrl_usb0_en>;
184 enable-active-high;
185 /* Verdin USB_1_EN (SODIMM 155) */
186 gpio = <&main_gpio1 50 GPIO_ACTIVE_HIGH>;
187 regulator-max-microvolt = <5000000>;
188 regulator-min-microvolt = <5000000>;
189 regulator-name = "USB_1_EN";
190 };
191
Tom Rini53633a82024-02-29 12:33:36 -0500192 reserved-memory {
193 #address-cells = <2>;
194 #size-cells = <2>;
195 ranges;
196
197 secure_tfa_ddr: tfa@9e780000 {
198 reg = <0x00 0x9e780000 0x00 0x80000>;
199 alignment = <0x1000>;
200 no-map;
201 };
202
203 secure_ddr: optee@9e800000 {
204 reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
205 alignment = <0x1000>;
206 no-map;
207 };
208
209 wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9db00000 {
210 compatible = "shared-dma-pool";
211 reg = <0x00 0x9db00000 0x00 0xc00000>;
212 no-map;
213 };
214 };
215};
216
217&main_pmx0 {
218 /* Verdin PWM_1 */
219 pinctrl_epwm0_a: main-epwm0a-default-pins {
220 pinctrl-single,pins = <
221 AM62X_IOPAD(0x01b4, PIN_OUTPUT, 2) /* (A13) SPI0_CS0.EHRPWM0_A */ /* SODIMM 15 */
222 >;
223 };
224
225 /* Verdin PWM_2 */
226 pinctrl_epwm0_b: main-epwm0b-default-pins {
227 pinctrl-single,pins = <
228 AM62X_IOPAD(0x01b8, PIN_OUTPUT, 2) /* (C13) SPI0_CS1.EHRPWM0_B */ /* SODIMM 16 */
229 >;
230 };
231
232 /* Verdin PWM_3_DSI */
233 pinctrl_epwm1_a: main-epwm1a-default-pins {
234 pinctrl-single,pins = <
235 AM62X_IOPAD(0x01bc, PIN_OUTPUT, 2) /* (A14) SPI0_CLK.EHRPWM1_A */ /* SODIMM 19 */
236 >;
237 };
238
239 /* Verdin QSPI_1_CLK as GPIO (conflict with Verdin QSPI_1 interface) */
240 pinctrl_qspi1_clk_gpio: main-gpio0-0-default-pins {
241 pinctrl-single,pins = <
242 AM62X_IOPAD(0x0000, PIN_INPUT, 7) /* (H24) OSPI0_CLK.GPIO0_0 */ /* SODIMM 52 */
243 >;
244 };
245
246 /* Verdin QSPI_1_IO0 as GPIO (conflict with Verdin QSPI_1 interface) */
247 pinctrl_qspi1_io0_gpio: main-gpio0-3-default-pins {
248 pinctrl-single,pins = <
249 AM62X_IOPAD(0x000c, PIN_INPUT, 7) /* (E25) OSPI0_D0.GPIO0_3 */ /* SODIMM 56 */
250 >;
251 };
252
253 /* Verdin QSPI_1_IO1 as GPIO (conflict with Verdin QSPI_1 interface) */
254 pinctrl_qspi1_io1_gpio: main-gpio0-4-default-pins {
255 pinctrl-single,pins = <
256 AM62X_IOPAD(0x0010, PIN_INPUT, 7) /* (G24) OSPI0_D1.GPIO0_4 */ /* SODIMM 58 */
257 >;
258 };
259
260 /* Verdin QSPI_1_IO2 as GPIO (conflict with Verdin QSPI_1 interface) */
261 pinctrl_qspi1_io2_gpio: main-gpio0-5-default-pins {
262 pinctrl-single,pins = <
263 AM62X_IOPAD(0x0014, PIN_INPUT, 7) /* (F25) OSPI0_D2.GPIO0_5 */ /* SODIMM 60 */
264 >;
265 };
266
267 /* Verdin QSPI_1_IO3 as GPIO (conflict with Verdin QSPI_1 interface) */
268 pinctrl_qspi1_io3_gpio: main-gpio0-6-default-pins {
269 pinctrl-single,pins = <
270 AM62X_IOPAD(0x0018, PIN_INPUT, 7) /* (F24) OSPI0_D3.GPIO0_6 */ /* SODIMM 62 */
271 >;
272 };
273
Tom Rini93743d22024-04-01 09:08:13 -0400274 /* Verdin SPI_1 CS as GPIO */
275 pinctrl_qspi1_io4_gpio: main-gpio0-7-default-pins {
276 pinctrl-single,pins = <
277 AM62X_IOPAD(0x001c, PIN_INPUT, 7) /* (J23) OSPI0_D4.GPIO0_7 */ /* SODIMM 202 */
278 >;
279 };
280
Tom Rini53633a82024-02-29 12:33:36 -0500281 /* Verdin QSPI_1_CS# as GPIO (conflict with Verdin QSPI_1 interface) */
282 pinctrl_qspi1_cs_gpio: main-gpio0-11-default-pins {
283 pinctrl-single,pins = <
284 AM62X_IOPAD(0x002c, PIN_INPUT, 7) /* (F23) OSPI0_CSn0.GPIO0_11 */ /* SODIMM 54 */
285 >;
286 };
287
288 /* Verdin QSPI_1_CS2# as GPIO (conflict with Verdin QSPI_1 interface) */
289 pinctrl_qspi1_cs2_gpio: main-gpio0-12-default-pins {
290 pinctrl-single,pins = <
291 AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */ /* SODIMM 64 */
292 >;
293 };
294
295 /* WiFi_W_WKUP_HOST# */
296 pinctrl_wifi_w_wkup_host: main-gpio0-15-default-pins {
297 pinctrl-single,pins = <
298 AM62X_IOPAD(0x003c, PIN_INPUT, 7) /* (M25) GPMC0_AD0.GPIO0_15 */ /* SODIMM 174 */
299 >;
300 };
301
302 /* WiFi_BT_WKUP_HOST# */
303 pinctrl_bt_wkup_host: main-gpio0-16-default-pins {
304 pinctrl-single,pins = <
305 AM62X_IOPAD(0x0040, PIN_INPUT, 7) /* (N23) GPMC0_AD1.GPIO0_16 */ /* SODIMM 172 */
306 >;
307 };
308
309 /* PMIC_ETH_RESET# */
310 pinctrl_eth_reset: main-gpio0-17-default-pins {
311 pinctrl-single,pins = <
312 AM62X_IOPAD(0x0044, PIN_INPUT, 7) /* (N24) GPMC0_AD2.GPIO0_17 */
313 >;
314 };
315
316 /* PMIC_BRIDGE_RESET# */
317 pinctrl_bridge_reset: main-gpio0-20-default-pins {
318 pinctrl-single,pins = <
319 AM62X_IOPAD(0x0050, PIN_INPUT, 7) /* (P22) GPMC0_AD5.GPIO0_20 */
320 >;
321 };
322
323 /* PMIC_VSEL_SD */
324 pinctrl_vsel_sd: main-gpio0-21-default-pins {
325 pinctrl-single,pins = <
326 AM62X_IOPAD(0x0054, PIN_INPUT, 7) /* (P21) GPMC0_AD6.GPIO0_21 */
327 >;
328 };
329
330 /* PMIC_EN_WIFI */
331 pinctrl_wifi_en: main-gpio0-22-default-pins {
332 pinctrl-single,pins = <
333 AM62X_IOPAD(0x0058, PIN_INPUT, 7) /* (R23) GPMC0_AD7.GPIO0_22 */
334 >;
335 };
336
337 /* PMIC_ETH_INT# */
338 pinctrl_eth_int: main-gpio0-25-default-pins {
339 pinctrl-single,pins = <
340 AM62X_IOPAD(0x0064, PIN_INPUT_PULLUP, 7) /* (T25) GPMC0_AD10.GPIO0_25 */
341 >;
342 };
343
344 /* WiFi_WKUP_BT# */
345 pinctrl_wifi_wkup_bt: main-gpio0-26-default-pins {
346 pinctrl-single,pins = <
347 AM62X_IOPAD(0x0068, PIN_INPUT, 7) /* (R21) GPMC0_AD11.GPIO0_26 */
348 >;
349 };
350
351 /* WiFi_WKUP_WLAN# */
352 pinctrl_wifi_wkup_wlan: main-gpio0-27-default-pins {
353 pinctrl-single,pins = <
354 AM62X_IOPAD(0x006c, PIN_INPUT, 7) /* (T22) GPMC0_AD12.GPIO0_27 */
355 >;
356 };
357
358 /* Verdin SD_1_PWR_EN */
359 pinctrl_sd1_pwr_en: main-gpio0-29-default-pins {
360 pinctrl-single,pins = <
361 AM62X_IOPAD(0x0074, PIN_INPUT, 7) /* (U25) GPMC0_AD14.GPIO0_29 */ /* SODIMM 76 */
362 >;
363 };
364
365 /* Verdin DSI_1_BKL_EN */
366 pinctrl_dsi1_bkl_en: main-gpio0-30-default-pins {
367 pinctrl-single,pins = <
368 AM62X_IOPAD(0x0078, PIN_INPUT, 7) /* (U24) GPMC0_AD15.GPIO0_30 */ /* SODIMM 21 */
369 >;
370 };
371
372 /* Verdin CTRL_SLEEP_MOCI# */
373 pinctrl_ctrl_sleep_moci: main-gpio0-31-default-pins {
374 pinctrl-single,pins = <
375 AM62X_IOPAD(0x007c, PIN_INPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */ /* SODIMM 256 */
376 >;
377 };
378
379 /* Verdin CTRL_WAKE1_MICO# */
380 pinctrl_ctrl_wake1_mico: main-gpio0-32-default-pins {
381 pinctrl-single,pins = <
382 AM62X_IOPAD(0x0084, PIN_INPUT_PULLUP, 7) /* (L23) GPMC0_ADVn_ALE.GPIO0_32 */ /* SODIMM 252 */
383 >;
384 };
385
386 /* Verdin I2S_2_D_OUT as GPIO (conflict with Verdin I2S_2 interface) */
387 pinctrl_i2s_2_d_out_gpio: main-gpio0-34-default-pins {
388 pinctrl-single,pins = <
389 AM62X_IOPAD(0x008c, PIN_INPUT, 7) /* (L25) GPMC0_WEn.GPIO0_34 */ /* SODIMM 46 */
390 >;
391 };
392
393 /* Verdin I2S_2_BCLK as GPIO (conflict with Verdin I2S_2 interface) */
394 pinctrl_i2s_2_bclk_gpio: main-gpio0-35-default-pins {
395 pinctrl-single,pins = <
396 AM62X_IOPAD(0x0090, PIN_INPUT, 7) /* (M24) GPMC0_BE0n_CLE.GPIO0_35 */ /* SODIMM 42 */
397 >;
398 };
399
400 /* Verdin GPIO_6 */
401 pinctrl_gpio_6: main-gpio0-36-default-pins {
402 pinctrl-single,pins = <
403 AM62X_IOPAD(0x0094, PIN_INPUT, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */ /* SODIMM 218 */
404 >;
405 };
406
407 /* Verdin ETH_2_RGMII_INT# */
408 pinctrl_eth2_rgmii_int: main-gpio0-38-default-pins {
409 pinctrl-single,pins = <
410 AM62X_IOPAD(0x009c, PIN_INPUT, 7) /* (V25) GPMC0_WAIT1.GPIO0_38 */ /* SODIMM 189 */
411 >;
412 };
413
414 /* Verdin GPIO_5 */
415 pinctrl_gpio_5: main-gpio0-40-default-pins {
416 pinctrl-single,pins = <
417 AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */ /* SODIMM 216 */
418 >;
419 };
420
421 /* Verdin GPIO_7 */
422 pinctrl_gpio_7: main-gpio0-41-default-pins {
423 pinctrl-single,pins = <
424 AM62X_IOPAD(0x00a8, PIN_INPUT, 7) /* (M21) GPMC0_CSn0.GPIO0_41 */ /* SODIMM 220 */
425 >;
426 };
427
428 /* Verdin GPIO_8 */
429 pinctrl_gpio_8: main-gpio0-42-default-pins {
430 pinctrl-single,pins = <
431 AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */ /* SODIMM 222 */
432 >;
433 };
434
435 /* Verdin USB_1_OC# */
436 pinctrl_usb1_oc: main-gpio0-71-default-pins {
437 pinctrl-single,pins = <
438 AM62X_IOPAD(0x0124, PIN_INPUT, 7) /* (A23) MMC2_SDCD.GPIO0_71 */ /* SODIMM 157 */
439 >;
440 };
441
442 /* Verdin USB_2_OC# */
443 pinctrl_usb2_oc: main-gpio0-72-default-pins {
444 pinctrl-single,pins = <
445 AM62X_IOPAD(0x0128, PIN_INPUT, 7) /* (B23) MMC2_SDWP.GPIO0_72 */ /* SODIMM 187 */
446 >;
447 };
448
449 /* Verdin PWM_3_DSI as GPIO */
450 pinctrl_pwm3_dsi_gpio: main-gpio1-17-default-pins {
451 pinctrl-single,pins = <
452 AM62X_IOPAD(0x01bc, PIN_INPUT, 7) /* (A14) SPI0_CLK.GPIO1_17 */ /* SODIMM 19 */
453 >;
454 };
455
456 /* Verdin QSPI_1_DQS as GPIO */
457 pinctrl_qspi1_dqs_gpio: main-gpio1-18-default-pins {
458 pinctrl-single,pins = <
459 AM62X_IOPAD(0x01c0, PIN_INPUT, 7) /* (B13) SPI0_D0.GPIO1_18 */ /* SODIMM 66 */
460 >;
461 };
462
463 /* Verdin USB_1_ID */
464 pinctrl_usb0_id: main-gpio1-19-default-pins {
465 pinctrl-single,pins = <
466 AM62X_IOPAD(0x01c4, PIN_INPUT, 7) /* (B14) SPI0_D1.GPIO1_19 */ /* SODIMM 161 */
467 >;
468 };
469
Tom Rini762f85b2024-07-20 11:15:10 -0600470 /* Verdin SD_1_CD# as GPIO */
471 pinctrl_sd1_cd_gpio: main-gpio1-48-default-pins {
472 pinctrl-single,pins = <
473 AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 7) /* (D17) MMC1_SDCD.GPIO1_48 */ /* SODIMM 84 */
474 >;
475 };
476
Tom Rini53633a82024-02-29 12:33:36 -0500477 /* Verdin DSI_1_INT# (pulled-up as active-low) */
478 pinctrl_dsi1_int: main-gpio1-49-default-pins {
479 pinctrl-single,pins = <
480 AM62X_IOPAD(0x0244, PIN_INPUT_PULLUP, 7) /* (C17) MMC1_SDWP.GPIO1_49 */ /* SODIMM 17 */
481 >;
482 };
483
Tom Rini6bb92fc2024-05-20 09:54:58 -0600484 /* Verdin USB_1_EN */
485 pinctrl_usb0_en: main-gpio1-50-default-pins {
486 pinctrl-single,pins = <
487 AM62X_IOPAD(0x0254, PIN_INPUT, 7) /* (C20) USB0_DRVVBUS.GPIO1_50 */ /* SODIMM 155 */
488 >;
489 };
490
Tom Rini53633a82024-02-29 12:33:36 -0500491 /* On-module I2C - PMIC_I2C */
492 pinctrl_i2c0: main-i2c0-default-pins {
493 pinctrl-single,pins = <
494 AM62X_IOPAD(0x01e0, PIN_INPUT, 0) /* (B16) I2C0_SCL */ /* PMIC_I2C_SCL */
495 AM62X_IOPAD(0x01e4, PIN_INPUT, 0) /* (A16) I2C0_SDA */ /* PMIC_I2C_SDA */
496 >;
497 };
498
499 /* Verdin I2C_1 */
500 pinctrl_i2c1: main-i2c1-default-pins {
501 pinctrl-single,pins = <
502 AM62X_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ /* SODIMM 14 */
503 AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ /* SODIMM 12 */
504 >;
505 };
506
507 /* Verdin I2C_2_DSI */
508 pinctrl_i2c2: main-i2c2-default-pins {
509 pinctrl-single,pins = <
510 AM62X_IOPAD(0x00b0, PIN_INPUT, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */ /* SODIMM 55 */
511 AM62X_IOPAD(0x00b4, PIN_INPUT, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */ /* SODIMM 53 */
512 >;
513 };
514
515 /* Verdin I2C_4_CSI */
516 pinctrl_i2c3: main-i2c3-default-pins {
517 pinctrl-single,pins = <
518 AM62X_IOPAD(0x01d0, PIN_INPUT, 2) /* (A15) UART0_CTSn.I2C3_SCL */ /* SODIMM 95 */
519 AM62X_IOPAD(0x01d4, PIN_INPUT, 2) /* (B15) UART0_RTSn.I2C3_SDA */ /* SODIMM 93 */
520 >;
521 };
522
523 /* I2S_1_MCLK */
524 pinctrl_i2s1_mclk: main-system-audio-ext-reflock1-default-pins {
525 pinctrl-single,pins = <
526 AM62X_IOPAD(0x00a0, PIN_OUTPUT, 1) /* (K25) GPMC0_WPn.AUDIO_EXT_REFCLK1 */ /* SODIMM 38 */
527 >;
528 };
529
530 /* Verdin I2S_1 */
531 pinctrl_mcasp0: main-mcasp0-default-pins {
532 pinctrl-single,pins = <
533 AM62X_IOPAD(0x01a4, PIN_INPUT, 0) /* (B20) MCASP0_ACLKX */ /* SODIMM 30 */
534 AM62X_IOPAD(0x01a8, PIN_INPUT, 0) /* (D20) MCASP0_AFSX */ /* SODIMM 32 */
535 AM62X_IOPAD(0x01a0, PIN_OUTPUT, 0) /* (E18) MCASP0_AXR0 */ /* SODIMM 34 */
536 AM62X_IOPAD(0x019c, PIN_INPUT, 0) /* (B18) MCASP0_AXR1 */ /* SODIMM 36 */
537 >;
538 };
539
540 /* Verdin I2S_2 */
541 pinctrl_mcasp1: main-mcasp1-default-pins {
542 pinctrl-single,pins = <
543 AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0n_CLE.MCASP1_ACLKX */ /* SODIMM 42 */
544 AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */ /* SODIMM 44 */
545 AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEn.MCASP1_AXR0 */ /* SODIMM 46 */
546 AM62X_IOPAD(0x0088, PIN_INPUT, 2) /* (L24) GPMC0_OEn_REn.MCASP1_AXR1 */ /* SODIMM 48 */
547 >;
548 };
549
550 /* Verdin CAN_1 */
551 pinctrl_mcan0: main-mcan0-default-pins {
552 pinctrl-single,pins = <
553 AM62X_IOPAD(0x01dc, PIN_INPUT, 0) /* (E15) MCAN0_RX */ /* SODIMM 22 */
554 AM62X_IOPAD(0x01d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */ /* SODIMM 20 */
555 >;
556 };
557
558 /* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
559 pinctrl_mdio: main-mdio1-default-pins {
560 pinctrl-single,pins = <
561 AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */ /* ETH_1_MDC, SODIMM 193 */
562 AM62X_IOPAD(0x15c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */ /* ETH_1_MDIO, SODIMM 191 */
563 >;
564 };
565
566 /* On-module eMMC */
567 pinctrl_sdhci0: main-mmc0-default-pins {
568 pinctrl-single,pins = <
569 AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
570 AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
571 AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
572 AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */
573 AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */
574 AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */
575 AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */
576 AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */
577 AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */
578 AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */
579 >;
580 };
581
582 /* Verdin SD_1 */
583 pinctrl_sdhci1: main-mmc1-default-pins {
584 pinctrl-single,pins = <
585 AM62X_IOPAD(0x23c, PIN_INPUT, 0) /* (A21) MMC1_CMD */ /* SODIMM 74 */
586 AM62X_IOPAD(0x234, PIN_INPUT, 0) /* (B22) MMC1_CLK */ /* SODIMM 78 */
587 AM62X_IOPAD(0x230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */ /* SODIMM 80 */
588 AM62X_IOPAD(0x22c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */ /* SODIMM 82 */
589 AM62X_IOPAD(0x228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */ /* SODIMM 70 */
590 AM62X_IOPAD(0x224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */ /* SODIMM 72 */
Tom Rini53633a82024-02-29 12:33:36 -0500591 >;
592 };
593
594 /* On-module Wi-Fi on WB SKUs, module-specific SDIO otherwise */
595 pinctrl_sdhci2: main-mmc2-default-pins {
596 pinctrl-single,pins = <
597 AM62X_IOPAD(0x120, PIN_INPUT, 0) /* (C24) MMC2_CMD */ /* WiFi_SDIO_CMD */
598 AM62X_IOPAD(0x118, PIN_INPUT, 0) /* (D25) MMC2_CLK */ /* WiFi_SDIO_CLK */
599 AM62X_IOPAD(0x114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */ /* WiFi_SDIO_DATA0 */
600 AM62X_IOPAD(0x110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */ /* WiFi_SDIO_DATA1 */
601 AM62X_IOPAD(0x10c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */ /* WiFi_SDIO_DATA2 */
602 AM62X_IOPAD(0x108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */ /* WiFi_SDIO_DATA3 */
603 AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */
604 >;
605 };
606
607 /* Verdin QSPI_1 */
608 pinctrl_ospi0: main-ospi0-default-pins {
609 pinctrl-single,pins = <
610 AM62X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (H24) OSPI0_CLK */ /* SODIMM 52 */
611 AM62X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (F23) OSPI0_CSn0 */ /* SODIMM 54 */
612 AM62X_IOPAD(0x0030, PIN_OUTPUT, 0) /* (G21) OSPI0_CSn1 */ /* SODIMM 64 */
613 AM62X_IOPAD(0x000c, PIN_INPUT, 0) /* (E25) OSPI0_D0 */ /* SODIMM 56 */
614 AM62X_IOPAD(0x0010, PIN_INPUT, 0) /* (G24) OSPI0_D1 */ /* SODIMM 58 */
615 AM62X_IOPAD(0x0014, PIN_INPUT, 0) /* (F25) OSPI0_D2 */ /* SODIMM 60 */
616 AM62X_IOPAD(0x0018, PIN_INPUT, 0) /* (F24) OSPI0_D3 */ /* SODIMM 62 */
617 >;
618 };
619
620 /* Verdin ETH_1 RGMII (On-module PHY) */
621 pinctrl_rgmii1: main-rgmii1-default-pins {
622 pinctrl-single,pins = <
623 AM62X_IOPAD(0x14c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
624 AM62X_IOPAD(0x150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
625 AM62X_IOPAD(0x154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
626 AM62X_IOPAD(0x158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
627 AM62X_IOPAD(0x148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
628 AM62X_IOPAD(0x144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
629 AM62X_IOPAD(0x134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */
630 AM62X_IOPAD(0x138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */
631 AM62X_IOPAD(0x13c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */
632 AM62X_IOPAD(0x140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */
633 AM62X_IOPAD(0x130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */
634 AM62X_IOPAD(0x12c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */
635 >;
636 };
637
638 /* Verdin ETH_2 RGMII */
639 pinctrl_rgmii2: main-rgmii2-default-pins {
640 pinctrl-single,pins = <
641 AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */ /* SODIMM 201 */
642 AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */ /* SODIMM 203 */
643 AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */ /* SODIMM 205 */
644 AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */ /* SODIMM 207 */
645 AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */ /* SODIMM 197 */
646 AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */ /* SODIMM 199 */
647 AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */ /* SODIMM 221 */
648 AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */ /* SODIMM 219 */
649 AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */ /* SODIMM 217 */
650 AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */ /* SODIMM 215 */
651 AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */ /* SODIMM 213 */
652 AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */ /* SODIMM 211 */
653 >;
654 };
655
656 /* Verdin SPI_1 */
657 pinctrl_spi1: main-spi1-default-pins {
658 pinctrl-single,pins = <
659 AM62X_IOPAD(0x0020, PIN_INPUT, 1) /* (J25) OSPI0_D5.SPI1_CLK */ /* SODIMM 196 */
Tom Rini53633a82024-02-29 12:33:36 -0500660 AM62X_IOPAD(0x0024, PIN_INPUT, 1) /* (H25) OSPI0_D6.SPI1_D0 */ /* SODIMM 200 */
661 AM62X_IOPAD(0x0028, PIN_INPUT, 1) /* (J22) OSPI0_D7.SPI1_D1 */ /* SODIMM 198 */
662 >;
663 };
664
Tom Rini93743d22024-04-01 09:08:13 -0400665 /* Verdin SPI_1 CS */
666 pinctrl_spi1_cs0: main-spi1-cs0-default-pins {
667 pinctrl-single,pins = <
668 AM62X_IOPAD(0x001c, PIN_INPUT, 1) /* (J23) OSPI0_D4.SPI1_CS0 */ /* SODIMM 202 */
669 >;
670 };
671
Tom Rini53633a82024-02-29 12:33:36 -0500672 /* ETH_25MHz_CLK */
673 pinctrl_eth_clock: main-system-clkout0-default-pins {
674 pinctrl-single,pins = <
675 AM62X_IOPAD(0x01f0, PIN_OUTPUT_PULLUP, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */
676 >;
677 };
678
679 /* PMIC_EXTINT# */
680 pinctrl_pmic_extint: main-system-extint-default-pins {
681 pinctrl-single,pins = <
682 AM62X_IOPAD(0x01f4, PIN_INPUT, 0) /* (D16) EXTINTn */
683 >;
684 };
685
686 /* Verdin UART_3, used as the Linux console */
687 pinctrl_uart0: main-uart0-default-pins {
688 pinctrl-single,pins = <
689 AM62X_IOPAD(0x1c8, PIN_INPUT_PULLUP, 0) /* (D14) UART0_RXD */ /* SODIMM 147 */
690 AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ /* SODIMM 149 */
691 >;
692 };
693
694 /* Verdin UART_1 */
695 pinctrl_uart1: main-uart1-default-pins {
696 pinctrl-single,pins = <
697 AM62X_IOPAD(0x0194, PIN_INPUT_PULLUP, 2) /* (B19) MCASP0_AXR3.UART1_CTSn */ /* SODIMM 135 */
698 AM62X_IOPAD(0x0198, PIN_OUTPUT, 2) /* (A19) MCASP0_AXR2.UART1_RTSn */ /* SODIMM 133 */
699 AM62X_IOPAD(0x01ac, PIN_INPUT_PULLUP, 2) /* (E19) MCASP0_AFSR.UART1_RXD */ /* SODIMM 129 */
700 AM62X_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (A20) MCASP0_ACLKR.UART1_TXD */ /* SODIMM 131 */
701 >;
702 };
703
704 /* Bluetooth on WB SKUs, module-specific UART otherwise */
705 pinctrl_uart5: main-uart5-default-pins {
706 pinctrl-single,pins = <
707 AM62X_IOPAD(0x0008, PIN_INPUT_PULLUP, 5) /* (J24) OSPI0_DQS.UART5_CTSn */ /* WiFi_UART_CTS */
708 AM62X_IOPAD(0x0004, PIN_OUTPUT, 5) /* (G25) OSPI0_LBCLKO.UART5_RTSn */ /* WiFi_UART_RTS */
709 AM62X_IOPAD(0x0034, PIN_INPUT_PULLUP, 5) /* (H21) OSPI0_CSn2.UART5_RXD */ /* WiFi_UART_RXD */
710 AM62X_IOPAD(0x0038, PIN_OUTPUT, 5) /* (E24) OSPI0_CSn3.UART5_TXD */ /* WiFi_UART_TXD */
711 >;
712 };
713
Tom Rini53633a82024-02-29 12:33:36 -0500714 /* Verdin USB_2 */
715 pinctrl_usb1: main-usb1-default-pins {
716 pinctrl-single,pins = <
717 AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */ /* SODIMM 185 */
718 >;
719 };
720
721 /* DSS VOUT0 RGB */
722 pinctrl_parallel_rgb: main-vout-default-pins {
723 pinctrl-single,pins = <
724 AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
725 AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
726 AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
727 AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
728 AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
729 AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
730 AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
731 AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
732 AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
733 AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
734 AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
735 AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
736 AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
737 AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
738 AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
739 AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
740 AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
741 AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
742 AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
743 AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
744 AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
745 AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
746 >;
747 };
748};
749
750&mcu_pmx0 {
751 /* Verdin PCIE_1_RESET# */
752 pinctrl_pcie_1_reset: mcu-gpio0-0-default-pins {
753 pinctrl-single,pins = <
754 AM62X_MCU_IOPAD(0x0000, PIN_INPUT, 7) /* (E8) MCU_SPI0_CS0.MCU_GPIO0_0 */ /* SODIMM 244 */
755 >;
756 };
757
758 /* Verdin GPIO_1 */
759 pinctrl_gpio_1: mcu-gpio0-1-default-pins {
760 pinctrl-single,pins = <
761 AM62X_MCU_IOPAD(0x0004, PIN_INPUT, 7) /* (B8) MCU_SPI0_CS1.MCU_GPIO0_1 */ /* SODIMM 206 */
762 >;
763 };
764
765 /* Verdin GPIO_2 */
766 pinctrl_gpio_2: mcu-gpio0-2-default-pins {
767 pinctrl-single,pins = <
768 AM62X_MCU_IOPAD(0x0008, PIN_INPUT, 7) /* (A7) MCU_SPI0_CLK.MCU_GPIO0_2 */ /* SODIMM 208 */
769 >;
770 };
771
772 /* Verdin GPIO_3 */
773 pinctrl_gpio_3: mcu-gpio0-3-default-pins {
774 pinctrl-single,pins = <
775 AM62X_MCU_IOPAD(0x000c, PIN_INPUT, 7) /* (D9) MCU_SPI0_D0.MCU_GPIO0_3 */ /* SODIMM 210 */
776 >;
777 };
778
779 /* Verdin GPIO_4 */
780 pinctrl_gpio_4: mcu-gpio0-4-default-pins {
781 pinctrl-single,pins = <
782 AM62X_MCU_IOPAD(0x0010, PIN_INPUT, 7) /* (C9) MCU_SPI0_D1.MCU_GPIO0_4 */ /* SODIMM 212 */
783 >;
784 };
785
786 /* Verdin I2C_3_HDMI */
787 pinctrl_mcu_i2c0: mcu-i2c0-default-pins {
788 pinctrl-single,pins = <
789 AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 0) /* (A8) MCU_I2C0_SCL */ /* SODIMM 59 */
790 AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 0) /* (D10) MCU_I2C0_SDA */ /* SODIMM 57 */
791 >;
792 };
793
794 /* Verdin CAN_2 */
795 pinctrl_mcu_mcan0: mcu-mcan0-default-pins {
796 pinctrl-single,pins = <
797 AM62X_MCU_IOPAD(0x0038, PIN_INPUT, 0) /* (B3) MCU_MCAN0_RX */ /* SODIMM 26 */
798 AM62X_MCU_IOPAD(0x0034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */ /* SODIMM 24 */
799 >;
800 };
801
802 /* Verdin UART_4 - Reserved to Cortex-M4 */
803 pinctrl_mcu_uart0: mcu-uart0-default-pins {
804 pinctrl-single,pins = <
805 AM62X_MCU_IOPAD(0x0014, PIN_INPUT_PULLUP, 0) /* (B5) MCU_UART0_RXD */ /* SODIMM 151 */
806 AM62X_MCU_IOPAD(0x0018, PIN_OUTPUT, 0) /* (A5) MCU_UART0_TXD */ /* SODIMM 153 */
807 >;
808 };
809
810 /* Verdin CSI_1_MCLK */
811 pinctrl_csi1_mclk: wkup-clkout0-default-pins {
812 pinctrl-single,pins = <
813 AM62X_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (A12) WKUP_CLKOUT0 */ /* SODIMM 91 */
814 >;
815 };
816
817 /* Verdin UART_2 */
818 pinctrl_wkup_uart0: wkup-uart0-default-pins {
819 pinctrl-single,pins = <
820 AM62X_MCU_IOPAD(0x002c, PIN_INPUT_PULLUP, 0) /* (C6) WKUP_UART0_CTSn */ /* SODIMM 143 */
821 AM62X_MCU_IOPAD(0x0030, PIN_OUTPUT, 0) /* (A4) WKUP_UART0_RTSn */ /* SODIMM 141 */
822 AM62X_MCU_IOPAD(0x0024, PIN_INPUT_PULLUP, 0) /* (B4) WKUP_UART0_RXD */ /* SODIMM 137 */
823 AM62X_MCU_IOPAD(0x0028, PIN_OUTPUT, 0) /* (C5) WKUP_UART0_TXD */ /* SODIMM 139 */
824 >;
825 };
826};
827
828/* VERDIN I2S_1_MCLK */
829&audio_refclk1 {
830 assigned-clock-rates = <25000000>;
831};
832
833&cpsw3g {
834 pinctrl-names = "default";
835 pinctrl-0 = <&pinctrl_rgmii1>;
836 status = "disabled";
837};
838
839/* Verdin ETH_1 (On-module PHY) */
840&cpsw_port1 {
841 phy-handle = <&cpsw3g_phy0>;
842 phy-mode = "rgmii-rxid";
843 status = "disabled";
844};
845
846/* Verdin ETH_2_RGMII */
847&cpsw_port2 {
848 status = "disabled";
849};
850
851/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
852&cpsw3g_mdio {
853 assigned-clocks = <&k3_clks 157 20>;
854 assigned-clock-parents = <&k3_clks 157 22>;
855 assigned-clock-rates = <25000000>;
856 pinctrl-names = "default";
857 pinctrl-0 = <&pinctrl_eth_clock>, <&pinctrl_mdio>;
858 status = "disabled";
859
860 cpsw3g_phy0: ethernet-phy@0 {
861 compatible = "ethernet-phy-id2000.a231";
862 reg = <0>;
863 interrupt-parent = <&main_gpio0>;
864 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
865 pinctrl-names = "default";
866 pinctrl-0 = <&pinctrl_eth_int>, <&pinctrl_eth_reset>;
867 reset-gpios = <&main_gpio0 17 GPIO_ACTIVE_LOW>;
868 reset-assert-us = <10>;
869 reset-deassert-us = <1000>;
870 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
871 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
872 };
873};
874
875&dss {
876 pinctrl-names = "default";
877 pinctrl-0 = <&pinctrl_parallel_rgb>;
878 status = "disabled";
879};
880
881&dss_ports {
882 #address-cells = <1>;
883 #size-cells = <0>;
884
885 /* VP2: DPI Output */
886 port@1 {
887 reg = <1>;
888
889 dpi_out: endpoint {
890 remote-endpoint = <&rgb_in>;
891 };
892 };
893};
894
895/* Verdin PWM_1, PWM_2 */
896&epwm0 {
897 pinctrl-names = "default";
898 pinctrl-0 = <&pinctrl_epwm0_a>, <&pinctrl_epwm0_b>;
899 status = "disabled";
900};
901
902/* Verdin PWM_3_DSI */
903&epwm1 {
904 pinctrl-names = "default";
905 pinctrl-0 = <&pinctrl_epwm1_a>;
906 status = "disabled";
907};
908
909&main_gpio0 {
910 gpio-line-names =
911 "SODIMM_52", /* 0 */
912 "",
913 "",
914 "SODIMM_56",
915 "SODIMM_58",
916 "SODIMM_60",
917 "SODIMM_62",
918 "",
919 "",
920 "",
921 "", /* 10 */
922 "SODIMM_54",
923 "SODIMM_64",
924 "",
925 "",
926 "SODIMM_174",
927 "SODIMM_172",
928 "",
929 "",
930 "",
931 "", /* 20 */
932 "",
933 "",
934 "",
935 "",
936 "",
937 "",
938 "",
939 "",
940 "SODIMM_76",
941 "SODIMM_21", /* 30 */
942 "SODIMM_256",
943 "SODIMM_252",
944 "",
945 "SODIMM_46",
946 "SODIMM_42",
947 "SODIMM_218",
948 "",
949 "SODIMM_189",
950 "",
951 "SODIMM_216", /* 40 */
952 "SODIMM_220",
953 "SODIMM_222",
954 "",
955 "",
956 "",
957 "",
958 "",
959 "",
960 "",
961 "", /* 50 */
962 "",
963 "",
964 "",
965 "",
966 "",
967 "",
968 "",
969 "",
970 "",
971 "", /* 60 */
972 "",
973 "",
974 "",
975 "",
976 "",
977 "",
978 "",
979 "",
980 "",
981 "", /* 70 */
982 "SODIMM_157",
983 "SODIMM_187",
984 "",
985 "",
986 "",
987 "",
988 "",
989 "",
990 "",
991 "", /* 80 */
992 "",
993 "",
994 "",
995 "",
996 "",
997 "";
Tom Rini53633a82024-02-29 12:33:36 -0500998};
999
1000&main_gpio1 {
1001 gpio-line-names =
1002 "", /* 0 */
1003 "",
1004 "",
1005 "",
1006 "",
1007 "",
1008 "",
1009 "",
1010 "",
1011 "",
1012 "", /* 10 */
1013 "",
1014 "",
1015 "",
1016 "",
1017 "SODIMM_15",
1018 "SODIMM_16",
1019 "SODIMM_19",
1020 "SODIMM_66",
1021 "SODIMM_161",
1022 "", /* 20 */
1023 "",
1024 "",
1025 "",
1026 "",
1027 "",
1028 "",
1029 "",
1030 "",
1031 "",
1032 "", /* 30 */
1033 "",
1034 "",
1035 "",
1036 "",
1037 "",
1038 "",
1039 "",
1040 "",
1041 "",
1042 "", /* 40 */
1043 "",
1044 "",
1045 "",
1046 "",
1047 "",
1048 "",
1049 "",
1050 "",
1051 "SODIMM_17",
Tom Rini6bb92fc2024-05-20 09:54:58 -06001052 "SODIMM_155", /* 50 */
Tom Rini53633a82024-02-29 12:33:36 -05001053 "",
1054 "",
1055 "",
1056 "",
1057 "",
1058 "",
1059 "",
1060 "",
1061 "",
1062 "", /* 60 */
1063 "",
1064 "",
1065 "",
1066 "",
1067 "",
1068 "",
1069 "",
1070 "",
1071 "",
1072 "", /* 70 */
1073 "",
1074 "",
1075 "",
1076 "",
1077 "",
1078 "",
1079 "",
1080 "",
1081 "",
1082 "", /* 80 */
1083 "",
1084 "",
1085 "",
1086 "",
1087 "",
1088 "",
1089 "";
1090};
1091
1092/* On-module I2C - PMIC_I2C */
1093&main_i2c0 {
1094 pinctrl-names = "default";
1095 pinctrl-0 = <&pinctrl_i2c0>;
1096 clock-frequency = <400000>;
1097 status = "okay";
1098
1099 dsi_bridge: dsi@e {
1100 compatible = "toshiba,tc358778";
1101 reg = <0xe>;
1102 assigned-clocks = <&k3_clks 157 20>;
1103 assigned-clock-parents = <&k3_clks 157 22>;
1104 assigned-clock-rates = <25000000>;
1105 pinctrl-names = "default";
1106 pinctrl-0 = <&pinctrl_bridge_reset>;
1107 clocks = <&k3_clks 157 20>;
1108 clock-names = "refclk";
1109 reset-gpios = <&main_gpio0 20 GPIO_ACTIVE_LOW>;
1110 vddc-supply = <&reg_1v2_dsi>;
1111 vddmipi-supply = <&reg_1v2_dsi>;
1112 vddio-supply = <&reg_1v8_dsi>;
1113 status = "disabled";
1114
1115 dsi_bridge_ports: ports {
1116 #address-cells = <1>;
1117 #size-cells = <0>;
1118
1119 port@0 {
1120 reg = <0>;
1121
1122 rgb_in: endpoint {
1123 data-lines = <18>;
1124 remote-endpoint = <&dpi_out>;
1125 };
1126 };
1127
1128 port@1 {
1129 reg = <1>;
1130 };
1131 };
1132 };
1133
1134 pmic@30 {
1135 compatible = "ti,tps65219";
1136 reg = <0x30>;
1137 pinctrl-names = "default";
1138 pinctrl-0 = <&pinctrl_pmic_extint>;
1139 interrupt-parent = <&gic500>;
1140 interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
1141
1142 buck1-supply = <&reg_vsodimm>;
1143 buck2-supply = <&reg_vsodimm>;
1144 buck3-supply = <&reg_vsodimm>;
1145 ldo1-supply = <&reg_3v3>;
1146 ldo2-supply = <&reg_1v8>;
1147 ldo3-supply = <&reg_3v3>;
1148 ldo4-supply = <&reg_3v3>;
1149 system-power-controller;
1150 ti,power-button;
1151
1152 regulators {
1153 reg_vdd_core: buck1 {
1154 regulator-always-on;
1155 regulator-boot-on;
1156 regulator-max-microvolt = <850000>;
Tom Rini6bb92fc2024-05-20 09:54:58 -06001157 regulator-min-microvolt = <750000>;
Tom Rini53633a82024-02-29 12:33:36 -05001158 regulator-name = "+VDD_CORE (PMIC BUCK1)";
1159 };
1160
1161 reg_1v8: buck2 {
1162 regulator-always-on;
1163 regulator-boot-on;
1164 regulator-max-microvolt = <1800000>;
1165 regulator-min-microvolt = <1800000>;
1166 regulator-name = "+V1.8 (PMIC BUCK2)"; /* On-module and SODIMM 214 */
1167 };
1168
1169 reg_vdd_ddr: buck3 {
1170 regulator-always-on;
1171 regulator-boot-on;
1172 regulator-max-microvolt = <1100000>;
1173 regulator-min-microvolt = <1100000>;
1174 regulator-name = "+VDD_DDR (PMIC BUCK3)";
1175 };
1176
1177 reg_sd_3v3_1v8: ldo1 {
1178 regulator-allow-bypass;
1179 regulator-always-on;
1180 regulator-boot-on;
1181 regulator-max-microvolt = <3300000>;
1182 regulator-min-microvolt = <3300000>;
1183 regulator-name = "+V3.3_1.8_SD (PMIC LDO1)";
1184 };
1185
1186 reg_vddr_core: ldo2 {
1187 regulator-always-on;
1188 regulator-boot-on;
1189 regulator-max-microvolt = <850000>;
1190 regulator-min-microvolt = <850000>;
1191 regulator-name = "+VDDR_CORE (PMIC LDO2)";
1192 };
1193
1194 reg_1v8a: ldo3 {
1195 regulator-always-on;
1196 regulator-boot-on;
1197 regulator-max-microvolt = <1800000>;
1198 regulator-min-microvolt = <1800000>;
1199 regulator-name = "+V1.8A (PMIC LDO3)";
1200 };
1201
1202 reg_eth_2v5: ldo4 {
1203 regulator-always-on;
1204 regulator-boot-on;
1205 regulator-max-microvolt = <2500000>;
1206 regulator-min-microvolt = <2500000>;
1207 regulator-name = "+V2.5_ETH (PMIC LDO4)";
1208 };
1209 };
1210 };
1211
1212 rtc_i2c: rtc@32 {
1213 compatible = "epson,rx8130";
1214 reg = <0x32>;
1215 };
1216
1217 sensor@48 {
1218 compatible = "ti,tmp1075";
1219 reg = <0x48>;
1220 };
1221
1222 adc@49 {
1223 compatible = "ti,ads1015";
1224 reg = <0x49>;
1225 #address-cells = <1>;
1226 #size-cells = <0>;
1227
1228 /* Verdin PMIC_I2C (ADC_4 - ADC_3) */
1229 channel@0 {
1230 reg = <0>;
1231 ti,datarate = <4>;
1232 ti,gain = <2>;
1233 };
1234
1235 /* Verdin PMIC_I2C (ADC_4 - ADC_1) */
1236 channel@1 {
1237 reg = <1>;
1238 ti,datarate = <4>;
1239 ti,gain = <2>;
1240 };
1241
1242 /* Verdin PMIC_I2C (ADC_3 - ADC_1) */
1243 channel@2 {
1244 reg = <2>;
1245 ti,datarate = <4>;
1246 ti,gain = <2>;
1247 };
1248
1249 /* Verdin PMIC_I2C (ADC_2 - ADC_1) */
1250 channel@3 {
1251 reg = <3>;
1252 ti,datarate = <4>;
1253 ti,gain = <2>;
1254 };
1255
1256 /* Verdin PMIC_I2C ADC_4 */
1257 channel@4 {
1258 reg = <4>;
1259 ti,datarate = <4>;
1260 ti,gain = <2>;
1261 };
1262
1263 /* Verdin PMIC_I2C ADC_3 */
1264 channel@5 {
1265 reg = <5>;
1266 ti,datarate = <4>;
1267 ti,gain = <2>;
1268 };
1269
1270 /* Verdin PMIC_I2C ADC_2 */
1271 channel@6 {
1272 reg = <6>;
1273 ti,datarate = <4>;
1274 ti,gain = <2>;
1275 };
1276
1277 /* Verdin PMIC_I2C ADC_1 */
1278 channel@7 {
1279 reg = <7>;
1280 ti,datarate = <4>;
1281 ti,gain = <2>;
1282 };
1283 };
1284
1285 eeprom@50 {
1286 compatible = "st,24c02", "atmel,24c02";
1287 pagesize = <16>;
1288 reg = <0x50>;
1289 };
1290};
1291
1292/* Verdin I2C_1 */
1293&main_i2c1 {
1294 pinctrl-names = "default";
1295 pinctrl-0 = <&pinctrl_i2c1>;
1296 status = "disabled";
1297};
1298
1299/* Verdin I2C_2_DSI */
1300&main_i2c2 {
1301 pinctrl-names = "default";
1302 pinctrl-0 = <&pinctrl_i2c2>;
1303 status = "disabled";
1304};
1305
1306/* Verdin I2C_4_CSI */
1307&main_i2c3 {
1308 pinctrl-names = "default";
1309 pinctrl-0 = <&pinctrl_i2c3>;
1310 status = "disabled";
1311};
1312
1313&mailbox0_cluster0 {
1314 mbox_m4_0: mbox-m4-0 {
1315 ti,mbox-rx = <0 0 0>;
1316 ti,mbox-tx = <1 0 0>;
1317 };
1318};
1319
1320/* Verdin CAN_1 */
1321&main_mcan0 {
1322 pinctrl-names = "default";
1323 pinctrl-0 = <&pinctrl_mcan0>;
1324 status = "disabled";
1325};
1326
1327/* Verdin SPI_1 */
1328&main_spi1 {
1329 pinctrl-names = "default";
Tom Rini93743d22024-04-01 09:08:13 -04001330 pinctrl-0 = <&pinctrl_spi1>, <&pinctrl_spi1_cs0>;
Tom Rini53633a82024-02-29 12:33:36 -05001331 ti,pindir-d0-out-d1-in;
1332 status = "disabled";
1333};
1334
1335/* Verdin UART_3, used as the Linux console */
1336&main_uart0 {
1337 pinctrl-names = "default";
1338 pinctrl-0 = <&pinctrl_uart0>;
1339 status = "disabled";
1340};
1341
1342/* Verdin UART_1 */
1343&main_uart1 {
1344 pinctrl-names = "default";
1345 pinctrl-0 = <&pinctrl_uart1>;
1346 status = "disabled";
1347};
1348
1349/* Verdin I2S_1 */
1350&mcasp0 {
1351 pinctrl-names = "default";
1352 pinctrl-0 = <&pinctrl_mcasp0>;
1353 op-mode = <0>; /* I2S mode */
1354 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
1355 1 2 0 0
1356 0 0 0 0
1357 0 0 0 0
1358 0 0 0 0
1359 >;
1360 tdm-slots = <2>;
Tom Rini53633a82024-02-29 12:33:36 -05001361 #sound-dai-cells = <0>;
1362 status = "disabled";
1363};
1364
1365/* Verdin I2S_2 */
1366&mcasp1 {
1367 pinctrl-names = "default";
1368 pinctrl-0 = <&pinctrl_mcasp1>;
1369 op-mode = <0>; /* I2S mode */
1370 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
1371 1 2 0 0
1372 0 0 0 0
1373 0 0 0 0
1374 0 0 0 0
1375 >;
1376 tdm-slots = <2>;
Tom Rini53633a82024-02-29 12:33:36 -05001377 #sound-dai-cells = <0>;
1378 status = "disabled";
1379};
1380
1381/* Verdin I2C_3_HDMI */
1382&mcu_i2c0 {
1383 pinctrl-names = "default";
1384 pinctrl-0 = <&pinctrl_mcu_i2c0>;
1385 status = "disabled";
1386};
1387
1388&mcu_gpio0 {
1389 gpio-line-names =
1390 "SODIMM_244",
1391 "SODIMM_206",
1392 "SODIMM_208",
1393 "SODIMM_210",
1394 "SODIMM_212",
1395 "",
1396 "",
1397 "",
1398 "",
1399 "",
1400 "",
1401 "",
1402 "",
1403 "",
1404 "",
1405 "",
1406 "",
1407 "",
1408 "",
1409 "",
1410 "",
1411 "",
1412 "",
1413 "";
Tom Rini762f85b2024-07-20 11:15:10 -06001414
1415 verdin_pcie_1_reset_hog: pcie-1-reset-hog {
1416 gpio-hog;
1417 /* Verdin PCIE_1_RESET# (SODIMM 244) */
1418 gpios = <0 GPIO_ACTIVE_LOW>;
1419 line-name = "PCIE_1_RESET#";
1420 output-low;
1421 status = "disabled";
1422 };
Tom Rini53633a82024-02-29 12:33:36 -05001423};
1424
1425/* Verdin CAN_2 */
1426&mcu_mcan0 {
1427 pinctrl-names = "default";
1428 pinctrl-0 = <&pinctrl_mcu_mcan0>;
1429 status = "disabled";
1430};
1431
1432/* Verdin UART_4 - Cortex-M4 UART */
1433&mcu_uart0 {
1434 pinctrl-names = "default";
1435 pinctrl-0 = <&pinctrl_mcu_uart0>;
1436 status = "disabled";
1437};
1438
1439/* Verdin QSPI_1 */
1440&ospi0 {
1441 pinctrl-names = "default";
1442 pinctrl-0 = <&pinctrl_ospi0>;
1443 status = "disabled";
1444};
1445
1446/* On-module eMMC */
1447&sdhci0 {
1448 pinctrl-names = "default";
1449 pinctrl-0 = <&pinctrl_sdhci0>;
1450 non-removable;
Tom Rini53633a82024-02-29 12:33:36 -05001451 status = "okay";
1452};
1453
1454/* Verdin SD_1 */
1455&sdhci1 {
1456 pinctrl-names = "default";
Tom Rini762f85b2024-07-20 11:15:10 -06001457 pinctrl-0 = <&pinctrl_sdhci1>, <&pinctrl_sd1_cd_gpio>;
1458 cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
Tom Rini53633a82024-02-29 12:33:36 -05001459 disable-wp;
Tom Rini53633a82024-02-29 12:33:36 -05001460 vmmc-supply = <&reg_sdhc1_vmmc>;
1461 vqmmc-supply = <&reg_sdhc1_vqmmc>;
Tom Rini762f85b2024-07-20 11:15:10 -06001462 ti,fails-without-test-cd;
Tom Rini53633a82024-02-29 12:33:36 -05001463 status = "disabled";
1464};
1465
1466/* Verdin USB_1 */
1467&usbss0 {
1468 ti,vbus-divider;
1469 status = "disabled";
1470};
1471
Tom Rini53633a82024-02-29 12:33:36 -05001472&usb0 {
Tom Rini6bb92fc2024-05-20 09:54:58 -06001473 adp-disable;
1474 usb-role-switch;
Tom Rini53633a82024-02-29 12:33:36 -05001475 status = "disabled";
Tom Rini6bb92fc2024-05-20 09:54:58 -06001476
1477 port {
1478 usb0_ep: endpoint {
1479 remote-endpoint = <&usb_dr_connector>;
1480 };
1481 };
Tom Rini53633a82024-02-29 12:33:36 -05001482};
1483
1484/* Verdin USB_2 */
1485&usbss1 {
1486 ti,vbus-divider;
1487 status = "disabled";
1488};
1489
1490&usb1 {
1491 pinctrl-names = "default";
1492 pinctrl-0 = <&pinctrl_usb1>;
1493 dr_mode = "host";
1494 status = "disabled";
1495};
1496
1497/* Verdin UART_2 */
1498&wkup_uart0 {
1499 pinctrl-names = "default";
1500 pinctrl-0 = <&pinctrl_wkup_uart0>;
1501 status = "disabled";
1502};