// SPDX-License-Identifier: GPL-2.0-only OR MIT
/*
 * https://beagleplay.org/
 *
 * Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
 * Copyright (C) 2022-2024 Robert Nelson, BeagleBoard.org Foundation
 */

/dts-v1/;

#include <dt-bindings/leds/common.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "k3-am625.dtsi"

/ {
	compatible = "beagle,am625-beagleplay", "ti,am625";
	model = "BeagleBoard.org BeaglePlay";

	aliases {
		ethernet0 = &cpsw_port1;
		ethernet1 = &cpsw_port2;
		gpio0 = &main_gpio0;
		gpio1 = &main_gpio1;
		gpio2 = &mcu_gpio0;
		i2c0 = &main_i2c0;
		i2c1 = &main_i2c1;
		i2c2 = &main_i2c2;
		i2c3 = &main_i2c3;
		i2c4 = &wkup_i2c0;
		i2c5 = &mcu_i2c0;
		mmc0 = &sdhci0;
		mmc1 = &sdhci1;
		mmc2 = &sdhci2;
		rtc0 = &rtc;
		serial0 = &main_uart5;
		serial1 = &main_uart6;
		serial2 = &main_uart0;
		usb0 = &usb0;
		usb1 = &usb1;
	};

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

	memory@80000000 {
		bootph-pre-ram;
		device_type = "memory";
		/* 2G RAM */
		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
	};

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

		ramoops: ramoops@9ca00000 {
			compatible = "ramoops";
			reg = <0x00 0x9ca00000 0x00 0x00100000>;
			record-size = <0x8000>;
			console-size = <0x8000>;
			ftrace-size = <0x00>;
			pmsg-size = <0x8000>;
		};

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

		secure_ddr: optee@9e800000 {
			reg = <0x00 0x9e800000 0x00 0x01800000>;
			no-map;
		};

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

	vsys_5v0: regulator-1 {
		bootph-all;
		compatible = "regulator-fixed";
		regulator-name = "vsys_5v0";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	vdd_3v3: regulator-2 {
		/* output of TLV62595DMQR-U12 */
		bootph-all;
		compatible = "regulator-fixed";
		regulator-name = "vdd_3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vsys_5v0>;
		regulator-always-on;
		regulator-boot-on;
	};

	wlan_en: regulator-3 {
		/* OUTPUT of SN74AVC2T244DQMR */
		compatible = "regulator-fixed";
		regulator-name = "wlan_en";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		enable-active-high;
		regulator-always-on;
		vin-supply = <&vdd_3v3>;
		gpio = <&main_gpio0 38 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_en_pins_default>;
	};

	vdd_3v3_sd: regulator-4 {
		/* output of TPS22918DBVR-U21 */
		bootph-all;
		pinctrl-names = "default";
		pinctrl-0 = <&vdd_3v3_sd_pins_default>;

		compatible = "regulator-fixed";
		regulator-name = "vdd_3v3_sd";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		enable-active-high;
		regulator-always-on;
		vin-supply = <&vdd_3v3>;
		gpio = <&main_gpio1 19 GPIO_ACTIVE_HIGH>;
	};

	vdd_sd_dv: regulator-5 {
		bootph-all;
		compatible = "regulator-gpio";
		regulator-name = "sd_hs200_switch";
		pinctrl-names = "default";
		pinctrl-0 = <&vdd_sd_dv_pins_default>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		vin-supply = <&ldo1_reg>;
		gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
		states = <1800000 0x0>,
			 <3300000 0x1>;
	};

	leds {
		bootph-all;
		compatible = "gpio-leds";

		led-0 {
			bootph-all;
			gpios = <&main_gpio0 3 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			function = LED_FUNCTION_HEARTBEAT;
			default-state = "off";
		};

		led-1 {
			bootph-all;
			gpios = <&main_gpio0 4 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "disk-activity";
			function = LED_FUNCTION_DISK_ACTIVITY;
			default-state = "keep";
		};

		led-2 {
			bootph-all;
			gpios = <&main_gpio0 5 GPIO_ACTIVE_HIGH>;
			function = LED_FUNCTION_CPU;
		};

		led-3 {
			bootph-all;
			gpios = <&main_gpio0 6 GPIO_ACTIVE_HIGH>;
			function = LED_FUNCTION_LAN;
		};

		led-4 {
			bootph-all;
			gpios = <&main_gpio0 9 GPIO_ACTIVE_HIGH>;
			function = LED_FUNCTION_WLAN;
		};
	};

	gpio_keys: gpio-keys {
		compatible = "gpio-keys";
		autorepeat;
		pinctrl-names = "default";
		pinctrl-0 = <&usr_button_pins_default>;

		usr: button-usr {
			label = "User Key";
			linux,code = <BTN_0>;
			gpios = <&main_gpio0 18 GPIO_ACTIVE_LOW>;
		};

	};

	hdmi0: connector-hdmi {
		compatible = "hdmi-connector";
		label = "hdmi";
		type = "a";
		port {
			hdmi_connector_in: endpoint {
				remote-endpoint = <&it66121_out>;
			};
		};
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "it66121 HDMI";
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&hdmi_dailink_master>;
		simple-audio-card,frame-master = <&hdmi_dailink_master>;

		hdmi_dailink_master: simple-audio-card,cpu {
			sound-dai = <&mcasp1>;
			system-clock-direction-out;
		};

		simple-audio-card,codec {
			sound-dai = <&it66121>;
		};
	};

};

&main_pmx0 {
	gpio0_pins_default: gpio0-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0004, PIN_INPUT, 7) /* (G25) OSPI0_LBCLKO.GPIO0_1 */
			AM62X_IOPAD(0x0008, PIN_INPUT, 7) /* (J24) OSPI0_DQS.GPIO0_2 */
			AM62X_IOPAD(0x000c, PIN_INPUT, 7) /* (E25) OSPI0_D0.GPIO0_3 */
			AM62X_IOPAD(0x0010, PIN_INPUT, 7) /* (G24) OSPI0_D1.GPIO0_4 */
			AM62X_IOPAD(0x0014, PIN_INPUT, 7) /* (F25) OSPI0_D2.GPIO0_5 */
			AM62X_IOPAD(0x0018, PIN_INPUT, 7) /* (F24) OSPI0_D3.GPIO0_6 */
			AM62X_IOPAD(0x0024, PIN_INPUT, 7) /* (H25) OSPI0_D6.GPIO0_9 */
			AM62X_IOPAD(0x0028, PIN_INPUT, 7) /* (J22) OSPI0_D7.GPIO0_10 */
			AM62X_IOPAD(0x002c, PIN_INPUT, 7) /* (F23) OSPI0_CSn0.GPIO0_11 */
			AM62X_IOPAD(0x0030, PIN_INPUT, 7) /* (G21) OSPI0_CSn1.GPIO0_12 */
			AM62X_IOPAD(0x0034, PIN_INPUT, 7) /* (H21) OSPI0_CSn2.GPIO0_13 */
			AM62X_IOPAD(0x0038, PIN_INPUT, 7) /* (E24) OSPI0_CSn3.GPIO0_14 */
			AM62X_IOPAD(0x00a4, PIN_INPUT, 7) /* (M22) GPMC0_DIR.GPIO0_40 */
			AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */
		>;
	};

	vdd_sd_dv_pins_default: vdd-sd-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0244, PIN_OUTPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */
		>;
	};

	usr_button_pins_default: usr-button-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0048, PIN_INPUT, 7) /* (N25) GPMC0_AD3.GPIO0_18 */
		>;
	};

	grove_pins_default: grove-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */
			AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */
		>;
	};

	local_i2c_pins_default: local-i2c-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */
			AM62X_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */
		>;
	};

	i2c2_1v8_pins_default: i2c2-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */
			AM62X_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
		>;
	};

	mdio0_pins_default: mdio0-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
			AM62X_IOPAD(0x015c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
		>;
	};

	rgmii1_pins_default: rgmii1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x014c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
			AM62X_IOPAD(0x0150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
			AM62X_IOPAD(0x0154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
			AM62X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
			AM62X_IOPAD(0x0148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
			AM62X_IOPAD(0x0144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
			AM62X_IOPAD(0x0134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */
			AM62X_IOPAD(0x0138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */
			AM62X_IOPAD(0x013c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */
			AM62X_IOPAD(0x0140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */
			AM62X_IOPAD(0x0130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */
			AM62X_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */
		>;
	};

	emmc_pins_default: emmc-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
			AM62X_IOPAD(0x0218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
			AM62X_IOPAD(0x0214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
			AM62X_IOPAD(0x0210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */
			AM62X_IOPAD(0x020c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */
			AM62X_IOPAD(0x0208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */
			AM62X_IOPAD(0x0204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */
			AM62X_IOPAD(0x0200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */
			AM62X_IOPAD(0x01fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */
			AM62X_IOPAD(0x01f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */
		>;
	};

	vdd_3v3_sd_pins_default: vdd-3v3-sd-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01c4, PIN_INPUT, 7) /* (B14) SPI0_D1_GPIO1_19 */
		>;
	};

	sd_pins_default: sd-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x023c, PIN_INPUT, 0) /* (A21) MMC1_CMD */
			AM62X_IOPAD(0x0234, PIN_INPUT, 0) /* (B22) MMC1_CLK */
			AM62X_IOPAD(0x0230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */
			AM62X_IOPAD(0x022c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */
			AM62X_IOPAD(0x0228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */
			AM62X_IOPAD(0x0224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */
			AM62X_IOPAD(0x0240, PIN_INPUT, 7) /* (D17) MMC1_SDCD.GPIO1_48 */
		>;
	};

	wifi_pins_default: wifi-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0120, PIN_INPUT, 0) /* (C24) MMC2_CMD */
			AM62X_IOPAD(0x0118, PIN_INPUT, 0) /* (D25) MMC2_CLK */
			AM62X_IOPAD(0x0114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */
			AM62X_IOPAD(0x0110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */
			AM62X_IOPAD(0x010c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */
			AM62X_IOPAD(0x0108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */
			AM62X_IOPAD(0x0124, PIN_INPUT, 0) /* (A23) MMC2_SDCD */
			AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */
		>;
	};

	wifi_en_pins_default: wifi-en-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x009c, PIN_OUTPUT, 7) /* (V25) GPMC0_WAIT1.GPIO0_38 */
		>;
	};

	wifi_wlirq_pins_default: wifi-wlirq-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x00a8, PIN_INPUT, 7) /* (M21) GPMC0_CSn0.GPIO0_41 */
		>;
	};

	spe_pins_default: spe-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0168, PIN_INPUT, 1) /* (AE21) RGMII2_TXC.RMII2_CRS_DV */
			AM62X_IOPAD(0x0180, PIN_INPUT, 1) /* (AD23) RGMII2_RXC.RMII2_REF_CLK */
			AM62X_IOPAD(0x0184, PIN_INPUT, 1) /* (AE23) RGMII2_RD0.RMII2_RXD0 */
			AM62X_IOPAD(0x0188, PIN_INPUT, 1) /* (AB20) RGMII2_RD1.RMII2_RXD1 */
			AM62X_IOPAD(0x017c, PIN_INPUT, 1) /* (AD22) RGMII2_RX_CTL.RMII2_RX_ER */
			AM62X_IOPAD(0x016c, PIN_INPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */
			AM62X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */
			AM62X_IOPAD(0x0164, PIN_INPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */
			AM62X_IOPAD(0x018c, PIN_OUTPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */
			AM62X_IOPAD(0x0190, PIN_INPUT, 7) /* (AE22) RGMII2_RD3.GPIO1_6 */
			AM62X_IOPAD(0x01f0, PIN_OUTPUT, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */
		>;
	};

	mikrobus_i2c_pins_default: mikrobus-i2c-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01d0, PIN_INPUT_PULLUP, 2) /* (A15) UART0_CTSn.I2C3_SCL */
			AM62X_IOPAD(0x01d4, PIN_INPUT_PULLUP, 2) /* (B15) UART0_RTSn.I2C3_SDA */
		>;
	};

	mikrobus_uart_pins_default: mikrobus-uart-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01d8, PIN_INPUT, 1) /* (C15) MCAN0_TX.UART5_RXD */
			AM62X_IOPAD(0x01dc, PIN_OUTPUT, 1) /* (E15) MCAN0_RX.UART5_TXD */
		>;
	};

	mikrobus_spi_pins_default: mikrobus-spi-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01b0, PIN_INPUT, 1) /* (A20) MCASP0_ACLKR.SPI2_CLK */
			AM62X_IOPAD(0x01ac, PIN_INPUT, 1) /* (E19) MCASP0_AFSR.SPI2_CS0 */
			AM62X_IOPAD(0x0194, PIN_INPUT, 1) /* (B19) MCASP0_AXR3.SPI2_D0 */
			AM62X_IOPAD(0x0198, PIN_INPUT, 1) /* (A19) MCASP0_AXR2.SPI2_D1 */
		>;
	};

	mikrobus_gpio_pins_default: mikrobus-gpio-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x019c, PIN_INPUT, 7) /* (B18) MCASP0_AXR1.GPIO1_9 */
			AM62X_IOPAD(0x01a0, PIN_INPUT, 7) /* (E18) MCASP0_AXR0.GPIO1_10 */
			AM62X_IOPAD(0x01a8, PIN_INPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 */
		>;
	};

	main_uart0_pins_default: main-uart0-default-pins {
		bootph-all;
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01c8, PIN_INPUT, 0) /* (D14) UART0_RXD */
			AM62X_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */
		>;
	};

	wifi_debug_uart_pins_default: wifi-debug-uart-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x001c, PIN_INPUT, 3) /* (J23) OSPI0_D4.UART6_RXD */
			AM62X_IOPAD(0x0020, PIN_OUTPUT, 3) /* (J25) OSPI0_D5.UART6_TXD */
		>;
	};

	usb1_pins_default: usb1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0258, PIN_INPUT, 0) /* (F18) USB1_DRVVBUS */
		>;
	};

	pmic_irq_pins_default: pmic-irq-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (D16) EXTINTn */
		>;
	};

	hdmi_gpio_pins_default: hdmi-gpio-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0094, PIN_INPUT_PULLUP | PIN_DEBOUNCE_CONF6, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */
			AM62X_IOPAD(0x0054, PIN_OUTPUT_PULLUP, 7) /* (P21) GPMC0_AD6.GPIO0_21 */
		>;
	};

	mcasp_hdmi_pins_default: mcasp-hdmi-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0n_CLE.MCASP1_ACLKX */
			AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
			AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEn.MCASP1_AXR0 */
			AM62X_IOPAD(0x0088, PIN_INPUT, 2) /* (L24) GPMC0_OEn_REn.MCASP1_AXR1 */
			AM62X_IOPAD(0x0084, PIN_INPUT, 2) /* (L23) GPMC0_ADVn_ALE.MCASP1_AXR2 */
			AM62X_IOPAD(0x007c, PIN_INPUT, 2) /* (P25) GPMC0_CLK.MCASP1_AXR3 */
		>;
	};

	dss0_pins_default: dss0-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 */
			AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
			AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
			AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
			AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
			AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
			AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
		>;
	};
};

