// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2023 Toradex
 *
 * Common dtsi for Verdin AM62 SoM
 *
 * https://www.toradex.com/computer-on-modules/verdin-arm-family/ti-am62
 */

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/net/ti-dp83867.h>

/ {
	chosen {
		stdout-path = "serial2:115200n8";
	};

	aliases {
		can0 = &main_mcan0;
		can1 = &mcu_mcan0;
		ethernet0 = &cpsw_port1;
		ethernet1 = &cpsw_port2;
		i2c0 = &main_i2c0;
		i2c1 = &main_i2c1;
		i2c2 = &main_i2c2;
		i2c3 = &mcu_i2c0;
		i2c4 = &main_i2c3;
		mmc0 = &sdhci0;
		mmc1 = &sdhci1;
		mmc2 = &sdhci2;
		rtc0 = &rtc_i2c;
		rtc1 = &wkup_rtc0;
		serial0 = &main_uart1;
		serial1 = &wkup_uart0;
		serial2 = &main_uart0;
		serial3 = &mcu_uart0;
		serial4 = &main_uart5;
		usb0 = &usb0;
		usb1 = &usb1;
	};

	verdin_gpio_keys: gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ctrl_wake1_mico>;
		status = "disabled";

		verdin_key_wakeup: key-wakeup {
			debounce-interval = <10>;
			/* Verdin CTRL_WAKE1_MICO# (SODIMM 252) */
			gpios = <&main_gpio0 32 GPIO_ACTIVE_LOW>;
			label = "Wake-Up";
			linux,code = <KEY_WAKEUP>;
			wakeup-source;
		};
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x00000000 0x80000000 0x00000000 0x40000000>; /* 1G RAM */
	};

	opp-table {
		/* Add 1.4GHz OPP. Requires VDD_CORE to be at 0.85V */
		opp-1400000000 {
			opp-hz = /bits/ 64 <1400000000>;
			opp-supported-hw = <0x01 0x0004>;
			clock-latency-ns = <6000000>;
		};
	};

	/* Module Power Supply */
	reg_vsodimm: regulator-vsodimm {
		compatible = "regulator-fixed";
		regulator-name = "+V_SODIMM";
	};

	/* Non PMIC On-module Supplies */
	reg_3v3: regulator-3v3 {
		compatible = "regulator-fixed";
		regulator-max-microvolt = <3300000>;
		regulator-min-microvolt = <3300000>;
		regulator-name = "On-module +V3.3";
		vin-supply = <&reg_vsodimm>;
	};

	reg_1v2_dsi: regulator-1v2-dsi {
		compatible = "regulator-fixed";
		regulator-max-microvolt = <1200000>;
		regulator-min-microvolt = <1200000>;
		regulator-name = "On-module +V1.2_DSI";
		vin-supply = <&reg_1v8>;
	};

	/* Enabled by +V1.2_DSI */
	reg_1v8_dsi: regulator-1v8-dsi {
		compatible = "regulator-fixed";
		regulator-max-microvolt = <1800000>;
		regulator-min-microvolt = <1800000>;
		regulator-name = "On-module +V1.8_DSI";
		vin-supply = <&reg_1v8>;
	};

	/* Enabled by +V2.5_ETH */
	reg_1v0_eth: regulator-1v0-eth {
		compatible = "regulator-fixed";
		regulator-max-microvolt = <1000000>;
		regulator-min-microvolt = <1000000>;
		regulator-name = "On-module +V1.0_ETH";
		vin-supply = <&reg_1v8>;
	};

	/* Enabled by +V2.5_ETH */
	reg_1v8_eth: regulator-1v8-eth {
		compatible = "regulator-fixed";
		regulator-max-microvolt = <1800000>;
		regulator-min-microvolt = <1800000>;
		regulator-name = "On-module +V1.8_ETH";
		vin-supply = <&reg_1v8>;
	};

	/* Verdin SD_1 Power Supply */
	reg_sdhc1_vmmc: regulator-sdhci1 {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_sd1_pwr_en>;
		enable-active-high;
		/* Verdin SD_1_PWR_EN (SODIMM 76) */
		gpio = <&main_gpio0 29 GPIO_ACTIVE_HIGH>;
		off-on-delay-us = <100000>;
		regulator-max-microvolt = <3300000>;
		regulator-min-microvolt = <3300000>;
		regulator-name = "+V3.3_SD";
		startup-delay-us = <2000>;
	};

	reg_sdhc1_vqmmc: regulator-sdhci1-vqmmc {
		compatible = "regulator-gpio";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_vsel_sd>;
		/* PMIC_VSEL_SD */
		gpios = <&main_gpio0 21 GPIO_ACTIVE_HIGH>;
		regulator-name = "LDO1-VSEL-SD (PMIC)";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		states = <1800000 0x0>,
			 <3300000 0x1>;
		vin-supply = <&reg_sd_3v3_1v8>;
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		secure_tfa_ddr: tfa@9e780000 {
			reg = <0x00 0x9e780000 0x00 0x80000>;
			alignment = <0x1000>;
			no-map;
		};

		secure_ddr: optee@9e800000 {
			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
			alignment = <0x1000>;
			no-map;
		};

		wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9db00000 {
			compatible = "shared-dma-pool";
			reg = <0x00 0x9db00000 0x00 0xc00000>;
			no-map;
		};
	};
};

