// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) Siemens AG, 2018-2021
 *
 * Authors:
 *   Le Jin <le.jin@siemens.com>
 *   Jan Kiszka <jan.kiszka@siemens.com>
 *
 * Common bits of the IOT2050 Basic and Advanced variants, PG1 and PG2
 */

#include <dt-bindings/phy/phy.h>
#include <dt-bindings/net/ti-dp83867.h>

/ {
	aliases {
		serial0 = &wkup_uart0;
		serial1 = &mcu_uart0;
		serial2 = &main_uart0;
		serial3 = &main_uart1;
		i2c0 = &wkup_i2c0;
		i2c1 = &mcu_i2c0;
		i2c2 = &main_i2c0;
		i2c3 = &main_i2c1;
		i2c4 = &main_i2c2;
		i2c5 = &main_i2c3;
		spi0 = &mcu_spi0;
		mmc0 = &sdhci1;
		mmc1 = &sdhci0;
		ethernet1 = &icssg0_emac0;
		ethernet2 = &icssg0_emac1;
	};

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

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

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

		mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
			compatible = "shared-dma-pool";
			reg = <0 0xa0000000 0 0x100000>;
			no-map;
		};

		mcu_r5fss0_core0_memory_region: r5f-memory@a0100000 {
			compatible = "shared-dma-pool";
			reg = <0 0xa0100000 0 0xf00000>;
			no-map;
		};

		mcu_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
			compatible = "shared-dma-pool";
			reg = <0 0xa1000000 0 0x100000>;
			no-map;
		};

		mcu_r5fss0_core1_memory_region: r5f-memory@a1100000 {
			compatible = "shared-dma-pool";
			reg = <0 0xa1100000 0 0xf00000>;
			no-map;
		};

		rtos_ipc_memory_region: ipc-memories@a2000000 {
			reg = <0x00 0xa2000000 0x00 0x00200000>;
			alignment = <0x1000>;
			no-map;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&leds_pins_default>;

		status-led-red {
			gpios = <&wkup_gpio0 32 GPIO_ACTIVE_HIGH>;
			panic-indicator;
		};

		status-led-green {
			gpios = <&wkup_gpio0 24 GPIO_ACTIVE_HIGH>;
		};

		user-led1-red {
			gpios = <&pcal9535_3 14 GPIO_ACTIVE_HIGH>;
		};

		user-led1-green {
			gpios = <&pcal9535_2 15 GPIO_ACTIVE_HIGH>;
		};

		user-led2-red {
			gpios = <&wkup_gpio0 17 GPIO_ACTIVE_HIGH>;
		};

		user-led2-green {
			gpios = <&wkup_gpio0 22 GPIO_ACTIVE_HIGH>;
		};
	};

	dp_refclk: clock {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <19200000>;
	};

	/* Dual Ethernet application node on PRU-ICSSG0 */
	icssg0_eth: icssg0-eth {
		compatible = "ti,am654-icssg-prueth";
		pinctrl-names = "default";
		pinctrl-0 = <&icssg0_rgmii_pins_default>;
		sram = <&msmc_ram>;

		ti,prus = <&pru0_0>, <&rtu0_0>, <&tx_pru0_0>,
			<&pru0_1>, <&rtu0_1>, <&tx_pru0_1>;
		firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
				"ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
				"ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
				"ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";

		ti,pruss-gp-mux-sel = <2>,      /* MII mode */
				      <2>,
				      <2>,
				      <2>,	/* MII mode */
				      <2>,
				      <2>;

		ti,mii-g-rt = <&icssg0_mii_g_rt>;
		ti,mii-rt = <&icssg0_mii_rt>;
		ti,iep = <&icssg0_iep0>,  <&icssg0_iep1>;

		interrupt-parent = <&icssg0_intc>;
		interrupts = <24 0 2>, <25 1 3>;
		interrupt-names = "tx_ts0", "tx_ts1";

		dmas = <&main_udmap 0xc100>, /* egress slice 0 */
		       <&main_udmap 0xc101>, /* egress slice 0 */
		       <&main_udmap 0xc102>, /* egress slice 0 */
		       <&main_udmap 0xc103>, /* egress slice 0 */
		       <&main_udmap 0xc104>, /* egress slice 1 */
		       <&main_udmap 0xc105>, /* egress slice 1 */
		       <&main_udmap 0xc106>, /* egress slice 1 */
		       <&main_udmap 0xc107>, /* egress slice 1 */
		       <&main_udmap 0x4100>, /* ingress slice 0 */
		       <&main_udmap 0x4101>; /* ingress slice 1 */
		dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
			    "tx1-0", "tx1-1", "tx1-2", "tx1-3",
			    "rx0", "rx1";

		ethernet-ports {
			#address-cells = <1>;
			#size-cells = <0>;
			icssg0_emac0: port@0 {
				reg = <0>;
				phy-handle = <&icssg0_eth0_phy>;
				phy-mode = "rgmii-id";
				ti,syscon-rgmii-delay = <&scm_conf 0x4100>;
				ti,half-duplex-capable;
				/* Filled in by bootloader */
				local-mac-address = [00 00 00 00 00 00];
			};

			icssg0_emac1: port@1 {
				reg = <1>;
				phy-handle = <&icssg0_eth1_phy>;
				phy-mode = "rgmii-id";
				ti,syscon-rgmii-delay = <&scm_conf 0x4104>;
				ti,half-duplex-capable;
				/* Filled in by bootloader */
				local-mac-address = [00 00 00 00 00 00];
			};
		};
	};
};