&mcu_pmx0 {
	i2c_qwiic_pins_default: i2c-qwiic-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 0) /* (A8) MCU_I2C0_SCL */
			AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 0) /* (D10) MCU_I2C0_SDA */
		>;
	};

	gbe_pmx_obsclk: gbe-pmx-obsclk-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0004, PIN_OUTPUT, 1) /* (B8) MCU_SPI0_CS1.MCU_OBSCLK0 */
		>;
	};

	i2c_csi_pins_default: i2c-csi-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x004c, PIN_INPUT_PULLUP, 0) /* (B9) WKUP_I2C0_SCL */
			AM62X_MCU_IOPAD(0x0050, PIN_INPUT_PULLUP, 0) /* (A9) WKUP_I2C0_SDA */
		>;
	};

	wifi_32k_clk: mcu-clk-out-default-pins {
		pinctrl-single,pins = <
			AM62X_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (A12) WKUP_CLKOUT0 */
		>;
	};
};

&a53_opp_table {
	/* Requires VDD_CORE to be at 0.85V */
	opp-1400000000 {
		opp-hz = /bits/ 64 <1400000000>;
		opp-supported-hw = <0x01 0x0004>;
	};
};

&wkup_i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c_csi_pins_default>;
	clock-frequency = <400000>;
	/* Enable with overlay for camera sensor */
};

