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