&wkup_pmx0 {
	pinctrl-names =
		"default",
		"d0-uart0-rxd",  "d0-gpio",  "d0-gpio-pullup",  "d0-gpio-pulldown",
		"d1-uart0-txd",  "d1-gpio",  "d1-gpio-pullup",  "d1-gpio-pulldown",
		"d2-uart0-ctsn", "d2-gpio",  "d2-gpio-pullup",  "d2-gpio-pulldown",
		"d3-uart0-rtsn", "d3-gpio",  "d3-gpio-pullup",  "d3-gpio-pulldown",
		"d10-spi0-cs0",  "d10-gpio", "d10-gpio-pullup", "d10-gpio-pulldown",
		"d11-spi0-d0",   "d11-gpio", "d11-gpio-pullup", "d11-gpio-pulldown",
		"d12-spi0-d1",   "d12-gpio", "d12-gpio-pullup", "d12-gpio-pulldown",
		"d13-spi0-clk",  "d13-gpio", "d13-gpio-pullup", "d13-gpio-pulldown",
		"a0-gpio", "a0-gpio-pullup", "a0-gpio-pulldown",
		"a1-gpio", "a1-gpio-pullup", "a1-gpio-pulldown",
		"a2-gpio", "a2-gpio-pullup", "a2-gpio-pulldown",
		"a3-gpio", "a3-gpio-pullup", "a3-gpio-pulldown",
		"a4-gpio", "a4-gpio-pullup", "a4-gpio-pulldown",
		"a5-gpio", "a5-gpio-pullup", "a5-gpio-pulldown";

	pinctrl-0 = <&d0_uart0_rxd>;
	pinctrl-1 = <&d0_uart0_rxd>;
	pinctrl-2 = <&d0_gpio>;
	pinctrl-3 = <&d0_gpio_pullup>;
	pinctrl-4 = <&d0_gpio_pulldown>;
	pinctrl-5 = <&d1_uart0_txd>;
	pinctrl-6 = <&d1_gpio>;
	pinctrl-7 = <&d1_gpio_pullup>;
	pinctrl-8 = <&d1_gpio_pulldown>;
	pinctrl-9 = <&d2_uart0_ctsn>;
	pinctrl-10 = <&d2_gpio>;
	pinctrl-11 = <&d2_gpio_pullup>;
	pinctrl-12 = <&d2_gpio_pulldown>;
	pinctrl-13 = <&d3_uart0_rtsn>;
	pinctrl-14 = <&d3_gpio>;
	pinctrl-15 = <&d3_gpio_pullup>;
	pinctrl-16 = <&d3_gpio_pulldown>;
	pinctrl-17 = <&d10_spi0_cs0>;
	pinctrl-18 = <&d10_gpio>;
	pinctrl-19 = <&d10_gpio_pullup>;
	pinctrl-20 = <&d10_gpio_pulldown>;
	pinctrl-21 = <&d11_spi0_d0>;
	pinctrl-22 = <&d11_gpio>;
	pinctrl-23 = <&d11_gpio_pullup>;
	pinctrl-24 = <&d11_gpio_pulldown>;
	pinctrl-25 = <&d12_spi0_d1>;
	pinctrl-26 = <&d12_gpio>;
	pinctrl-27 = <&d12_gpio_pullup>;
	pinctrl-28 = <&d12_gpio_pulldown>;
	pinctrl-29 = <&d13_spi0_clk>;
	pinctrl-30 = <&d13_gpio>;
	pinctrl-31 = <&d13_gpio_pullup>;
	pinctrl-32 = <&d13_gpio_pulldown>;
	pinctrl-33 = <&a0_gpio>;
	pinctrl-34 = <&a0_gpio_pullup>;
	pinctrl-35 = <&a0_gpio_pulldown>;
	pinctrl-36 = <&a1_gpio>;
	pinctrl-37 = <&a1_gpio_pullup>;
	pinctrl-38 = <&a1_gpio_pulldown>;
	pinctrl-39 = <&a2_gpio>;
	pinctrl-40 = <&a2_gpio_pullup>;
	pinctrl-41 = <&a2_gpio_pulldown>;
	pinctrl-42 = <&a3_gpio>;
	pinctrl-43 = <&a3_gpio_pullup>;
	pinctrl-44 = <&a3_gpio_pulldown>;
	pinctrl-45 = <&a4_gpio>;
	pinctrl-46 = <&a4_gpio_pullup>;
	pinctrl-47 = <&a4_gpio_pulldown>;
	pinctrl-48 = <&a5_gpio>;
	pinctrl-49 = <&a5_gpio_pullup>;
	pinctrl-50 = <&a5_gpio_pulldown>;

	d0_uart0_rxd: d0-uart0-rxd-pins {
		pinctrl-single,pins = <
			/* (P4) MCU_UART0_RXD */
			AM65X_WKUP_IOPAD(0x0044, PIN_INPUT, 4)
		>;
	};

	d0_gpio: d0-gpio-pins {
		pinctrl-single,pins = <
			/* (P4) WKUP_GPIO0_29 */
			AM65X_WKUP_IOPAD(0x0044, PIN_INPUT, 7)
		>;
	};

	d0_gpio_pullup: d0-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (P4) WKUP_GPIO0_29 */
			AM65X_WKUP_IOPAD(0x0044, PIN_INPUT_PULLUP, 7)
		>;
	};

	d0_gpio_pulldown: d0-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (P4) WKUP_GPIO0_29 */
			AM65X_WKUP_IOPAD(0x0044, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d1_uart0_txd: d1-uart0-txd-pins {
		pinctrl-single,pins = <
			/* (P5) MCU_UART0_TXD */
			AM65X_WKUP_IOPAD(0x0048, PIN_OUTPUT, 4)
		>;
	};

	d1_gpio: d1-gpio-pins {
		pinctrl-single,pins = <
			/* (P5) WKUP_GPIO0_30 */
			AM65X_WKUP_IOPAD(0x0048, PIN_INPUT, 7)
		>;
	};

	d1_gpio_pullup: d1-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (P5) WKUP_GPIO0_30 */
			AM65X_WKUP_IOPAD(0x0048, PIN_INPUT, 7)
		>;
	};

	d1_gpio_pulldown: d1-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (P5) WKUP_GPIO0_30 */
			AM65X_WKUP_IOPAD(0x0048, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d2_uart0_ctsn: d2-uart0-ctsn-pins {
		pinctrl-single,pins = <
			/* (P1) MCU_UART0_CTSn */
			AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 4)
		>;
	};

	d2_gpio: d2-gpio-pins {
		pinctrl-single,pins = <
			/* (P5) WKUP_GPIO0_31 */
			AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 7)
		>;
	};

	d2_gpio_pullup: d2-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (P5) WKUP_GPIO0_31 */
			AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 7)
		>;
	};

	d2_gpio_pulldown: d2-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (P5) WKUP_GPIO0_31 */
			AM65X_WKUP_IOPAD(0x004C, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d3_uart0_rtsn: d3-uart0-rtsn-pins {
		pinctrl-single,pins = <
			/* (N3) MCU_UART0_RTSn */
			AM65X_WKUP_IOPAD(0x0054, PIN_OUTPUT, 4)
		>;
	};

	d3_gpio: d3-gpio-pins {
		pinctrl-single,pins = <
			/* (N3) WKUP_GPIO0_33 */
			AM65X_WKUP_IOPAD(0x0054, PIN_INPUT, 7)
		>;
	};

	d3_gpio_pullup: d3-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (N3) WKUP_GPIO0_33 */
			AM65X_WKUP_IOPAD(0x0054, PIN_INPUT, 7)
		>;
	};

	d3_gpio_pulldown: d3-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (N3) WKUP_GPIO0_33 */
			AM65X_WKUP_IOPAD(0x0054, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d10_spi0_cs0: d10-spi0-cs0-pins {
		pinctrl-single,pins = <
			/* (Y4) MCU_SPI0_CS0 */
			AM65X_WKUP_IOPAD(0x009c, PIN_OUTPUT, 0)
		>;
	};

	d10_gpio: d10-gpio-pins {
		pinctrl-single,pins = <
			/* (Y4) WKUP_GPIO0_51 */
			AM65X_WKUP_IOPAD(0x009c, PIN_INPUT, 7)
		>;
	};

	d10_gpio_pullup: d10-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (Y4) WKUP_GPIO0_51 */
			AM65X_WKUP_IOPAD(0x009c, PIN_INPUT, 7)
		>;
	};

	d10_gpio_pulldown: d10-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (Y4) WKUP_GPIO0_51 */
			AM65X_WKUP_IOPAD(0x009c, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d11_spi0_d0: d11-spi0-d0-pins {
		pinctrl-single,pins = <
			/* (Y3) MCU_SPI0_D0 */
			AM65X_WKUP_IOPAD(0x0094, PIN_INPUT, 0)
		>;
	};

	d11_gpio: d11-gpio-pins {
		pinctrl-single,pins = <
			/* (Y3) WKUP_GPIO0_49 */
			AM65X_WKUP_IOPAD(0x0094, PIN_INPUT, 7)
		>;
	};

	d11_gpio_pullup: d11-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (Y3) WKUP_GPIO0_49 */
			AM65X_WKUP_IOPAD(0x0094, PIN_INPUT, 7)
		>;
	};

	d11_gpio_pulldown: d11-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (Y3) WKUP_GPIO0_49 */
			AM65X_WKUP_IOPAD(0x0094, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d12_spi0_d1: d12-spi0-d1-pins {
		pinctrl-single,pins = <
			/* (Y2) MCU_SPI0_D1 */
			AM65X_WKUP_IOPAD(0x0098, PIN_INPUT, 0)
		>;
	};

	d12_gpio: d12-gpio-pins {
		pinctrl-single,pins = <
			/* (Y2) WKUP_GPIO0_50 */
			AM65X_WKUP_IOPAD(0x0098, PIN_INPUT, 7)
		>;
	};

	d12_gpio_pullup: d12-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (Y2) WKUP_GPIO0_50 */
			AM65X_WKUP_IOPAD(0x0098, PIN_INPUT, 7)
		>;
	};

	d12_gpio_pulldown: d12-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (Y2) WKUP_GPIO0_50 */
			AM65X_WKUP_IOPAD(0x0098, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d13_spi0_clk: d13-spi0-clk-pins {
		pinctrl-single,pins = <
			/* (Y1) MCU_SPI0_CLK */
			AM65X_WKUP_IOPAD(0x0090, PIN_INPUT, 0)
		>;
	};

	d13_gpio: d13-gpio-pins {
		pinctrl-single,pins = <
			/* (Y1) WKUP_GPIO0_48 */
			AM65X_WKUP_IOPAD(0x0090, PIN_INPUT, 7)
		>;
	};

	d13_gpio_pullup: d13-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (Y1) WKUP_GPIO0_48 */
			AM65X_WKUP_IOPAD(0x0090, PIN_INPUT, 7)
		>;
	};

	d13_gpio_pulldown: d13-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (Y1) WKUP_GPIO0_48 */
			AM65X_WKUP_IOPAD(0x0090, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	a0_gpio: a0-gpio-pins {
		pinctrl-single,pins = <
			/* (L6) WKUP_GPIO0_45 */
			AM65X_WKUP_IOPAD(0x0084, PIN_INPUT, 7)
		>;
	};

	a0_gpio_pullup: a0-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (L6) WKUP_GPIO0_45 */
			AM65X_WKUP_IOPAD(0x0084, PIN_INPUT, 7)
		>;
	};

	a0_gpio_pulldown: a0-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (L6) WKUP_GPIO0_45 */
			AM65X_WKUP_IOPAD(0x0084, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	a1_gpio: a1-gpio-pins {
		pinctrl-single,pins = <
			/* (M6) WKUP_GPIO0_44 */
			AM65X_WKUP_IOPAD(0x0080, PIN_INPUT, 7)
		>;
	};

	a1_gpio_pullup: a1-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (M6) WKUP_GPIO0_44 */
			AM65X_WKUP_IOPAD(0x0080, PIN_INPUT, 7)
		>;
	};

	a1_gpio_pulldown: a1-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (M6) WKUP_GPIO0_44 */
			AM65X_WKUP_IOPAD(0x0080, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	a2_gpio: a2-gpio-pins {
		pinctrl-single,pins = <
			/* (L5) WKUP_GPIO0_43 */
			AM65X_WKUP_IOPAD(0x007C, PIN_INPUT, 7)
		>;
	};

	a2_gpio_pullup: a2-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (L5) WKUP_GPIO0_43 */
			AM65X_WKUP_IOPAD(0x007C, PIN_INPUT, 7)
		>;
	};

	a2_gpio_pulldown: a2-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (L5) WKUP_GPIO0_43 */
			AM65X_WKUP_IOPAD(0x007C, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	a3_gpio: a3-gpio-pins {
		pinctrl-single,pins = <
			/* (M5) WKUP_GPIO0_39 */
			AM65X_WKUP_IOPAD(0x006C, PIN_INPUT, 7)
		>;
	};

	a3_gpio_pullup: a3-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (M5) WKUP_GPIO0_39 */
			AM65X_WKUP_IOPAD(0x006C, PIN_INPUT, 7)
		>;
	};

	a3_gpio_pulldown: a3-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (M5) WKUP_GPIO0_39 */
			AM65X_WKUP_IOPAD(0x006C, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	a4_gpio: a4-gpio-pins {
		pinctrl-single,pins = <
			/* (L2) WKUP_GPIO0_42 */
			AM65X_WKUP_IOPAD(0x0078, PIN_INPUT, 7)
		>;
	};

	a4_gpio_pullup: a4-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (L2) WKUP_GPIO0_42 */
			AM65X_WKUP_IOPAD(0x0078, PIN_INPUT, 7)
		>;
	};

	a4_gpio_pulldown: a4-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (L2) WKUP_GPIO0_42 */
			AM65X_WKUP_IOPAD(0x0078, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	a5_gpio: a5-gpio-pins {
		pinctrl-single,pins = <
			/* (N5) WKUP_GPIO0_35 */
			AM65X_WKUP_IOPAD(0x005C, PIN_INPUT, 7)
		>;
	};

	a5_gpio_pullup: a5-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (N5) WKUP_GPIO0_35 */
			AM65X_WKUP_IOPAD(0x005C, PIN_INPUT_PULLUP, 7)
		>;
	};

	a5_gpio_pulldown: a5-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (N5) WKUP_GPIO0_35 */
			AM65X_WKUP_IOPAD(0x005C, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	wkup_i2c0_pins_default: wkup-i2c0-default-pins {
		pinctrl-single,pins = <
			/* (AC7) WKUP_I2C0_SCL */
			AM65X_WKUP_IOPAD(0x00e0, PIN_INPUT,  0)
			/* (AD6) WKUP_I2C0_SDA */
			AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT,  0)
		>;
	};

	mcu_i2c0_pins_default: mcu-i2c0-default-pins {
		pinctrl-single,pins = <
			/* (AD8) MCU_I2C0_SCL */
			AM65X_WKUP_IOPAD(0x00e8, PIN_INPUT,  0)
			/* (AD7) MCU_I2C0_SDA */
			AM65X_WKUP_IOPAD(0x00ec, PIN_INPUT,  0)
		>;
	};

	arduino_i2c_aio_switch_pins_default: arduino-i2c-aio-switch-default-pins {
		pinctrl-single,pins = <
			/* (R2) WKUP_GPIO0_21 */
			AM65X_WKUP_IOPAD(0x0024, PIN_OUTPUT, 7)
		>;
	};

	push_button_pins_default: push-button-default-pins {
		pinctrl-single,pins = <
			/* (T1) MCU_OSPI1_CLK.WKUP_GPIO0_25 */
			AM65X_WKUP_IOPAD(0x0034, PIN_INPUT,  7)
		>;
	};


	arduino_io_oe_pins_default: arduino-io-oe-default-pins {
		pinctrl-single,pins = <
			/* (N4) WKUP_GPIO0_34 */
			AM65X_WKUP_IOPAD(0x0058, PIN_OUTPUT, 7)
			/* (M2) WKUP_GPIO0_36 */
			AM65X_WKUP_IOPAD(0x0060, PIN_OUTPUT, 7)
			/* (M3) WKUP_GPIO0_37 */
			AM65X_WKUP_IOPAD(0x0064, PIN_OUTPUT, 7)
			/* (M4) WKUP_GPIO0_38 */
			AM65X_WKUP_IOPAD(0x0068, PIN_OUTPUT, 7)
			/* (M1) WKUP_GPIO0_41 */
			AM65X_WKUP_IOPAD(0x0074, PIN_OUTPUT, 7)
		>;
	};

	mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-default-pins {
		pinctrl-single,pins = <
			/* (V1) MCU_OSPI0_CLK */
			AM65X_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0)
			/* (U2) MCU_OSPI0_DQS */
			AM65X_WKUP_IOPAD(0x0008, PIN_INPUT,  0)
			/* (U4) MCU_OSPI0_D0 */
			AM65X_WKUP_IOPAD(0x000c, PIN_INPUT,  0)
			/* (U5) MCU_OSPI0_D1 */
			AM65X_WKUP_IOPAD(0x0010, PIN_INPUT,  0)
			/* (R4) MCU_OSPI0_CSn0 */
			AM65X_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0)
		>;
	};

	db9_com_mode_pins_default: db9-com-mode-default-pins {
		pinctrl-single,pins = <
			/* (AD3) WKUP_GPIO0_5, used as uart0 mode 0 */
			AM65X_WKUP_IOPAD(0x00c4, PIN_OUTPUT, 7)
			/* (AC3) WKUP_GPIO0_4, used as uart0 mode 1 */
			AM65X_WKUP_IOPAD(0x00c0, PIN_OUTPUT, 7)
			/* (AC1) WKUP_GPIO0_7, used as uart0 term */
			AM65X_WKUP_IOPAD(0x00cc, PIN_OUTPUT, 7)
			/* (AC2) WKUP_GPIO0_6, used as uart0 en */
			AM65X_WKUP_IOPAD(0x00c8, PIN_OUTPUT, 7)
		>;
	};

	leds_pins_default: leds-default-pins {
		pinctrl-single,pins = <
			/* (T2) WKUP_GPIO0_17, used as user led1 red */
			AM65X_WKUP_IOPAD(0x0014, PIN_OUTPUT, 7)
			/* (R3) WKUP_GPIO0_22, used as user led1 green */
			AM65X_WKUP_IOPAD(0x0028, PIN_OUTPUT, 7)
			/* (R5) WKUP_GPIO0_24, used as status led red */
			AM65X_WKUP_IOPAD(0x0030, PIN_OUTPUT, 7)
			/* (N2) WKUP_GPIO0_32, used as status led green */
			AM65X_WKUP_IOPAD(0x0050, PIN_OUTPUT, 7)
		>;
	};

	mcu_spi0_pins_default: mcu-spi0-default-pins {
		pinctrl-single,pins = <
			/* (Y1) MCU_SPI0_CLK */
			AM65X_WKUP_IOPAD(0x0090, PIN_INPUT,  0)
			/* (Y3) MCU_SPI0_D0 */
			AM65X_WKUP_IOPAD(0x0094, PIN_INPUT,  0)
			/* (Y2) MCU_SPI0_D1 */
			AM65X_WKUP_IOPAD(0x0098, PIN_INPUT,  0)
			/* (Y4) MCU_SPI0_CS0 */
			AM65X_WKUP_IOPAD(0x009c, PIN_OUTPUT, 0)
		>;
	};

	minipcie_pins_default: minipcie-default-pins {
		pinctrl-single,pins = <
			/* (P2) MCU_OSPI1_DQS.WKUP_GPIO0_27 */
			AM65X_WKUP_IOPAD(0x003C, PIN_OUTPUT, 7)
		>;
	};
};