&mcu_i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c_qwiic_pins_default>;
	clock-frequency = <100000>;
	status = "okay";
};

&usbss0 {
	bootph-all;
	ti,vbus-divider;
	status = "okay";
};

&usb0 {
	bootph-all;
	dr_mode = "peripheral";
};

&usbss1 {
	ti,vbus-divider;
	status = "okay";
};

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

&cpsw3g {
	pinctrl-names = "default";
	pinctrl-0 = <&rgmii1_pins_default>, <&spe_pins_default>,
		    <&gbe_pmx_obsclk>;
	assigned-clocks = <&k3_clks 157 70>, <&k3_clks 157 20>;
	assigned-clock-parents = <&k3_clks 157 72>, <&k3_clks 157 22>;
};

&cpsw_port1 {
	phy-mode = "rgmii-rxid";
	phy-handle = <&cpsw3g_phy0>;
};

&cpsw_port2 {
	phy-mode = "rmii";
	phy-handle = <&cpsw3g_phy1>;
};

&cpsw3g_mdio {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&mdio0_pins_default>;

	cpsw3g_phy0: ethernet-phy@0 {
		reg = <0>;
	};

	cpsw3g_phy1: ethernet-phy@1 {
		reg = <1>;
		reset-gpios = <&main_gpio1 5 GPIO_ACTIVE_LOW>;
		reset-assert-us = <25>;
		reset-deassert-us = <60000>; /* T2 */
	};
};

