// 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 {
		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 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 */
		>;
	};
};

&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>;
	};
};

/* 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>;

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

			port@0 {
				reg = <0>;

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

			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 CAN_2 - Reserved to Cortex-M4 */

/* 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 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";
};