&main_pmx0 {
	pinctrl-names =
		"default",
		"d4-ehrpwm0-a", "d4-gpio", "d4-gpio-pullup", "d4-gpio-pulldown",
		"d5-ehrpwm1-a", "d5-gpio", "d5-gpio-pullup", "d5-gpio-pulldown",
		"d6-ehrpwm2-a", "d6-gpio", "d6-gpio-pullup", "d6-gpio-pulldown",
		"d7-ehrpwm3-a", "d7-gpio", "d7-gpio-pullup", "d7-gpio-pulldown",
		"d8-ehrpwm4-a", "d8-gpio", "d8-gpio-pullup", "d8-gpio-pulldown",
		"d9-ehrpwm5-a", "d9-gpio", "d9-gpio-pullup", "d9-gpio-pulldown";

	pinctrl-0 = <&d4_ehrpwm0_a>;
	pinctrl-1 = <&d4_ehrpwm0_a>;
	pinctrl-2 = <&d4_gpio>;
	pinctrl-3 = <&d4_gpio_pullup>;
	pinctrl-4 = <&d4_gpio_pulldown>;

	pinctrl-5 = <&d5_ehrpwm1_a>;
	pinctrl-6 = <&d5_gpio>;
	pinctrl-7 = <&d5_gpio_pullup>;
	pinctrl-8 = <&d5_gpio_pulldown>;

	pinctrl-9 = <&d6_ehrpwm2_a>;
	pinctrl-10 = <&d6_gpio>;
	pinctrl-11 = <&d6_gpio_pullup>;
	pinctrl-12 = <&d6_gpio_pulldown>;

	pinctrl-13 = <&d7_ehrpwm3_a>;
	pinctrl-14 = <&d7_gpio>;
	pinctrl-15 = <&d7_gpio_pullup>;
	pinctrl-16 = <&d7_gpio_pulldown>;

	pinctrl-17 = <&d8_ehrpwm4_a>;
	pinctrl-18 = <&d8_gpio>;
	pinctrl-19 = <&d8_gpio_pullup>;
	pinctrl-20 = <&d8_gpio_pulldown>;

	pinctrl-21 = <&d9_ehrpwm5_a>;
	pinctrl-22 = <&d9_gpio>;
	pinctrl-23 = <&d9_gpio_pullup>;
	pinctrl-24 = <&d9_gpio_pulldown>;

	d4_ehrpwm0_a: d4-ehrpwm0-a-pins {
		pinctrl-single,pins = <
			/* (AG18) EHRPWM0_A */
			AM65X_IOPAD(0x0084, PIN_OUTPUT, 5)
		>;
	};

	d4_gpio: d4-gpio-pins {
		pinctrl-single,pins = <
			/* (AG18) GPIO0_33 */
			AM65X_IOPAD(0x0084, PIN_INPUT, 7)
		>;
	};

	d4_gpio_pullup: d4-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (AG18) GPIO0_33 */
			AM65X_IOPAD(0x0084, PIN_INPUT_PULLUP, 7)
		>;
	};

	d4_gpio_pulldown: d4-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (AG18) GPIO0_33 */
			AM65X_IOPAD(0x0084, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d5_ehrpwm1_a: d5-ehrpwm1-a-pins {
		pinctrl-single,pins = <
			/* (AF17) EHRPWM1_A */
			AM65X_IOPAD(0x008C, PIN_OUTPUT, 5)
		>;
	};

	d5_gpio: d5-gpio-pins {
		pinctrl-single,pins = <
			/* (AF17) GPIO0_35 */
			AM65X_IOPAD(0x008C, PIN_INPUT, 7)
		>;
	};

	d5_gpio_pullup: d5-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (AF17) GPIO0_35 */
			AM65X_IOPAD(0x008C, PIN_INPUT_PULLUP, 7)
		>;
	};

	d5_gpio_pulldown: d5-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (AF17) GPIO0_35 */
			AM65X_IOPAD(0x008C, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d6_ehrpwm2_a: d6-ehrpwm2-a-pins {
		pinctrl-single,pins = <
			/* (AH16) EHRPWM2_A */
			AM65X_IOPAD(0x0098, PIN_OUTPUT, 5)
		>;
	};

	d6_gpio: d6-gpio-pins {
		pinctrl-single,pins = <
			/* (AH16) GPIO0_38 */
			AM65X_IOPAD(0x0098, PIN_INPUT, 7)
		>;
	};

	d6_gpio_pullup: d6-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (AH16) GPIO0_38 */
			AM65X_IOPAD(0x0098, PIN_INPUT_PULLUP, 7)
		>;
	};

	d6_gpio_pulldown: d6-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (AH16) GPIO0_38 */
			AM65X_IOPAD(0x0098, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d7_ehrpwm3_a: d7-ehrpwm3-a-pins {
		pinctrl-single,pins = <
			/* (AH15) EHRPWM3_A */
			AM65X_IOPAD(0x00AC, PIN_OUTPUT, 5)
		>;
	};

	d7_gpio: d7-gpio-pins {
		pinctrl-single,pins = <
			/* (AH15) GPIO0_43 */
			AM65X_IOPAD(0x00AC, PIN_INPUT, 7)
		>;
	};

	d7_gpio_pullup: d7-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (AH15) GPIO0_43 */
			AM65X_IOPAD(0x00AC, PIN_INPUT_PULLUP, 7)
		>;
	};

	d7_gpio_pulldown: d7-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (AH15) GPIO0_43 */
			AM65X_IOPAD(0x00AC, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d8_ehrpwm4_a: d8-ehrpwm4-a-pins {
		pinctrl-single,pins = <
			/* (AG15) EHRPWM4_A */
			AM65X_IOPAD(0x00C0, PIN_OUTPUT, 5)
		>;
	};

	d8_gpio: d8-gpio-pins {
		pinctrl-single,pins = <
			/* (AG15) GPIO0_48 */
			AM65X_IOPAD(0x00C0, PIN_INPUT, 7)
		>;
	};

	d8_gpio_pullup: d8-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (AG15) GPIO0_48 */
			AM65X_IOPAD(0x00C0, PIN_INPUT_PULLUP, 7)
		>;
	};

	d8_gpio_pulldown: d8-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (AG15) GPIO0_48 */
			AM65X_IOPAD(0x00C0, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	d9_ehrpwm5_a: d9-ehrpwm5-a-pins {
		pinctrl-single,pins = <
			/* (AD15) EHRPWM5_A */
			AM65X_IOPAD(0x00CC, PIN_OUTPUT, 5)
		>;
	};

	d9_gpio: d9-gpio-pins {
		pinctrl-single,pins = <
			/* (AD15) GPIO0_51 */
			AM65X_IOPAD(0x00CC, PIN_INPUT, 7)
		>;
	};

	d9_gpio_pullup: d9-gpio-pullup-pins {
		pinctrl-single,pins = <
			/* (AD15) GPIO0_51 */
			AM65X_IOPAD(0x00CC, PIN_INPUT_PULLUP, 7)
		>;
	};

	d9_gpio_pulldown: d9-gpio-pulldown-pins {
		pinctrl-single,pins = <
			/* (AD15) GPIO0_51 */
			AM65X_IOPAD(0x00CC, PIN_INPUT_PULLDOWN, 7)
		>;
	};

	main_pcie_enable_pins_default: main-pcie-enable-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x01c4, PIN_INPUT_PULLUP, 7)  /* (AH13) GPIO1_17 */
		>;
	};

	main_uart1_pins_default: main-uart1-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0174, PIN_INPUT,  6)  /* (AE23) UART1_RXD */
			AM65X_IOPAD(0x014c, PIN_OUTPUT, 6)  /* (AD23) UART1_TXD */
			AM65X_IOPAD(0x0178, PIN_INPUT,  6)  /* (AD22) UART1_CTSn */
			AM65X_IOPAD(0x017c, PIN_OUTPUT, 6)  /* (AC21) UART1_RTSn */
		>;
	};

	main_i2c3_pins_default: main-i2c3-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x01c0, PIN_INPUT,  2)  /* (AF13) I2C3_SCL */
			AM65X_IOPAD(0x01d4, PIN_INPUT,  2)  /* (AG12) I2C3_SDA */
		>;
	};

	main_mmc1_pins_default: main-mmc1-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN, 0)  /* (C27) MMC1_CLK */
			AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP,   0)  /* (C28) MMC1_CMD */
			AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP,   0)  /* (D28) MMC1_DAT0 */
			AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP,   0)  /* (E27) MMC1_DAT1 */
			AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP,   0)  /* (D26) MMC1_DAT2 */
			AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP,   0)  /* (D27) MMC1_DAT3 */
			AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP,   0)  /* (B24) MMC1_SDCD */
			AM65X_IOPAD(0x02e0, PIN_INPUT_PULLUP,   0)  /* (C24) MMC1_SDWP */
		>;
	};

	usb0_pins_default: usb0-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x02bc, PIN_OUTPUT, 0)  /* (AD9) USB0_DRVVBUS */
		>;
	};

	usb1_pins_default: usb1-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x02c0, PIN_OUTPUT, 0)  /* (AC8) USB1_DRVVBUS */
		>;
	};

	dss_vout1_pins_default: dss-vout1-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0000, PIN_OUTPUT, 1)  /* VOUT1_DATA0 */
			AM65X_IOPAD(0x0004, PIN_OUTPUT, 1)  /* VOUT1_DATA1 */
			AM65X_IOPAD(0x0008, PIN_OUTPUT, 1)  /* VOUT1_DATA2 */
			AM65X_IOPAD(0x000c, PIN_OUTPUT, 1)  /* VOUT1_DATA3 */
			AM65X_IOPAD(0x0010, PIN_OUTPUT, 1)  /* VOUT1_DATA4 */
			AM65X_IOPAD(0x0014, PIN_OUTPUT, 1)  /* VOUT1_DATA5 */
			AM65X_IOPAD(0x0018, PIN_OUTPUT, 1)  /* VOUT1_DATA6 */
			AM65X_IOPAD(0x001c, PIN_OUTPUT, 1)  /* VOUT1_DATA7 */
			AM65X_IOPAD(0x0020, PIN_OUTPUT, 1)  /* VOUT1_DATA8 */
			AM65X_IOPAD(0x0024, PIN_OUTPUT, 1)  /* VOUT1_DATA9 */
			AM65X_IOPAD(0x0028, PIN_OUTPUT, 1)  /* VOUT1_DATA10 */
			AM65X_IOPAD(0x002c, PIN_OUTPUT, 1)  /* VOUT1_DATA11 */
			AM65X_IOPAD(0x0030, PIN_OUTPUT, 1)  /* VOUT1_DATA12 */
			AM65X_IOPAD(0x0034, PIN_OUTPUT, 1)  /* VOUT1_DATA13 */
			AM65X_IOPAD(0x0038, PIN_OUTPUT, 1)  /* VOUT1_DATA14 */
			AM65X_IOPAD(0x003c, PIN_OUTPUT, 1)  /* VOUT1_DATA15 */
			AM65X_IOPAD(0x0040, PIN_OUTPUT, 1)  /* VOUT1_DATA16 */
			AM65X_IOPAD(0x0044, PIN_OUTPUT, 1)  /* VOUT1_DATA17 */
			AM65X_IOPAD(0x0048, PIN_OUTPUT, 1)  /* VOUT1_DATA18 */
			AM65X_IOPAD(0x004c, PIN_OUTPUT, 1)  /* VOUT1_DATA19 */
			AM65X_IOPAD(0x0050, PIN_OUTPUT, 1)  /* VOUT1_DATA20 */
			AM65X_IOPAD(0x0054, PIN_OUTPUT, 1)  /* VOUT1_DATA21 */
			AM65X_IOPAD(0x0058, PIN_OUTPUT, 1)  /* VOUT1_DATA22 */
			AM65X_IOPAD(0x005c, PIN_OUTPUT, 1)  /* VOUT1_DATA23 */
			AM65X_IOPAD(0x0060, PIN_OUTPUT, 1)  /* VOUT1_VSYNC */
			AM65X_IOPAD(0x0064, PIN_OUTPUT, 1)  /* VOUT1_HSYNC */
			AM65X_IOPAD(0x0068, PIN_OUTPUT, 1)  /* VOUT1_PCLK */
			AM65X_IOPAD(0x006c, PIN_OUTPUT, 1)  /* VOUT1_DE */
		>;
	};

	dp_pins_default: dp-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0078, PIN_OUTPUT, 7)  /* (AF18) DP rst_n */
		>;
	};

	main_i2c2_pins_default: main-i2c2-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0074, PIN_INPUT,  5)  /* (T27) I2C2_SCL */
			AM65X_IOPAD(0x0070, PIN_INPUT,  5)  /* (R25) I2C2_SDA */
		>;
	};

	icssg0_mdio_pins_default: icssg0-mdio-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0294, PIN_INPUT, 0) /* (AE26) PRG0_MDIO0_MDIO */
			AM65X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AE28) PRG0_MDIO0_MDC */
		>;
	};

	icssg0_rgmii_pins_default: icssg0-rgmii-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0244, PIN_INPUT, 2) /* (AB28) PRG0_PRU1_GPO0.PRG0_RGMII2_RD0 */
			AM65X_IOPAD(0x0248, PIN_INPUT, 2) /* (AC28) PRG0_PRU1_GPO1.PRG0_RGMII2_RD1 */
			AM65X_IOPAD(0x024c, PIN_INPUT, 2) /* (AC27) PRG0_PRU1_GPO2.PRG0_RGMII2_RD2 */
			AM65X_IOPAD(0x0250, PIN_INPUT, 2) /* (AB26) PRG0_PRU1_GPO3.PRG0_RGMII2_RD3 */
			AM65X_IOPAD(0x0274, PIN_OUTPUT, 2) /* (AC25) PRG0_PRU1_GPO12.PRG0_RGMII2_TD0 */
			AM65X_IOPAD(0x0278, PIN_OUTPUT, 2) /* (AD25) PRG0_PRU1_GPO13.PRG0_RGMII2_TD1 */
			AM65X_IOPAD(0x027c, PIN_OUTPUT, 2) /* (AD24) PRG0_PRU1_GPO14.PRG0_RGMII2_TD2 */
			AM65X_IOPAD(0x0280, PIN_OUTPUT, 2) /* (AE27) PRG0_PRU1_GPO15.PRG0_RGMII2_TD3 */
			AM65X_IOPAD(0x0284, PIN_INPUT, 2) /* (AC24) PRG0_PRU1_GPO16.PRG0_RGMII2_TXC */
			AM65X_IOPAD(0x0270, PIN_OUTPUT, 2) /* (AB24) PRG0_PRU1_GPO11.PRG0_RGMII2_TX_CTL */
			AM65X_IOPAD(0x025c, PIN_INPUT, 2) /* (AB27) PRG0_PRU1_GPO6.PRG0_RGMII2_RXC */
			AM65X_IOPAD(0x0254, PIN_INPUT, 2) /* (AA25) PRG0_PRU1_GPO4.PRG0_RGMII2_RX_CTL */

			AM65X_IOPAD(0x01f4, PIN_INPUT, 2) /* (V24) PRG0_PRU0_GPO0.PRG0_RGMII1_RD0 */
			AM65X_IOPAD(0x01f8, PIN_INPUT, 2) /* (W25) PRG0_PRU0_GPO1.PRG0_RGMII1_RD1 */
			AM65X_IOPAD(0x01fc, PIN_INPUT, 2) /* (W24) PRG0_PRU0_GPO2.PRG0_RGMII1_RD2 */
			AM65X_IOPAD(0x0200, PIN_INPUT, 2) /* (AA27) PRG0_PRU0_GPO3.PRG0_RGMII1_RD3 */
			AM65X_IOPAD(0x0224, PIN_OUTPUT, 2) /* (AD27) PRG0_PRU0_GPO12.PRG0_RGMII1_TD0 */
			AM65X_IOPAD(0x0228, PIN_OUTPUT, 2) /* (AC26) PRG0_PRU0_GPO13.PRG0_RGMII1_TD1 */
			AM65X_IOPAD(0x022c, PIN_OUTPUT, 2) /* (AD26) PRG0_PRU0_GPO14.PRG0_RGMII1_TD2 */
			AM65X_IOPAD(0x0230, PIN_OUTPUT, 2) /* (AA24) PRG0_PRU0_GPO15.PRG0_RGMII1_TD3 */
			AM65X_IOPAD(0x0234, PIN_INPUT, 2) /* (AD28) PRG0_PRU0_GPO16.PRG0_RGMII1_TXC */
			AM65X_IOPAD(0x0220, PIN_OUTPUT, 2) /* (AB25) PRG0_PRU0_GPO11.PRG0_RGMII1_TX_CTL */
			AM65X_IOPAD(0x020c, PIN_INPUT, 2) /* (Y25) PRG0_PRU0_GPO6.PRG0_RGMII1_RXC */
			AM65X_IOPAD(0x0204, PIN_INPUT, 2) /* (Y24) PRG0_PRU0_GPO4.PRG0_RGMII1_RX_CTL */
		>;
	};
};

