// 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 "k3-am654.dtsi"
#include <dt-bindings/phy/phy.h>

/ {
	aliases {
		spi0 = &mcu_spi0;
		mmc0 = &sdhci1;
		mmc1 = &sdhci0;
	};

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

&wkup_pmx0 {
	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_uart_pins_default: arduino-uart-default-pins {
		pinctrl-single,pins = <
			/* (P4) MCU_UART0_RXD */
			AM65X_WKUP_IOPAD(0x0044, PIN_INPUT,  4)
			/* (P5) MCU_UART0_TXD */
			AM65X_WKUP_IOPAD(0x0048, PIN_OUTPUT, 4)
		>;
	};

	arduino_io_d2_to_d3_pins_default: arduino-io-d2-to-d3-default-pins {
		pinctrl-single,pins = <
			/* (P1) WKUP_GPIO0_31 */
			AM65X_WKUP_IOPAD(0x004C, PIN_OUTPUT, 7)
			/* (N3) WKUP_GPIO0_33 */
			AM65X_WKUP_IOPAD(0x0054, PIN_OUTPUT, 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 {
	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 */
		>;
	};

	arduino_io_d4_to_d9_pins_default: arduino-io-d4-to-d9-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0084, PIN_OUTPUT, 7)  /* (AG18) GPIO0_33 */
			AM65X_IOPAD(0x008C, PIN_OUTPUT, 7)  /* (AF17) GPIO0_35 */
			AM65X_IOPAD(0x0098, PIN_OUTPUT, 7)  /* (AH16) GPIO0_38 */
			AM65X_IOPAD(0x00AC, PIN_OUTPUT, 7)  /* (AH15) GPIO0_43 */
			AM65X_IOPAD(0x00C0, PIN_OUTPUT, 7)  /* (AG15) GPIO0_48 */
			AM65X_IOPAD(0x00CC, PIN_OUTPUT, 7)  /* (AD15) GPIO0_51 */
		>;
	};

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

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

	ecap0_pins_default: ecap0-default-pins {
		pinctrl-single,pins = <
			AM65X_IOPAD(0x0010, PIN_INPUT,  0)  /* (D21) ECAP0_IN_APWM_OUT */
		>;
	};
};

&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";
	pinctrl-names = "default";
	pinctrl-0 = <&arduino_uart_pins_default>;
};

&main_gpio0 {
	pinctrl-names = "default";
	pinctrl-0 = <&arduino_io_d4_to_d9_pins_default>;
	gpio-line-names =
		"main_gpio0-base", "", "", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "", "", "", "",
		"", "", "", "IO4", "", "IO5", "", "", "IO6", "",
		"", "", "", "IO7", "", "", "", "", "IO8", "",
		"", "IO9";
};

&wkup_gpio0 {
	pinctrl-names = "default";
	pinctrl-0 =
		<&arduino_io_d2_to_d3_pins_default>,
		<&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";
};

&ecap0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&ecap0_pins_default>;
};

&sdhci1 {
	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";
	pinctrl-names = "default";
	pinctrl-0 = <&mcu_spi0_pins_default>;

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