&main_pmx0 {
	/* Verdin PWM_1 */
	pinctrl_epwm0_a: main-epwm0a-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01b4, PIN_OUTPUT, 2) /* (A13) SPI0_CS0.EHRPWM0_A */ /* SODIMM 15 */
		>;
	};

	/* Verdin PWM_2 */
	pinctrl_epwm0_b: main-epwm0b-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01b8, PIN_OUTPUT, 2) /* (C13) SPI0_CS1.EHRPWM0_B */ /* SODIMM 16 */
		>;
	};

	/* Verdin PWM_3_DSI */
	pinctrl_epwm1_a: main-epwm1a-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01bc, PIN_OUTPUT, 2) /* (A14) SPI0_CLK.EHRPWM1_A */ /* SODIMM 19 */
		>;
	};

	/* Verdin QSPI_1_CLK as GPIO (conflict with Verdin QSPI_1 interface) */
	pinctrl_qspi1_clk_gpio: main-gpio0-0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0000, PIN_INPUT, 7) /* (H24) OSPI0_CLK.GPIO0_0 */ /* SODIMM 52 */
		>;
	};

	/* Verdin QSPI_1_IO0 as GPIO (conflict with Verdin QSPI_1 interface) */
	pinctrl_qspi1_io0_gpio: main-gpio0-3-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x000c, PIN_INPUT, 7) /* (E25) OSPI0_D0.GPIO0_3 */ /* SODIMM 56 */
		>;
	};

	/* Verdin QSPI_1_IO1 as GPIO (conflict with Verdin QSPI_1 interface) */
	pinctrl_qspi1_io1_gpio: main-gpio0-4-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0010, PIN_INPUT, 7) /* (G24) OSPI0_D1.GPIO0_4 */ /* SODIMM 58 */
		>;
	};

	/* Verdin QSPI_1_IO2 as GPIO (conflict with Verdin QSPI_1 interface) */
	pinctrl_qspi1_io2_gpio: main-gpio0-5-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0014, PIN_INPUT, 7) /* (F25) OSPI0_D2.GPIO0_5 */ /* SODIMM 60 */
		>;
	};

	/* Verdin QSPI_1_IO3 as GPIO (conflict with Verdin QSPI_1 interface) */
	pinctrl_qspi1_io3_gpio: main-gpio0-6-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0018, PIN_INPUT, 7) /* (F24) OSPI0_D3.GPIO0_6 */ /* SODIMM 62 */
		>;
	};

	/* Verdin QSPI_1_CS# as GPIO (conflict with Verdin QSPI_1 interface) */
	pinctrl_qspi1_cs_gpio: main-gpio0-11-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x002c, PIN_INPUT, 7) /* (F23) OSPI0_CSn0.GPIO0_11 */ /* SODIMM 54 */
		>;
	};

	/* Verdin QSPI_1_CS2# as GPIO (conflict with Verdin QSPI_1 interface) */
	pinctrl_qspi1_cs2_gpio: main-gpio0-12-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */ /* SODIMM 64 */
		>;
	};

	/* WiFi_W_WKUP_HOST# */
	pinctrl_wifi_w_wkup_host: main-gpio0-15-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x003c, PIN_INPUT, 7) /* (M25) GPMC0_AD0.GPIO0_15 */ /* SODIMM 174 */
		>;
	};

	/* WiFi_BT_WKUP_HOST# */
	pinctrl_bt_wkup_host: main-gpio0-16-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0040, PIN_INPUT, 7) /* (N23) GPMC0_AD1.GPIO0_16 */ /* SODIMM 172 */
		>;
	};

	/* PMIC_ETH_RESET# */
	pinctrl_eth_reset: main-gpio0-17-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0044, PIN_INPUT, 7) /* (N24) GPMC0_AD2.GPIO0_17 */
		>;
	};

	/* PMIC_BRIDGE_RESET# */
	pinctrl_bridge_reset: main-gpio0-20-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0050, PIN_INPUT, 7) /* (P22) GPMC0_AD5.GPIO0_20 */
		>;
	};

	/* PMIC_VSEL_SD */
	pinctrl_vsel_sd: main-gpio0-21-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0054, PIN_INPUT, 7) /* (P21) GPMC0_AD6.GPIO0_21 */
		>;
	};

	/* PMIC_EN_WIFI */
	pinctrl_wifi_en: main-gpio0-22-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0058, PIN_INPUT, 7) /* (R23) GPMC0_AD7.GPIO0_22 */
		>;
	};

	/* PMIC_ETH_INT# */
	pinctrl_eth_int: main-gpio0-25-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0064, PIN_INPUT_PULLUP, 7) /* (T25) GPMC0_AD10.GPIO0_25 */
		>;
	};

	/* WiFi_WKUP_BT# */
	pinctrl_wifi_wkup_bt: main-gpio0-26-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0068, PIN_INPUT, 7) /* (R21) GPMC0_AD11.GPIO0_26 */
		>;
	};

	/* WiFi_WKUP_WLAN# */
	pinctrl_wifi_wkup_wlan: main-gpio0-27-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x006c, PIN_INPUT, 7) /* (T22) GPMC0_AD12.GPIO0_27 */
		>;
	};

	/* Verdin SD_1_PWR_EN */
	pinctrl_sd1_pwr_en: main-gpio0-29-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0074, PIN_INPUT, 7) /* (U25) GPMC0_AD14.GPIO0_29 */ /* SODIMM 76 */
		>;
	};

	/* Verdin DSI_1_BKL_EN */
	pinctrl_dsi1_bkl_en: main-gpio0-30-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0078, PIN_INPUT, 7) /* (U24) GPMC0_AD15.GPIO0_30 */ /* SODIMM 21 */
		>;
	};

	/* Verdin CTRL_SLEEP_MOCI# */
	pinctrl_ctrl_sleep_moci: main-gpio0-31-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x007c, PIN_INPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */ /* SODIMM 256 */
		>;
	};

	/* Verdin CTRL_WAKE1_MICO# */
	pinctrl_ctrl_wake1_mico: main-gpio0-32-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0084, PIN_INPUT_PULLUP, 7) /* (L23) GPMC0_ADVn_ALE.GPIO0_32 */ /* SODIMM 252 */
		>;
	};

	/* Verdin I2S_2_D_OUT as GPIO (conflict with Verdin I2S_2 interface) */
	pinctrl_i2s_2_d_out_gpio: main-gpio0-34-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x008c, PIN_INPUT, 7) /* (L25) GPMC0_WEn.GPIO0_34 */ /* SODIMM 46 */
		>;
	};

	/* Verdin I2S_2_BCLK as GPIO (conflict with Verdin I2S_2 interface) */
	pinctrl_i2s_2_bclk_gpio: main-gpio0-35-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0090, PIN_INPUT, 7) /* (M24) GPMC0_BE0n_CLE.GPIO0_35 */ /* SODIMM 42 */
		>;
	};

	/* Verdin GPIO_6 */
	pinctrl_gpio_6: main-gpio0-36-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0094, PIN_INPUT, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */ /* SODIMM 218 */
		>;
	};

	/* Verdin ETH_2_RGMII_INT# */
	pinctrl_eth2_rgmii_int: main-gpio0-38-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x009c, PIN_INPUT, 7) /* (V25) GPMC0_WAIT1.GPIO0_38 */ /* SODIMM 189 */
		>;
	};

	/* Verdin GPIO_5 */
	pinctrl_gpio_5: main-gpio0-40-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */ /* SODIMM 216 */
		>;
	};

	/* Verdin GPIO_7 */
	pinctrl_gpio_7: main-gpio0-41-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00a8, PIN_INPUT, 7) /* (M21) GPMC0_CSn0.GPIO0_41 */ /* SODIMM 220 */
		>;
	};

	/* Verdin GPIO_8 */
	pinctrl_gpio_8: main-gpio0-42-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */ /* SODIMM 222 */
		>;
	};

	/* Verdin USB_1_OC# */
	pinctrl_usb1_oc: main-gpio0-71-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0124, PIN_INPUT, 7) /* (A23) MMC2_SDCD.GPIO0_71 */ /* SODIMM 157 */
		>;
	};

	/* Verdin USB_2_OC# */
	pinctrl_usb2_oc: main-gpio0-72-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0128, PIN_INPUT, 7) /* (B23) MMC2_SDWP.GPIO0_72 */ /* SODIMM 187 */
		>;
	};

	/* Verdin PWM_3_DSI as GPIO */
	pinctrl_pwm3_dsi_gpio: main-gpio1-17-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01bc, PIN_INPUT, 7) /* (A14) SPI0_CLK.GPIO1_17 */ /* SODIMM 19 */
		>;
	};

	/* Verdin QSPI_1_DQS as GPIO */
	pinctrl_qspi1_dqs_gpio: main-gpio1-18-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01c0, PIN_INPUT, 7) /* (B13) SPI0_D0.GPIO1_18 */ /* SODIMM 66 */
		>;
	};

	/* Verdin USB_1_ID */
	pinctrl_usb0_id: main-gpio1-19-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01c4, PIN_INPUT, 7) /* (B14) SPI0_D1.GPIO1_19 */ /* SODIMM 161 */
		>;
	};

	/* Verdin DSI_1_INT# (pulled-up as active-low) */
	pinctrl_dsi1_int: main-gpio1-49-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0244, PIN_INPUT_PULLUP, 7) /* (C17) MMC1_SDWP.GPIO1_49 */ /* SODIMM 17 */
		>;
	};

	/* On-module I2C - PMIC_I2C */
	pinctrl_i2c0: main-i2c0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01e0, PIN_INPUT, 0) /* (B16) I2C0_SCL */ /* PMIC_I2C_SCL */
			AM62X_IOPAD(0x01e4, PIN_INPUT, 0) /* (A16) I2C0_SDA */ /* PMIC_I2C_SDA */
		>;
	};

	/* Verdin I2C_1 */
	pinctrl_i2c1: main-i2c1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ /* SODIMM 14 */
			AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ /* SODIMM 12 */
		>;
	};

	/* Verdin I2C_2_DSI */
	pinctrl_i2c2: main-i2c2-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00b0, PIN_INPUT, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */ /* SODIMM 55 */
			AM62X_IOPAD(0x00b4, PIN_INPUT, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */ /* SODIMM 53 */
		>;
	};

	/* Verdin I2C_4_CSI */
	pinctrl_i2c3: main-i2c3-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01d0, PIN_INPUT, 2) /* (A15) UART0_CTSn.I2C3_SCL */ /* SODIMM 95 */
			AM62X_IOPAD(0x01d4, PIN_INPUT, 2) /* (B15) UART0_RTSn.I2C3_SDA */ /* SODIMM 93 */
		>;
	};

	/* I2S_1_MCLK */
	pinctrl_i2s1_mclk: main-system-audio-ext-reflock1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00a0, PIN_OUTPUT, 1) /* (K25) GPMC0_WPn.AUDIO_EXT_REFCLK1 */ /* SODIMM 38 */
		>;
	};

	/* Verdin I2S_1 */
	pinctrl_mcasp0: main-mcasp0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01a4, PIN_INPUT,  0) /* (B20) MCASP0_ACLKX */ /* SODIMM 30 */
			AM62X_IOPAD(0x01a8, PIN_INPUT,  0) /* (D20) MCASP0_AFSX  */ /* SODIMM 32 */
			AM62X_IOPAD(0x01a0, PIN_OUTPUT, 0) /* (E18) MCASP0_AXR0  */ /* SODIMM 34 */
			AM62X_IOPAD(0x019c, PIN_INPUT,  0) /* (B18) MCASP0_AXR1  */ /* SODIMM 36 */
		>;
	};

	/* Verdin I2S_2 */
	pinctrl_mcasp1: main-mcasp1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0090, PIN_INPUT,  2) /* (M24) GPMC0_BE0n_CLE.MCASP1_ACLKX */ /* SODIMM 42 */
			AM62X_IOPAD(0x0098, PIN_INPUT,  2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX     */ /* SODIMM 44 */
			AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEn.MCASP1_AXR0       */ /* SODIMM 46 */
			AM62X_IOPAD(0x0088, PIN_INPUT,  2) /* (L24) GPMC0_OEn_REn.MCASP1_AXR1   */ /* SODIMM 48 */
		>;
	};

	/* Verdin CAN_1 */
	pinctrl_mcan0: main-mcan0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01dc, PIN_INPUT,  0) /* (E15) MCAN0_RX */ /* SODIMM 22 */
			AM62X_IOPAD(0x01d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */ /* SODIMM 20 */
		>;
	};

	/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
	pinctrl_mdio: main-mdio1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC  */ /* ETH_1_MDC,  SODIMM 193 */
			AM62X_IOPAD(0x15c, PIN_INPUT, 0)  /* (AB22) MDIO0_MDIO */ /* ETH_1_MDIO, SODIMM 191 */
		>;
	};

	/* On-module eMMC */
	pinctrl_sdhci0: main-mmc0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x220, PIN_INPUT, 0) /*  (Y3) MMC0_CMD  */
			AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK  */
			AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
			AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */
			AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */
			AM62X_IOPAD(0x208, PIN_INPUT, 0) /*  (Y4) MMC0_DAT3 */
			AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */
			AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */
			AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */
			AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */
		>;
	};

	/* Verdin SD_1 */
	pinctrl_sdhci1: main-mmc1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x23c, PIN_INPUT,        0) /* (A21) MMC1_CMD  */ /* SODIMM 74 */
			AM62X_IOPAD(0x234, PIN_INPUT,        0) /* (B22) MMC1_CLK  */ /* SODIMM 78 */
			AM62X_IOPAD(0x230, PIN_INPUT,        0) /* (A22) MMC1_DAT0 */ /* SODIMM 80 */
			AM62X_IOPAD(0x22c, PIN_INPUT,        0) /* (B21) MMC1_DAT1 */ /* SODIMM 82 */
			AM62X_IOPAD(0x228, PIN_INPUT,        0) /* (C21) MMC1_DAT2 */ /* SODIMM 70 */
			AM62X_IOPAD(0x224, PIN_INPUT,        0) /* (D22) MMC1_DAT3 */ /* SODIMM 72 */
			AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 0) /* (D17) MMC1_SDCD */ /* SODIMM 84 */
		>;
	};

	/* On-module Wi-Fi on WB SKUs, module-specific SDIO otherwise */
	pinctrl_sdhci2: main-mmc2-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x120, PIN_INPUT, 0) /* (C24) MMC2_CMD   */ /* WiFi_SDIO_CMD   */
			AM62X_IOPAD(0x118, PIN_INPUT, 0) /* (D25) MMC2_CLK   */ /* WiFi_SDIO_CLK   */
			AM62X_IOPAD(0x114, PIN_INPUT, 0) /* (B24) MMC2_DAT0  */ /* WiFi_SDIO_DATA0 */
			AM62X_IOPAD(0x110, PIN_INPUT, 0) /* (C25) MMC2_DAT1  */ /* WiFi_SDIO_DATA1 */
			AM62X_IOPAD(0x10c, PIN_INPUT, 0) /* (E23) MMC2_DAT2  */ /* WiFi_SDIO_DATA2 */
			AM62X_IOPAD(0x108, PIN_INPUT, 0) /* (D24) MMC2_DAT3  */ /* WiFi_SDIO_DATA3 */
			AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */
		>;
	};

	/* Verdin QSPI_1 */
	pinctrl_ospi0: main-ospi0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (H24) OSPI0_CLK  */ /* SODIMM 52 */
			AM62X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (F23) OSPI0_CSn0 */ /* SODIMM 54 */
			AM62X_IOPAD(0x0030, PIN_OUTPUT, 0) /* (G21) OSPI0_CSn1 */ /* SODIMM 64 */
			AM62X_IOPAD(0x000c, PIN_INPUT, 0)  /* (E25) OSPI0_D0   */ /* SODIMM 56 */
			AM62X_IOPAD(0x0010, PIN_INPUT, 0)  /* (G24) OSPI0_D1   */ /* SODIMM 58 */
			AM62X_IOPAD(0x0014, PIN_INPUT, 0)  /* (F25) OSPI0_D2   */ /* SODIMM 60 */
			AM62X_IOPAD(0x0018, PIN_INPUT, 0)  /* (F24) OSPI0_D3   */ /* SODIMM 62 */
		>;
	};

	/* Verdin ETH_1 RGMII (On-module PHY) */
	pinctrl_rgmii1: main-rgmii1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x14c, PIN_INPUT,  0) /* (AB17) RGMII1_RD0    */
			AM62X_IOPAD(0x150, PIN_INPUT,  0) /* (AC17) RGMII1_RD1    */
			AM62X_IOPAD(0x154, PIN_INPUT,  0) /* (AB16) RGMII1_RD2    */
			AM62X_IOPAD(0x158, PIN_INPUT,  0) /* (AA15) RGMII1_RD3    */
			AM62X_IOPAD(0x148, PIN_INPUT,  0) /* (AD17) RGMII1_RXC    */
			AM62X_IOPAD(0x144, PIN_INPUT,  0) /* (AE17) RGMII1_RX_CTL */
			AM62X_IOPAD(0x134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0    */
			AM62X_IOPAD(0x138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1    */
			AM62X_IOPAD(0x13c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2    */
			AM62X_IOPAD(0x140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3    */
			AM62X_IOPAD(0x130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC    */
			AM62X_IOPAD(0x12c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */
		>;
	};

	/* Verdin ETH_2 RGMII */
	pinctrl_rgmii2: main-rgmii2-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x184, PIN_INPUT,  0) /* (AE23) RGMII2_RD0    */ /* SODIMM 201 */
			AM62X_IOPAD(0x188, PIN_INPUT,  0) /* (AB20) RGMII2_RD1    */ /* SODIMM 203 */
			AM62X_IOPAD(0x18c, PIN_INPUT,  0) /* (AC21) RGMII2_RD2    */ /* SODIMM 205 */
			AM62X_IOPAD(0x190, PIN_INPUT,  0) /* (AE22) RGMII2_RD3    */ /* SODIMM 207 */
			AM62X_IOPAD(0x180, PIN_INPUT,  0) /* (AD23) RGMII2_RXC    */ /* SODIMM 197 */
			AM62X_IOPAD(0x17c, PIN_INPUT,  0) /* (AD22) RGMII2_RX_CTL */ /* SODIMM 199 */
			AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /*  (Y18) RGMII2_TD0    */ /* SODIMM 221 */
			AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1    */ /* SODIMM 219 */
			AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2    */ /* SODIMM 217 */
			AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3    */ /* SODIMM 215 */
			AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC    */ /* SODIMM 213 */
			AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */ /* SODIMM 211 */
		>;
	};

	/* Verdin SPI_1 */
	pinctrl_spi1: main-spi1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0020, PIN_INPUT, 1) /* (J25) OSPI0_D5.SPI1_CLK */ /* SODIMM 196 */
			AM62X_IOPAD(0x001c, PIN_INPUT, 1) /* (J23) OSPI0_D4.SPI1_CS0 */ /* SODIMM 202 */
			AM62X_IOPAD(0x0024, PIN_INPUT, 1) /* (H25) OSPI0_D6.SPI1_D0  */ /* SODIMM 200 */
			AM62X_IOPAD(0x0028, PIN_INPUT, 1) /* (J22) OSPI0_D7.SPI1_D1  */ /* SODIMM 198 */
		>;
	};

	/* ETH_25MHz_CLK */
	pinctrl_eth_clock: main-system-clkout0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01f0, PIN_OUTPUT_PULLUP, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */
		>;
	};

	/* PMIC_EXTINT# */
	pinctrl_pmic_extint: main-system-extint-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01f4, PIN_INPUT, 0) /* (D16) EXTINTn */
		>;
	};

	/* Verdin UART_3, used as the Linux console */
	pinctrl_uart0: main-uart0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x1c8, PIN_INPUT_PULLUP, 0) /* (D14) UART0_RXD */ /* SODIMM 147 */
			AM62X_IOPAD(0x1cc, PIN_OUTPUT,       0) /* (E14) UART0_TXD */ /* SODIMM 149 */
		>;
	};

	/* Verdin UART_1 */
	pinctrl_uart1: main-uart1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0194, PIN_INPUT_PULLUP, 2) /* (B19) MCASP0_AXR3.UART1_CTSn */ /* SODIMM 135 */
			AM62X_IOPAD(0x0198, PIN_OUTPUT,       2) /* (A19) MCASP0_AXR2.UART1_RTSn */ /* SODIMM 133 */
			AM62X_IOPAD(0x01ac, PIN_INPUT_PULLUP, 2) /* (E19) MCASP0_AFSR.UART1_RXD  */ /* SODIMM 129 */
			AM62X_IOPAD(0x01b0, PIN_OUTPUT,       2) /* (A20) MCASP0_ACLKR.UART1_TXD */ /* SODIMM 131 */
		>;
	};

	/* Bluetooth on WB SKUs, module-specific UART otherwise */
	pinctrl_uart5: main-uart5-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0008, PIN_INPUT_PULLUP, 5) /* (J24) OSPI0_DQS.UART5_CTSn    */ /* WiFi_UART_CTS */
			AM62X_IOPAD(0x0004, PIN_OUTPUT,       5) /* (G25) OSPI0_LBCLKO.UART5_RTSn */ /* WiFi_UART_RTS */
			AM62X_IOPAD(0x0034, PIN_INPUT_PULLUP, 5) /* (H21) OSPI0_CSn2.UART5_RXD    */ /* WiFi_UART_RXD */
			AM62X_IOPAD(0x0038, PIN_OUTPUT,       5) /* (E24) OSPI0_CSn3.UART5_TXD    */ /* WiFi_UART_TXD */
		>;
	};

	/* Verdin USB_1 */
	pinctrl_usb0: main-usb0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0254, PIN_OUTPUT, 0) /* (C20) USB0_DRVVBUS */ /* SODIMM 155 */
		>;
	};

	/* Verdin USB_2 */
	pinctrl_usb1: main-usb1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */ /* SODIMM 185 */
		>;
	};

	/* DSS VOUT0 RGB */
	pinctrl_parallel_rgb: main-vout-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC            */
			AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC            */
			AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK             */
			AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /*  (Y20) VOUT0_DE               */
			AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /*  (U22) VOUT0_DATA0            */
			AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /*  (V24) VOUT0_DATA1            */
			AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /*  (W25) VOUT0_DATA2            */
			AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /*  (W24) VOUT0_DATA3            */
			AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /*  (Y25) VOUT0_DATA4            */
			AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /*  (Y24) VOUT0_DATA5            */
			AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /*  (Y23) VOUT0_DATA6            */
			AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7            */
			AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /*  (V21) VOUT0_DATA8            */
			AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /*  (W21) VOUT0_DATA9            */
			AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /*  (V20) VOUT0_DATA10           */
			AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11           */
			AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12           */
			AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13           */
			AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /*  (Y22) VOUT0_DATA14           */
			AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15           */
			AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /*  (R24) GPMC0_AD8.VOUT0_DATA16 */
			AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /*  (R25) GPMC0_AD9.VOUT0_DATA17 */
		>;
	};
};