&main_pmx1 {
	main_i2c0_pins_default: main-i2c0-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0000, PIN_INPUT,  0)  /* (D20) I2C0_SCL */
			AM65X_IOPAD(0x0004, PIN_INPUT,  0)  /* (C21) I2C0_SDA */
		>;
	};

	main_i2c1_pins_default: main-i2c1-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0008, PIN_INPUT,  0)  /* (B21) I2C1_SCL */
			AM65X_IOPAD(0x000c, PIN_INPUT,  0)  /* (E21) I2C1_SDA */
		>;
	};
};

&wkup_uart0 {
	/* Wakeup UART is used by System firmware */
	status = "reserved";
};

&main_uart1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_uart1_pins_default>;
};

&mcu_uart0 {
	status = "okay";
};

&main_gpio0 {
	gpio-line-names =
		"main_gpio0-base", "", "", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "", "", "", "",
		"", "", "", "IO4", "", "IO5", "", "", "IO6", "",
		"", "", "", "IO7", "", "", "", "", "IO8", "",
		"", "IO9";
};

&main_gpio1 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_pcie_enable_pins_default>;
};

&wkup_gpio0 {
	pinctrl-names = "default";
	pinctrl-0 =
		<&arduino_i2c_aio_switch_pins_default>,
		<&arduino_io_oe_pins_default>,
		<&push_button_pins_default>,
		<&db9_com_mode_pins_default>;
	gpio-line-names =
		/* 0..9 */
		"wkup_gpio0-base", "", "", "", "UART0-mode1", "UART0-mode0",
		"UART0-enable", "UART0-terminate", "", "WIFI-disable",
		/* 10..19 */
		"", "", "", "", "", "", "", "", "", "",
		/* 20..29 */
		"", "A4A5-I2C-mux", "", "", "", "USER-button", "", "", "","IO0",
		/* 30..39 */
		"IO1", "IO2", "", "IO3", "IO17-direction", "A5",
		"IO16-direction", "IO15-direction", "IO14-direction", "A3",
		/* 40..49 */
		"", "IO18-direction", "A4", "A2", "A1", "A0", "", "", "IO13",
		"IO11",
		/* 50..51 */
		"IO12", "IO10";
};

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