&main_gpio0 {
	bootph-all;
	pinctrl-names = "default";
	pinctrl-0 = <&gpio0_pins_default>;
	gpio-line-names = "BL_EN_3V3", "SPE_PO_EN", "RTC_INT",	/* 0-2 */
		"USR0", "USR1", "USR2", "USR3", "", "", "USR4",	/* 3-9 */
		"EEPROM_WP",					/* 10 */
		"CSI2_CAMERA_GPIO1", "CSI2_CAMERA_GPIO2",	/* 11-12 */
		"CC1352P7_BOOT", "CC1352P7_RSTN", "", "", "",	/* 13-17 */
		"USR_BUTTON", "", "", "", "", "", "", "", "",	/* 18-26 */
		"", "", "", "", "", "", "", "", "", "HDMI_INT",	/* 27-36 */
		"", "VDD_WLAN_EN", "", "", "WL_IRQ", "GBE_INTN",/* 37-42 */
		"", "", "", "", "", "", "", "", "", "", "", "",	/* 43-54 */
		"", "", "", "", "", "", "", "", "", "", "", "", /* 55-66 */
		"", "", "", "", "", "", "", "", "", "", "", "", /* 67-78 */
		"", "", "", "", "", "",				/* 79-84 */
		"BITBANG_MDIO_DATA", "BITBANG_MDIO_CLK",	/* 85-86 */
		"", "", "", "", "";				/* 87-91 */
};

