/*
 * Copyright (C) 2014-2016 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
/dts-v1/;

#include "dra74x.dtsi"
#include "am57xx-commercial-grade.dtsi"
#include "dra74x-mmc-iodelay.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";

	aliases {
		rtc1 = &tps659038_rtc;
		rtc2 = &rtc;
		display0 = &hdmi0;

		sound0 = &hdmi;
		sound1 = &sound0;
	};

	chosen {
		stdout-path = &uart3;
	};

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

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

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

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

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

		dsp2_cma_pool: dsp2_cma@9f000000 {
			compatible = "shared-dma-pool";
			reg = <0x0 0x9f000000 0x0 0x800000>;
			reusable;
			status = "okay";
		};

		dsp2dsp_shm: dsp2dsp_shm@bfc00000 {
			reg = <0x0 0xbfc00000 0x0 0x400000>;
			no-map;
			status = "okay";
		};
	};

	vdd_3v3: fixedregulator-vdd_3v3 {
		compatible = "regulator-fixed";
		regulator-name = "vdd_3v3";
		vin-supply = <&regen1>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	aic_dvdd: fixedregulator-aic_dvdd {
		compatible = "regulator-fixed";
		regulator-name = "aic_dvdd_fixed";
		vin-supply = <&vdd_3v3>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	vtt_fixed: fixedregulator-vtt {
		/* TPS51200 */
		compatible = "regulator-fixed";
		regulator-name = "vtt_fixed";
		vin-supply = <&smps3_reg>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
		enable-active-high;
		gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
	};

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

		led0 {
			label = "heartbeat";
			gpios = <&gpio7 7 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};

		led1 {
			label = "disk";
			gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc2";
			default-state = "off";
		};

		led2 {
			label = "user-led0";
			gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		led3 {
			label = "user-led1";
			gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		led4 {
			label = "user-led2";
			gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};
	};

	gpio_fan: gpio_fan {
		/* Based on 5v 500mA AFB02505HHB */
		compatible = "gpio-fan";
		pinctrl-names = "default";
		pinctrl-0 = <&fan_pins_default>;
		gpios =  <&gpio3 0 GPIO_ACTIVE_HIGH>;
		gpio-fan,speed-map = <0     0>,
				     <13000 1>;
		#cooling-cells = <2>;
	};

	hdmi0: connector {
		pinctrl-names = "default";
		pinctrl-0 = <&hdmi_pins_default>;
		compatible = "hdmi-connector";
		label = "hdmi";

		type = "a";

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

	tpd12s015: encoder {
		compatible = "ti,tpd12s015";

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

			port@0 {
				reg = <0>;

				tpd12s015_in: endpoint {
					remote-endpoint = <&hdmi_out>;
				};
			};

			port@1 {
				reg = <1>;

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

	sound0: sound0 {
		compatible = "simple-audio-card";
		simple-audio-card,name = "BeagleBoard-X15";
		simple-audio-card,widgets =
			"Line", "Line Out",
			"Line", "Line In";
		simple-audio-card,routing =
			"Line Out",	"LLOUT",
			"Line Out",	"RLOUT",
			"MIC2L",	"Line In",
			"MIC2R",	"Line In";
		simple-audio-card,format = "dsp_b";
		simple-audio-card,bitclock-master = <&sound0_master>;
		simple-audio-card,frame-master = <&sound0_master>;
		simple-audio-card,bitclock-inversion;

		simple-audio-card,cpu {
			sound-dai = <&mcasp3>;
		};

		sound0_master: simple-audio-card,codec {
			sound-dai = <&tlv320aic3104>;
			clocks = <&clkout2_clk>;
		};
	};
};

&dra7_pmx_core {
	usb1_pins_default: usb1_pins_defalut {
		pinctrl-single,pins = <
			DRA7XX_CORE_IOPAD(0x3680, (PIN_OUTPUT | SLEWCONTROL | MUX_MODE0)) /* usb1_drvvbus.usb1_drvvbus */
		>;
	};

	hdmi_pins_default: hdmi_pins_default {
		pinctrl-single,pins = <
			DRA7XX_CORE_IOPAD(0x37bc, (PIN_INPUT_PULLUP | SLEWCONTROL | MUX_MODE6)) /* spi1_cs3.hdmi1_cec */
			DRA7XX_CORE_IOPAD(0x3808, (PIN_INPUT_PULLUP | MUX_MODE1)) /* i2c2_sda.hdmi1_ddc_scl */
			DRA7XX_CORE_IOPAD(0x380c, (PIN_INPUT_PULLUP | MUX_MODE1)) /* i2c2_scl.hdmi1_ddc_sda */
		>;
	};

	rgmii0_pins_default: rgmii0_pins_default {
		pinctrl-single,pins = <
			DRA7XX_CORE_IOPAD(0x3650, (PIN_OUTPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_txc.rgmii0_txc */
			DRA7XX_CORE_IOPAD(0x3654, (PIN_OUTPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_txcl.rgmii0_txcl */
			DRA7XX_CORE_IOPAD(0x3658, (PIN_OUTPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_txd3.rgmii0_txd3 */
			DRA7XX_CORE_IOPAD(0x365c, (PIN_OUTPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_txd2.rgmii0_txd2 */
			DRA7XX_CORE_IOPAD(0x3660, (PIN_OUTPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_txd1.rgmii0_txd1 */
			DRA7XX_CORE_IOPAD(0x3664, (PIN_OUTPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_txd0.rgmii0_txd0 */
			DRA7XX_CORE_IOPAD(0x3668, (PIN_INPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_rxc.rgmii0_rxc */
			DRA7XX_CORE_IOPAD(0x366c, (PIN_INPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_rxcl.rgmii0_rxcl */
			DRA7XX_CORE_IOPAD(0x3670, (PIN_INPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_rxd3.rgmii0_rxd3 */
			DRA7XX_CORE_IOPAD(0x3674, (PIN_INPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_rxd2.rgmii0_rxd2 */
			DRA7XX_CORE_IOPAD(0x3678, (PIN_INPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_rxd1.rgmii0_rxd1 */
			DRA7XX_CORE_IOPAD(0x367c, (PIN_INPUT | MODE_SELECT | MUX_MODE0)) /* rgmii0_rxd0.rgmii0_rxd0 */
		>;
	};

	rgmii1_pins_default: rgmii1_pins_default {
		pinctrl-single,pins = <
			DRA7XX_CORE_IOPAD(0x3598, (PIN_OUTPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_txc.rgmii1_txc */
			DRA7XX_CORE_IOPAD(0x359c, (PIN_OUTPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_txcl.rgmii1_txcl */
			DRA7XX_CORE_IOPAD(0x35a0, (PIN_OUTPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_txd3.rgmii1_txd3 */
			DRA7XX_CORE_IOPAD(0x35a4, (PIN_OUTPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_txd2.rgmii1_txd2 */
			DRA7XX_CORE_IOPAD(0x35a8, (PIN_OUTPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_txd1.rgmii1_txd1 */
			DRA7XX_CORE_IOPAD(0x35ac, (PIN_OUTPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_txd0.rgmii1_txd0 */
			DRA7XX_CORE_IOPAD(0x35b0, (PIN_INPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_rxc.rgmii1_rxc */
			DRA7XX_CORE_IOPAD(0x35b4, (PIN_INPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_rxcl.rgmii1_rxcl */
			DRA7XX_CORE_IOPAD(0x35b8, (PIN_INPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_rxd3.rgmii1_rxd3 */
			DRA7XX_CORE_IOPAD(0x35bc, (PIN_INPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_rxd2.rgmii1_rxd2 */
			DRA7XX_CORE_IOPAD(0x35c0, (PIN_INPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_rxd1.rgmii1_rxd1 */
			DRA7XX_CORE_IOPAD(0x35c4, (PIN_INPUT | MODE_SELECT | MUX_MODE3)) /* rgmii1_rxd0.rgmii1_rxd0 */
		>;
	};

	i2c1_pins_default: i2c1_pins_default {
		pinctrl-single,pins = <
			DRA7XX_CORE_IOPAD(0x3800, (PIN_INPUT_PULLUP | MUX_MODE0)) /* i2c1_sda.sda */
			DRA7XX_CORE_IOPAD(0x3804, (PIN_INPUT_PULLUP | MUX_MODE0)) /* i2c1_scl.scl */
		>;
	};

	fan_pins_default: fan_pins_default {
		pinctrl-single,pins = <
			DRA7XX_CORE_IOPAD(0x34e4, (PIN_OUTPUT | MUX_MODE14)) /* vin1a_de0.gpio3_0 */
		>;
	};

	leds_pins_default: leds_pins_default {
		pinctrl-single,pins = <
			DRA7XX_CORE_IOPAD(0x37a4, (PIN_OUTPUT | MUX_MODE14)) /* spi1_sclk.gpio7_7 (som led1) A25 */
			DRA7XX_CORE_IOPAD(0x37ac, (PIN_OUTPUT | MUX_MODE14)) /* spi1_d0.gpio7_9 (som led2) B25 */
			DRA7XX_CORE_IOPAD(0x3530, (PIN_OUTPUT | MUX_MODE14)) /* vin1a_d15.gpio3_19 */
			DRA7XX_CORE_IOPAD(0x3534, (PIN_OUTPUT | MUX_MODE14)) /* vin1a_d16.gpio3_20 */
			DRA7XX_CORE_IOPAD(0x3538, (PIN_OUTPUT | MUX_MODE14)) /* vin1a_d17.gpio3_21 */
		>;
	};
};

&i2c1 {
	status = "okay";
	clock-frequency = <400000>;

	tps659038: tps659038@58 {
		compatible = "ti,tps659038";
		reg = <0x58>;
		interrupt-parent = <&gpio1>;
		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;

		#interrupt-cells = <2>;
		interrupt-controller;

		ti,system-power-controller;
		ti,palmas-override-powerhold;

		tps659038_pmic {
			compatible = "ti,tps659038-pmic";

			regulators {
				smps12_reg: smps12 {
					/* VDD_MPU */
					regulator-name = "smps12";
					regulator-min-microvolt = < 850000>;
					regulator-max-microvolt = <1250000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps3_reg: smps3 {
					/* VDD_DDR */
					regulator-name = "smps3";
					regulator-min-microvolt = <1350000>;
					regulator-max-microvolt = <1350000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps45_reg: smps45 {
					/* VDD_DSPEVE, VDD_IVA, VDD_GPU */
					regulator-name = "smps45";
					regulator-min-microvolt = < 850000>;
					regulator-max-microvolt = <1060000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps6_reg: smps6 {
					/* VDD_CORE */
					regulator-name = "smps6";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps7_reg: smps7 {
					/* VDD_CORE */
					regulator-name = "smps7";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
					regulator-always-on;
					regulator-boot-on;
				};

				smps8_reg: smps8 {
					/* VDD_1V06 */
					regulator-name = "smps8";
					regulator-min-microvolt = <1060000>;
					regulator-max-microvolt = <1060000>;
					regulator-always-on;
					regulator-boot-on;
				};

				/* SMPS9 unused */

				ldo1_reg: ldo1 {
					/* VDD_SD / VDDSHV8  */
					regulator-name = "ldo1";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <3300000>;
					regulator-boot-on;
					regulator-always-on;
				};

				ldo2_reg: ldo2 {
					/* VDD_SHV5 */
					regulator-name = "ldo2";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

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

				ldo4_reg: ldo4 {
					/* VDDA_1V8_PHYB */
					regulator-name = "ldo4";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldo9_reg: ldo9 {
					/* VDD_RTC */
					regulator-name = "ldo9";
					regulator-min-microvolt = <1050000>;
					regulator-max-microvolt = <1050000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldoln_reg: ldoln {
					/* VDDA_1V8_PLL */
					regulator-name = "ldoln";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				ldousb_reg: ldousb {
					/* VDDA_3V_USB: VDDA_USBHS33 */
					regulator-name = "ldousb";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-boot-on;
				};

				regen1: regen1 {
					/* VDD_3V3_ON */
					regulator-name = "regen1";
					regulator-boot-on;
					regulator-always-on;
				};
			};
		};

		tps659038_rtc: tps659038_rtc {
			compatible = "ti,palmas-rtc";
			interrupt-parent = <&tps659038>;
			interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
			wakeup-source;
		};

		tps659038_pwr_button: tps659038_pwr_button {
			compatible = "ti,palmas-pwrbutton";
			interrupt-parent = <&tps659038>;
			interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
			wakeup-source;
			ti,palmas-long-press-seconds = <12>;
		};

		tps659038_gpio: tps659038_gpio {
			compatible = "ti,palmas-gpio";
			gpio-controller;
			#gpio-cells = <2>;
		};

		extcon_usb2: tps659038_usb {
			compatible = "ti,palmas-usb-vid";
			ti,enable-vbus-detection;
			vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
		};

	};

	tmp102: tmp102@48 {
		compatible = "ti,tmp102";
		reg = <0x48>;
		interrupt-parent = <&gpio7>;
		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
		#thermal-sensor-cells = <1>;
	};

	tlv320aic3104: tlv320aic3104@18 {
		#sound-dai-cells = <0>;
		compatible = "ti,tlv320aic3104";
		reg = <0x18>;
		assigned-clocks = <&clkoutmux2_clk_mux>;
		assigned-clock-parents = <&sys_clk2_dclk_div>;

		status = "okay";
		adc-settle-ms = <40>;

		AVDD-supply = <&vdd_3v3>;
		IOVDD-supply = <&vdd_3v3>;
		DRVDD-supply = <&vdd_3v3>;
		DVDD-supply = <&aic_dvdd>;
	};

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

&i2c3 {
	status = "okay";
	clock-frequency = <400000>;
};

&gpio7 {
	ti,no-reset-on-init;
	ti,no-idle-on-init;
};

&cpu0 {
	vdd-supply = <&smps12_reg>;
	voltage-tolerance = <1>;
};

&dpll_dsp_ck {
    assigned-clock-rates = <750000000>;
};

&dpll_dsp_m2_ck {
    assigned-clock-rates = <750000000>;
};

&dpll_dsp_m3x2_ck {
    assigned-clock-rates = <500000000>;
};

&dpll_iva_ck {
    assigned-clock-rates = <1064000000>;
};

&dpll_iva_m2_ck {
    assigned-clock-rates = <532000000>;
};

&dpll_gpu_ck {
    assigned-clock-rates = <1064000000>;
};

&dpll_gpu_m2_ck {
    assigned-clock-rates = <532000000>;
};

&uart3 {
	status = "okay";
	interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
			      <&dra7_pmx_core 0x3f8>;
};

&davinci_mdio {
	phy0: ethernet-phy@0 {
		reg = <0>;
	};

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

&mac {
	status = "okay";
};

&cpsw_emac0 {
	phy-handle = <&phy0>;
	phy-mode = "rgmii";
	dual_emac_res_vlan = <1>;
};

&cpsw_emac1 {
	phy-handle = <&phy1>;
	phy-mode = "rgmii";
	dual_emac_res_vlan = <2>;
};

&mmc1 {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&mmc1_pins_default>;

	bus-width = <4>;
	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
};

&mmc2 {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&mmc2_pins_default>;

	vmmc-supply = <&vdd_3v3>;
	bus-width = <8>;
	ti,non-removable;
	cap-mmc-dual-data-rate;
	no-1-8-v;
};

&sata {
	status = "okay";
};

&usb2_phy1 {
	phy-supply = <&ldousb_reg>;
};

&usb2_phy2 {
	phy-supply = <&ldousb_reg>;
};

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

&omap_dwc3_2 {
	extcon = <&extcon_usb2>;
};

&usb2 {
	/*
	 * Stand alone usage is peripheral only.
	 * However, with some resistor modifications
	 * this port can be used via expansion connectors
	 * as "host" or "dual-role". If so, provide
	 * the necessary dr_mode override in the expansion
	 * board's DT.
	 */
	dr_mode = "host";
};

&cpu_trips {
	cpu_alert1: cpu_alert1 {
		temperature = <50000>; /* millicelsius */
		hysteresis = <2000>; /* millicelsius */
		type = "active";
	};
};

&cpu_cooling_maps {
	map1 {
		trip = <&cpu_alert1>;
		cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
	};
};

&dss {
	status = "ok";

	vdda_video-supply = <&ldoln_reg>;
};

&bb2d {
	status = "okay";
};

&hdmi {
	status = "ok";
	vdda-supply = <&ldo4_reg>;

	port {
		hdmi_out: endpoint {
			remote-endpoint = <&tpd12s015_in>;
		};
	};
};

&pcie1_rc {
	status = "ok";
};

&pcie1_ep {
	status = "disable";
};

&mcasp3 {
	#sound-dai-cells = <0>;
	assigned-clocks = <&mcasp3_ahclkx_mux>;
	assigned-clock-parents = <&sys_clkin2>;
	status = "okay";

	op-mode = <0>;	/* MCASP_IIS_MODE */
	tdm-slots = <2>;
	/* 4 serializers */
	serial-dir = <	/* 0: INACTIVE, 1: TX, 2: RX */
		1 2 0 0
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};

&mailbox3 {
	status = "okay";
	mbox_pru1_0: mbox_pru1_0 {
		status = "okay";
	};
	mbox_pru1_1: mbox_pru1_1 {
		status = "okay";
	};
};

&mailbox4 {
	status = "okay";
	mbox_pru2_0: mbox_pru2_0 {
		status = "okay";
	};
	mbox_pru2_1: mbox_pru2_1 {
		status = "okay";
	};
};

&mailbox5 {
	status = "okay";
	mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
		status = "okay";
	};
	mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
		status = "okay";
	};
};

&mailbox6 {
	status = "okay";
	mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
		status = "okay";
	};
	mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
		status = "okay";
	};
};

&mmu0_dsp1 {
	status = "okay";
};

&mmu1_dsp1 {
	status = "okay";
};

&mmu0_dsp2 {
	status = "okay";
};

&mmu1_dsp2 {
	status = "okay";
};

&mmu_ipu1 {
	status = "okay";
};

&mmu_ipu2 {
	status = "okay";
};

&ipu2 {
	status = "okay";
	memory-region = <&ipu2_cma_pool>;
	mboxes = <&mailbox6 &mbox_ipu2_ipc3x>;
	timers = <&timer3>;
	watchdog-timers = <&timer12>, <&timer9>;
};

&ipu1 {
	status = "okay";
	memory-region = <&ipu1_cma_pool>;
	mboxes = <&mailbox5 &mbox_ipu1_ipc3x>;
	timers = <&timer11>;
	watchdog-timers = <&timer7>, <&timer8>;
};

&dsp1 {
	status = "okay";
	memory-region = <&dsp1_cma_pool>;
	mboxes = <&mailbox5 &mbox_dsp1_ipc3x>;
	timers = <&timer5>;
	watchdog-timers = <&timer10>;
};

&dsp2 {
	status = "okay";
	memory-region = <&dsp2_cma_pool>;
	mboxes = <&mailbox6 &mbox_dsp2_ipc3x>;
	timers = <&timer6>;
	watchdog-timers = <&timer13>;
};

&pruss_soc_bus1 {
	status = "okay";

	pruss1: pruss@4b200000 {
		status = "okay";

		pru1_0: pru@4b234000 {
			interrupt-parent = <&pruss1_intc>;
			interrupts = <16>, <17>;
			interrupt-names = "vring", "kick";
			status = "okay";
		};

		pru1_1: pru@4b238000 {
			interrupt-parent = <&pruss1_intc>;
			interrupts = <18>, <19>;
			interrupt-names = "vring", "kick";
			status = "okay";
		};
	};
};

&pruss_soc_bus2 {
	status = "okay";

	pruss2: pruss@4b280000 {
		status = "okay";

		pru2_0: pru@4b2b4000 {
			interrupt-parent = <&pruss2_intc>;
			interrupts = <16>, <17>;
			interrupt-names = "vring", "kick";
			status = "okay";
		};

		pru2_1: pru@4b2b8000 {
			interrupt-parent = <&pruss2_intc>;
			interrupts = <18>, <19>;
			interrupt-names = "vring", "kick";
			status = "okay";
		};
	};
};