&mcu_i2c0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&mcu_i2c0_pins_default>;
	clock-frequency = <400000>;

	psu: regulator@60 {
		compatible = "ti,tps62363";
		reg = <0x60>;
		regulator-name = "tps62363-vout";
		regulator-min-microvolt = <500000>;
		regulator-max-microvolt = <1500000>;
		regulator-boot-on;
		ti,vsel0-state-high;
		ti,vsel1-state-high;
		ti,enable-vout-discharge;
	};

	/* D4200 */
	pcal9535_1: gpio@20 {
		compatible = "nxp,pcal9535";
		reg = <0x20>;
		#gpio-cells = <2>;
		gpio-controller;
		gpio-line-names =
			"A0-pull", "A1-pull", "A2-pull", "A3-pull", "A4-pull",
			"A5-pull", "", "",
			"IO14-enable", "IO15-enable", "IO16-enable",
			"IO17-enable", "IO18-enable", "IO19-enable";
	};

	/* D4201 */
	pcal9535_2: gpio@21 {
		compatible = "nxp,pcal9535";
		reg = <0x21>;
		#gpio-cells = <2>;
		gpio-controller;
		gpio-line-names =
			"IO0-direction", "IO1-direction", "IO2-direction",
			"IO3-direction", "IO4-direction", "IO5-direction",
			"IO6-direction", "IO7-direction",
			"IO8-direction", "IO9-direction", "IO10-direction",
			"IO11-direction", "IO12-direction", "IO13-direction",
			"IO19-direction";
	};

	/* D4202 */
	pcal9535_3: gpio@25 {
		compatible = "nxp,pcal9535";
		reg = <0x25>;
		#gpio-cells = <2>;
		gpio-controller;
		gpio-line-names =
			"IO0-pull", "IO1-pull", "IO2-pull", "IO3-pull",
			"IO4-pull", "IO5-pull", "IO6-pull", "IO7-pull",
			"IO8-pull", "IO9-pull", "IO10-pull", "IO11-pull",
			"IO12-pull", "IO13-pull";
	};
};

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

	rtc: rtc@51 {
		compatible = "nxp,pcf8563";
		reg = <0x51>;
	};

	eeprom: eeprom@54 {
		compatible = "atmel,24c08";
		reg = <0x54>;
		pagesize = <16>;
	};
};

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

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

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

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

	edp-bridge@f {
		compatible = "toshiba,tc358767";
		reg = <0x0f>;
		pinctrl-names = "default";
		pinctrl-0 = <&dp_pins_default>;
		reset-gpios = <&main_gpio0 30 GPIO_ACTIVE_HIGH>;

		clock-names = "ref";
		clocks = <&dp_refclk>;

		toshiba,hpd-pin = <0>;

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

			port@1 {
				reg = <1>;

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

&mcu_cpsw {
	status = "disabled";
};

&sdhci1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_mmc1_pins_default>;
	ti,driver-strength-ohm = <50>;
	disable-wp;
};

&usb0 {
	pinctrl-names = "default";
	pinctrl-0 = <&usb0_pins_default>;
	dr_mode = "host";
};

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

&mcu_spi0 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	ti,pindir-d0-out-d1-in;
};

