// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
 */
/dts-v1/;

#include "am5718.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include "dra7-mmc-iodelay.dtsi"
#include "dra72x-mmc-iodelay.dtsi"
#include "am57xx-idk-common.dtsi"
#include "dra7-ipu-dsp-common.dtsi"

/ {
	model = "TI AM5718 IDK";
	compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7";

	memory@80000000 {
		device_type = "memory";
		reg = <0x0 0x80000000 0x0 0x40000000>;
	};

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

		ipu2_memory_region: ipu2-memory@95800000 {
			compatible = "shared-dma-pool";
			reg = <0x0 0x95800000 0x0 0x3800000>;
			reusable;
			status = "okay";
		};

		dsp1_memory_region: dsp1-memory@99000000 {
			compatible = "shared-dma-pool";
			reg = <0x0 0x99000000 0x0 0x4000000>;
			reusable;
			status = "okay";
		};

		ipu1_memory_region: ipu1-memory@9d000000 {
			compatible = "shared-dma-pool";
			reg = <0x0 0x9d000000 0x0 0x2000000>;
			reusable;
			status = "okay";
		};
	};

	leds {
		compatible = "gpio-leds";
		cpu0-led {
			label = "status0:red:cpu0";
			gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			linux,default-trigger = "cpu0";
		};

		usr0-led {
			label = "status0:green:usr";
			gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		heartbeat-led {
			label = "status0:blue:heartbeat";
			gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			linux,default-trigger = "heartbeat";
		};

		usr1-led {
			label = "status1:red:usr";
			gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		usr2-led {
			label = "status1:green:usr";
			gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		mmc0-led {
			label = "status1:blue:mmc0";
			gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			linux,default-trigger = "mmc0";
		};
	};

	idk-leds {
		status = "disabled";
		compatible = "gpio-leds";
		red0-led {
			label = "idk:red0";
			gpios = <&gpio6 19 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		green0-led {
			label = "idk:green0";
			gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		blue0-led {
			label = "idk:blue0";
			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		red1-led {
			label = "idk:red1";
			gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		green1-led {
			label = "idk:green1";
			gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		blue1-led {
			label = "idk:blue1";
			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		red2-led {
			label = "idk:red2";
			gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		green2-led {
			label = "idk:green2";
			gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		blue2-led {
			label = "idk:blue2";
			gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		red3-led {
			label = "idk:red3";
			gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		green3-led {
			label = "idk:green3";
			gpios = <&gpio7 25 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		blue3-led {
			label = "idk:blue3";
			gpios = <&gpio7 24 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};
};

&extcon_usb2 {
	id-gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
	vbus-gpio = <&gpio7 22 GPIO_ACTIVE_HIGH>;
};

&sn65hvs882 {
	load-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
};

&ipu2 {
	status = "okay";
	memory-region = <&ipu2_memory_region>;
};

&ipu1 {
	status = "okay";
	memory-region = <&ipu1_memory_region>;
};

&dsp1 {
	status = "okay";
	memory-region = <&dsp1_memory_region>;
};

&pcie1_rc {
	status = "okay";
	gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;
};

&mmc1 {
	pinctrl-names = "default", "hs";
	pinctrl-0 = <&mmc1_pins_default_no_clk_pu>;
	pinctrl-1 = <&mmc1_pins_hs>;
};

&mmc2 {
	pinctrl-names = "default", "hs", "ddr_3_3v";
	pinctrl-0 = <&mmc2_pins_default>;
	pinctrl-1 = <&mmc2_pins_hs>;
	pinctrl-2 = <&mmc2_pins_ddr_rev20 &mmc2_iodelay_ddr_conf>;
};

&mac_sw {
	pinctrl-names = "default", "sleep";
	status = "okay";
};

&cpsw_port1 {
	phy-handle = <&ethphy0_sw>;
	phy-mode = "rgmii-rxid";
	ti,dual-emac-pvid = <1>;
};

&cpsw_port2 {
	phy-handle = <&ethphy1_sw>;
	phy-mode = "rgmii-rxid";
	ti,dual-emac-pvid = <2>;
};

&davinci_mdio_sw {
	ethphy0_sw: ethernet-phy@0 {
		reg = <0>;
	};

	ethphy1_sw: ethernet-phy@1 {
		reg = <1>;
	};
};