&mcu_pmx0 {
	/* Verdin PCIE_1_RESET# */
	pinctrl_pcie_1_reset: mcu-gpio0-0-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0000, PIN_INPUT, 7) /* (E8) MCU_SPI0_CS0.MCU_GPIO0_0 */ /* SODIMM 244 */
		>;
	};

	/* Verdin GPIO_1 */
	pinctrl_gpio_1: mcu-gpio0-1-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0004, PIN_INPUT, 7) /* (B8) MCU_SPI0_CS1.MCU_GPIO0_1 */ /* SODIMM 206 */
		>;
	};

	/* Verdin GPIO_2 */
	pinctrl_gpio_2: mcu-gpio0-2-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0008, PIN_INPUT, 7) /* (A7) MCU_SPI0_CLK.MCU_GPIO0_2 */ /* SODIMM 208 */
		>;
	};

	/* Verdin GPIO_3 */
	pinctrl_gpio_3: mcu-gpio0-3-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x000c, PIN_INPUT, 7) /* (D9) MCU_SPI0_D0.MCU_GPIO0_3 */ /* SODIMM 210 */
		>;
	};

	/* Verdin GPIO_4 */
	pinctrl_gpio_4: mcu-gpio0-4-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0010, PIN_INPUT, 7) /* (C9) MCU_SPI0_D1.MCU_GPIO0_4 */ /* SODIMM 212 */
		>;
	};

	/* Verdin I2C_3_HDMI */
	pinctrl_mcu_i2c0: mcu-i2c0-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 0) /*  (A8) MCU_I2C0_SCL */ /* SODIMM 59 */
			AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 0) /* (D10) MCU_I2C0_SDA */ /* SODIMM 57 */
		>;
	};

	/* Verdin CAN_2 */
	pinctrl_mcu_mcan0: mcu-mcan0-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0038, PIN_INPUT,  0) /* (B3) MCU_MCAN0_RX */ /* SODIMM 26 */
			AM62X_MCU_IOPAD(0x0034, PIN_OUTPUT, 0) /* (D6) MCU_MCAN0_TX */ /* SODIMM 24 */
		>;
	};

	/* Verdin UART_4 - Reserved to Cortex-M4 */
	pinctrl_mcu_uart0: mcu-uart0-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0014, PIN_INPUT_PULLUP, 0) /* (B5) MCU_UART0_RXD */ /* SODIMM 151 */
			AM62X_MCU_IOPAD(0x0018, PIN_OUTPUT,       0) /* (A5) MCU_UART0_TXD */ /* SODIMM 153 */
		>;
	};

	/* Verdin CSI_1_MCLK */
	pinctrl_csi1_mclk: wkup-clkout0-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (A12) WKUP_CLKOUT0 */ /* SODIMM 91 */
		>;
	};

	/* Verdin UART_2 */
	pinctrl_wkup_uart0: wkup-uart0-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x002c, PIN_INPUT_PULLUP, 0) /* (C6) WKUP_UART0_CTSn */ /* SODIMM 143 */
			AM62X_MCU_IOPAD(0x0030, PIN_OUTPUT,       0) /* (A4) WKUP_UART0_RTSn */ /* SODIMM 141 */
			AM62X_MCU_IOPAD(0x0024, PIN_INPUT_PULLUP, 0) /* (B4) WKUP_UART0_RXD  */ /* SODIMM 137 */
			AM62X_MCU_IOPAD(0x0028, PIN_OUTPUT,       0) /* (C5) WKUP_UART0_TXD  */ /* SODIMM 139 */
		>;
	};
};