&tscadc1 {
	status = "okay";
	adc {
		ti,adc-channels = <0 1 2 3 4 5>;
	};
};

&ospi0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&mcu_fss0_ospi0_pins_default>;

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0x0>;
		spi-tx-bus-width = <1>;
		spi-rx-bus-width = <1>;
		spi-max-frequency = <50000000>;
		cdns,tshsl-ns = <60>;
		cdns,tsd2d-ns = <60>;
		cdns,tchsh-ns = <60>;
		cdns,tslch-ns = <60>;
		cdns,read-delay = <2>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			seboot@0 {
				label = "seboot";
				reg = <0x0 0x180000>; /* 1.5M */
			};

			tispl@180000 {
				label = "tispl";
				reg = <0x180000 0x200000>; /* 2M */
			};

			u-boot@380000 {
				label = "u-boot";
				reg = <0x380000 0x300000>; /* 3M */
			};

			env@680000 {
				label = "env";
				reg = <0x680000 0x20000>; /* 128K */
			};

			env-backup@6a0000 {
				label = "env.backup";
				reg = <0x6a0000 0x20000>; /* 128K */
			};

			otpcmd@6c0000 {
				label = "otpcmd";
				reg = <0x6c0000 0x10000>; /* 64K */
			};

			unused@6d0000 {
				label = "unused";
				reg = <0x6d0000 0x7b0000>; /* 7872K */
			};

			seboot-backup@e80000 {
				label = "seboot.backup";
				reg = <0xe80000 0x180000>; /* 1.5M */
			};
		};
	};
};