&main_gpio1 {
	bootph-all;
	pinctrl-names = "default";
	pinctrl-0 = <&mikrobus_gpio_pins_default>;
	gpio-line-names = "", "", "", "", "",			/* 0-4 */
		"SPE_RSTN", "SPE_INTN", "MIKROBUS_GPIO1_7",	/* 5-7 */
		"MIKROBUS_GPIO1_8", "MIKROBUS_GPIO1_9",		/* 8-9 */
		"MIKROBUS_GPIO1_10", "MIKROBUS_GPIO1_11",	/* 10-11 */
		"MIKROBUS_GPIO1_12", "MIKROBUS_W1_GPIO0",	/* 12-13 */
		"MIKROBUS_GPIO1_14",				/* 14 */
		"", "", "", "", "VDD_3V3_SD", "", "",		/* 15-21 */
		"MIKROBUS_GPIO1_22", "MIKROBUS_GPIO1_23",	/* 22-23 */
		"MIKROBUS_GPIO1_24", "MIKROBUS_GPIO1_25",	/* 24-25 */
		"", "", "", "", "", "", "", "", "", "", "", "",	/* 26-37 */
		"", "", "", "", "", "", "", "", "", "",		/* 38-47 */
		"SD_CD", "SD_VOLT_SEL", "", "";			/* 48-51 */
};