/* VERDIN I2S_1_MCLK */
&audio_refclk1 {
	assigned-clock-rates = <25000000>;
};

&cpsw3g {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rgmii1>;
	status = "disabled";
};

/* Verdin ETH_1 (On-module PHY) */
&cpsw_port1 {
	phy-handle = <&cpsw3g_phy0>;
	phy-mode = "rgmii-rxid";
	status = "disabled";
};

/* Verdin ETH_2_RGMII */
&cpsw_port2 {
	status = "disabled";
};

/* MDIO, shared by Verdin ETH_1 (On-module PHY) and Verdin ETH_2_RGMII */
&cpsw3g_mdio {
	assigned-clocks = <&k3_clks 157 20>;
	assigned-clock-parents = <&k3_clks 157 22>;
	assigned-clock-rates = <25000000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_eth_clock>, <&pinctrl_mdio>;
	status = "disabled";

	cpsw3g_phy0: ethernet-phy@0 {
		compatible = "ethernet-phy-id2000.a231";
		reg = <0>;
		interrupt-parent = <&main_gpio0>;
		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_eth_int>, <&pinctrl_eth_reset>;
		reset-gpios = <&main_gpio0 17 GPIO_ACTIVE_LOW>;
		reset-assert-us = <10>;
		reset-deassert-us = <1000>;
		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
	};
};