&dss {
	pinctrl-names = "default";
	pinctrl-0 = <&dss_vout1_pins_default>;

	assigned-clocks = <&k3_clks 67 2>;
	assigned-clock-parents = <&k3_clks 67 5>;
};

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

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

&pcie1_rc {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&minipcie_pins_default>;

	num-lanes = <1>;
	phys = <&serdes1 PHY_TYPE_PCIE 0>;
	phy-names = "pcie-phy0";
	reset-gpios = <&wkup_gpio0 27 GPIO_ACTIVE_HIGH>;
};

&mailbox0_cluster0 {
	status = "okay";
	interrupts = <436>;

	mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
		ti,mbox-tx = <1 0 0>;
		ti,mbox-rx = <0 0 0>;
	};
};

&mailbox0_cluster1 {
	status = "okay";
	interrupts = <432>;

	mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 {
		ti,mbox-tx = <1 0 0>;
		ti,mbox-rx = <0 0 0>;
	};
};

&mcu_r5fss0_core0 {
	memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
			<&mcu_r5fss0_core0_memory_region>;
	mboxes = <&mailbox0_cluster0>, <&mbox_mcu_r5fss0_core0>;
};

&mcu_r5fss0_core1 {
	memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
			<&mcu_r5fss0_core1_memory_region>;
	mboxes = <&mailbox0_cluster1>, <&mbox_mcu_r5fss0_core1>;
};

&icssg0_mdio {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&icssg0_mdio_pins_default>;

	icssg0_eth0_phy: ethernet-phy@0 {
		reg = <0>;
		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
	};

	icssg0_eth1_phy: ethernet-phy@1 {
		reg = <1>;
		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
	};
};
