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