&dss {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_parallel_rgb>;
	status = "disabled";
};

&dss_ports {
	#address-cells = <1>;
	#size-cells = <0>;

	/* VP2: DPI Output */
	port@1 {
		reg = <1>;

		dpi_out: endpoint {
			remote-endpoint = <&rgb_in>;
		};
	};
};

/* Verdin PWM_1, PWM_2 */
&epwm0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_epwm0_a>, <&pinctrl_epwm0_b>;
	status = "disabled";
};

/* Verdin PWM_3_DSI */
&epwm1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_epwm1_a>;
	status = "disabled";
};

&main_gpio0 {
	gpio-line-names =
		"SODIMM_52", /* 0 */
		"",
		"",
		"SODIMM_56",
		"SODIMM_58",
		"SODIMM_60",
		"SODIMM_62",
		"",
		"",
		"",
		"", /* 10 */
		"SODIMM_54",
		"SODIMM_64",
		"",
		"",
		"SODIMM_174",
		"SODIMM_172",
		"",
		"",
		"",
		"", /* 20 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"SODIMM_76",
		"SODIMM_21", /* 30 */
		"SODIMM_256",
		"SODIMM_252",
		"",
		"SODIMM_46",
		"SODIMM_42",
		"SODIMM_218",
		"",
		"SODIMM_189",
		"",
		"SODIMM_216", /* 40 */
		"SODIMM_220",
		"SODIMM_222",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 50 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 60 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 70 */
		"SODIMM_157",
		"SODIMM_187",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 80 */
		"",
		"",
		"",
		"",
		"",
		"";

	verdin_ctrl_sleep_moci: ctrl-sleep-moci-hog {
		gpio-hog;
		/* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
		gpios = <31 GPIO_ACTIVE_HIGH>;
		line-name = "CTRL_SLEEP_MOCI#";
		output-high;
	};
};

&main_gpio1 {
	gpio-line-names =
		"", /* 0 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 10 */
		"",
		"",
		"",
		"",
		"SODIMM_15",
		"SODIMM_16",
		"SODIMM_19",
		"SODIMM_66",
		"SODIMM_161",
		"", /* 20 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 30 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 40 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"SODIMM_17",
		"", /* 50 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 60 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 70 */
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"", /* 80 */
		"",
		"",
		"",
		"",
		"",
		"",
		"";
};

/* On-module I2C - PMIC_I2C */
&main_i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c0>;
	clock-frequency = <400000>;
	status = "okay";

	dsi_bridge: dsi@e {
		compatible = "toshiba,tc358778";
		reg = <0xe>;
		assigned-clocks = <&k3_clks 157 20>;
		assigned-clock-parents = <&k3_clks 157 22>;
		assigned-clock-rates = <25000000>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_bridge_reset>;
		clocks = <&k3_clks 157 20>;
		clock-names = "refclk";
		reset-gpios = <&main_gpio0 20 GPIO_ACTIVE_LOW>;
		vddc-supply = <&reg_1v2_dsi>;
		vddmipi-supply = <&reg_1v2_dsi>;
		vddio-supply = <&reg_1v8_dsi>;
		status = "disabled";

		dsi_bridge_ports: ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				rgb_in: endpoint {
					data-lines = <18>;
					remote-endpoint = <&dpi_out>;
				};
			};

			port@1 {
				reg = <1>;
			};
		};
	};

	pmic@30 {
		compatible = "ti,tps65219";
		reg = <0x30>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pmic_extint>;
		interrupt-parent = <&gic500>;
		interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;

		buck1-supply = <&reg_vsodimm>;
		buck2-supply = <&reg_vsodimm>;
		buck3-supply = <&reg_vsodimm>;
		ldo1-supply = <&reg_3v3>;
		ldo2-supply = <&reg_1v8>;
		ldo3-supply = <&reg_3v3>;
		ldo4-supply = <&reg_3v3>;
		system-power-controller;
		ti,power-button;

		regulators {
			reg_vdd_core: buck1 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <850000>;
				regulator-min-microvolt = <850000>;
				regulator-name = "+VDD_CORE (PMIC BUCK1)";
			};

			reg_1v8: buck2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <1800000>;
				regulator-min-microvolt = <1800000>;
				regulator-name = "+V1.8 (PMIC BUCK2)"; /* On-module and SODIMM 214 */
			};

			reg_vdd_ddr: buck3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <1100000>;
				regulator-min-microvolt = <1100000>;
				regulator-name = "+VDD_DDR (PMIC BUCK3)";
			};

			reg_sd_3v3_1v8: ldo1 {
				regulator-allow-bypass;
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <3300000>;
				regulator-min-microvolt = <3300000>;
				regulator-name = "+V3.3_1.8_SD (PMIC LDO1)";
			};

			reg_vddr_core: ldo2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <850000>;
				regulator-min-microvolt = <850000>;
				regulator-name = "+VDDR_CORE (PMIC LDO2)";
			};

			reg_1v8a: ldo3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <1800000>;
				regulator-min-microvolt = <1800000>;
				regulator-name = "+V1.8A (PMIC LDO3)";
			};

			reg_eth_2v5: ldo4 {
				regulator-always-on;
				regulator-boot-on;
				regulator-max-microvolt = <2500000>;
				regulator-min-microvolt = <2500000>;
				regulator-name = "+V2.5_ETH (PMIC LDO4)";
			};
		};
	};

	rtc_i2c: rtc@32 {
		compatible = "epson,rx8130";
		reg = <0x32>;
	};

	sensor@48 {
		compatible = "ti,tmp1075";
		reg = <0x48>;
	};

	adc@49 {
		compatible = "ti,ads1015";
		reg = <0x49>;
		#address-cells = <1>;
		#size-cells = <0>;

		/* Verdin PMIC_I2C (ADC_4 - ADC_3) */
		channel@0 {
			reg = <0>;
			ti,datarate = <4>;
			ti,gain = <2>;
		};

		/* Verdin PMIC_I2C (ADC_4 - ADC_1) */
		channel@1 {
			reg = <1>;
			ti,datarate = <4>;
			ti,gain = <2>;
		};

		/* Verdin PMIC_I2C (ADC_3 - ADC_1) */
		channel@2 {
			reg = <2>;
			ti,datarate = <4>;
			ti,gain = <2>;
		};

		/* Verdin PMIC_I2C (ADC_2 - ADC_1) */
		channel@3 {
			reg = <3>;
			ti,datarate = <4>;
			ti,gain = <2>;
		};

		/* Verdin PMIC_I2C ADC_4 */
		channel@4 {
			reg = <4>;
			ti,datarate = <4>;
			ti,gain = <2>;
		};

		/* Verdin PMIC_I2C ADC_3 */
		channel@5 {
			reg = <5>;
			ti,datarate = <4>;
			ti,gain = <2>;
		};

		/* Verdin PMIC_I2C ADC_2 */
		channel@6 {
			reg = <6>;
			ti,datarate = <4>;
			ti,gain = <2>;
		};

		/* Verdin PMIC_I2C ADC_1 */
		channel@7 {
			reg = <7>;
			ti,datarate = <4>;
			ti,gain = <2>;
		};
	};

	eeprom@50 {
		compatible = "st,24c02", "atmel,24c02";
		pagesize = <16>;
		reg = <0x50>;
	};
};

