// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2015-2016 Texas Instruments Incorporated - https://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>;
};

&pruss1_mdio {
	status = "disabled";
};

&pruss2_mdio {
	status = "disabled";
};