&main_i2c0 {
	bootph-all;
	pinctrl-names = "default";
	pinctrl-0 = <&local_i2c_pins_default>;
	clock-frequency = <400000>;
	status = "okay";

	eeprom@50 {
		compatible = "atmel,24c32";
		reg = <0x50>;
	};

	rtc: rtc@68 {
		compatible = "ti,bq32000";
		reg = <0x68>;
		interrupt-parent = <&main_gpio0>;
		interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
	};

	tps65219: pmic@30 {
		bootph-all;
		compatible = "ti,tps65219";
		reg = <0x30>;
		buck1-supply = <&vsys_5v0>;
		buck2-supply = <&vsys_5v0>;
		buck3-supply = <&vsys_5v0>;
		ldo1-supply = <&vdd_3v3>;
		ldo2-supply = <&buck2_reg>;
		ldo3-supply = <&vdd_3v3>;
		ldo4-supply = <&vdd_3v3>;

		pinctrl-names = "default";
		pinctrl-0 = <&pmic_irq_pins_default>;
		interrupt-parent = <&gic500>;
		interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-controller;
		#interrupt-cells = <1>;

		system-power-controller;
		ti,power-button;

		regulators {
			buck1_reg: buck1 {
				regulator-name = "VDD_CORE";
				regulator-min-microvolt = <850000>;
				regulator-max-microvolt = <850000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck2_reg: buck2 {
				regulator-name = "VDD_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck3_reg: buck3 {
				regulator-name = "VDD_1V2";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo1_reg: ldo1 {
				/*
				 * Regulator is left as is unused, vdd_sd
				 * is controlled via GPIO with bypass config
				 * as per the NVM configuration
				 */
				regulator-name = "VDD_SD_3V3";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-allow-bypass;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo2_reg: ldo2 {
				regulator-name = "VDDA_0V85";
				regulator-min-microvolt = <850000>;
				regulator-max-microvolt = <850000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo3_reg: ldo3 {
				regulator-name = "VDDA_1V8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo4_reg: ldo4 {
				regulator-name = "VDD_2V5";
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <2500000>;
				regulator-boot-on;
				regulator-always-on;
			};
		};
	};
};

&main_i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&grove_pins_default>;
	clock-frequency = <100000>;
	status = "okay";
};

&main_i2c2 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_1v8_pins_default>;
	clock-frequency = <100000>;
	status = "okay";

	it66121: bridge-hdmi@4c {
		compatible = "ite,it66121";
		reg = <0x4c>;
		pinctrl-names = "default";
		pinctrl-0 = <&hdmi_gpio_pins_default>;
		vcn33-supply = <&vdd_3v3>;
		vcn18-supply = <&buck2_reg>;
		vrf12-supply = <&buck3_reg>;
		reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_LOW>;
		interrupt-parent = <&main_gpio0>;
		interrupts = <36 IRQ_TYPE_EDGE_FALLING>;
		#sound-dai-cells = <0>;

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

			port@0 {
				reg = <0>;

				it66121_in: endpoint {
					bus-width = <24>;
					remote-endpoint = <&dpi1_out>;
				};
			};

			port@1 {
				reg = <1>;

				it66121_out: endpoint {
					remote-endpoint = <&hdmi_connector_in>;
				};
			};
		};
	};
};

&main_i2c3 {
	pinctrl-names = "default";
	pinctrl-0 = <&mikrobus_i2c_pins_default>;
	clock-frequency = <400000>;
	status = "okay";
};

&main_spi2 {
	pinctrl-names = "default";
	pinctrl-0 = <&mikrobus_spi_pins_default>;
	status = "okay";
};

&sdhci0 {
	bootph-all;
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_pins_default>;
	disable-wp;
	status = "okay";
};

&sdhci1 {
	/* SD/MMC */
	bootph-all;
	pinctrl-names = "default";
	pinctrl-0 = <&sd_pins_default>;

	vmmc-supply = <&vdd_3v3_sd>;
	vqmmc-supply = <&vdd_sd_dv>;
	disable-wp;
	cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
	cd-debounce-delay-ms = <100>;
	ti,fails-without-test-cd;
	status = "okay";
};

&sdhci2 {
	vmmc-supply = <&wlan_en>;
	pinctrl-names = "default";
	pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>;
	non-removable;
	ti,fails-without-test-cd;
	cap-power-off-card;
	keep-power-in-suspend;
	assigned-clocks = <&k3_clks 157 158>;
	assigned-clock-parents = <&k3_clks 157 160>;
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	wlcore: wlcore@2 {
		compatible = "ti,wl1807";
		reg = <2>;
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_wlirq_pins_default>;
		interrupt-parent = <&main_gpio0>;
		interrupts = <41 IRQ_TYPE_EDGE_FALLING>;
	};
};

&main_uart0 {
	bootph-all;
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart0_pins_default>;
	status = "okay";
};

&main_uart1 {
	/* Main UART1 is used by TIFS firmware */
	status = "reserved";
};

&main_uart5 {
	pinctrl-names = "default";
	pinctrl-0 = <&mikrobus_uart_pins_default>;
	status = "okay";
};

&main_uart6 {
	pinctrl-names = "default";
	pinctrl-0 = <&wifi_debug_uart_pins_default>;
	status = "okay";

	mcu {
		compatible = "ti,cc1352p7";
		reset-gpios = <&main_gpio0 72 GPIO_ACTIVE_LOW>;
		vdds-supply = <&vdd_3v3>;
	};
};

&dss {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&dss0_pins_default>;
};

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

		dpi1_out: endpoint {
			remote-endpoint = <&it66121_in>;
		};
	};
};

&mcasp1 {
	status = "okay";
	#sound-dai-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&mcasp_hdmi_pins_default>;
	auxclk-fs-ratio = <2177>;
	op-mode = <0>;          /* MCASP_IIS_MODE */
	tdm-slots = <2>;
	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
	       1 0 0 0
	       0 0 0 0
	       0 0 0 0
	       0 0 0 0
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};