/* Verdin I2C_1 */
&main_i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c1>;
	status = "disabled";
};

/* Verdin I2C_2_DSI */
&main_i2c2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2>;
	status = "disabled";
};

/* Verdin I2C_4_CSI */
&main_i2c3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3>;
	status = "disabled";
};

&mailbox0_cluster0 {
	mbox_m4_0: mbox-m4-0 {
		ti,mbox-rx = <0 0 0>;
		ti,mbox-tx = <1 0 0>;
	};
};

/* Verdin CAN_1 */
&main_mcan0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mcan0>;
	status = "disabled";
};

/* Verdin SPI_1 */
&main_spi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spi1>;
	ti,pindir-d0-out-d1-in;
	status = "disabled";
};

/* Verdin UART_3, used as the Linux console */
&main_uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart0>;
	status = "disabled";
};

/* Verdin UART_1 */
&main_uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	status = "disabled";
};

/* Verdin I2S_1 */
&mcasp0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mcasp0>;
	op-mode = <0>; /* I2S mode */
	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
	       1 2 0 0
	       0 0 0 0
	       0 0 0 0
	       0 0 0 0
	>;
	tdm-slots = <2>;
	rx-num-evt = <32>;
	tx-num-evt = <32>;
	#sound-dai-cells = <0>;
	status = "disabled";
};

