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