/* Verdin I2S_2 */
&mcasp1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mcasp1>;
	op-mode = <0>; /* I2S mode */
	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
	       1 2 0 0
	       0 0 0 0
	       0 0 0 0
	       0 0 0 0
	>;
	tdm-slots = <2>;
	rx-num-evt = <32>;
	tx-num-evt = <32>;
	#sound-dai-cells = <0>;
	status = "disabled";
};

/* Verdin I2C_3_HDMI */
&mcu_i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mcu_i2c0>;
	status = "disabled";
};

&mcu_gpio0 {
	gpio-line-names =
		"SODIMM_244",
		"SODIMM_206",
		"SODIMM_208",
		"SODIMM_210",
		"SODIMM_212",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"";
};

/* Verdin CAN_2 */
&mcu_mcan0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mcu_mcan0>;
	status = "disabled";
};

/* Verdin UART_4 - Cortex-M4 UART */
&mcu_uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mcu_uart0>;
	status = "disabled";
};

/* Verdin QSPI_1 */
&ospi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ospi0>;
	status = "disabled";
};

/* On-module eMMC */
&sdhci0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdhci0>;
	non-removable;
	ti,driver-strength-ohm = <50>;
	status = "okay";
};

/* Verdin SD_1 */
&sdhci1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdhci1>;
	disable-wp;
	ti,driver-strength-ohm = <50>;
	vmmc-supply = <&reg_sdhc1_vmmc>;
	vqmmc-supply = <&reg_sdhc1_vqmmc>;
	status = "disabled";
};

/* Verdin USB_1 */
&usbss0 {
	ti,vbus-divider;
	status = "disabled";
};

/* TODO: role swich using ID pin */
&usb0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb0_id>;
	status = "disabled";
};

/* Verdin USB_2 */
&usbss1 {
	ti,vbus-divider;
	status = "disabled";
};

&usb1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb1>;
	dr_mode = "host";
	status = "disabled";
};

/* Verdin UART_2 */
&wkup_uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_wkup_uart0>;
	status = "disabled";
};
