// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2014-2019 Texas Instruments Incorporated - https://www.ti.com/
 */

/dts-v1/;

#include "dra74x.dtsi"
#include "am57xx-commercial-grade.dtsi"
#include "dra74x-mmc-iodelay.dtsi"
#include "dra74-ipu-dsp-common.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pinctrl/dra.h>

/ {
	model = "BeagleBoard.org BeagleBone AI";
	compatible = "beagle,am5729-beagleboneai", "ti,am5728",
		     "ti,dra742", "ti,dra74", "ti,dra7";

	aliases {
		rtc0 = &tps659038_rtc;
		rtc1 = &rtc;
		display0 = &hdmi_conn;
	};

	chosen {
		stdout-path = &uart1;
	};

	memory@0 {
		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";
		};

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

	};

	vdd_adc: gpioregulator-vdd_adc {
		compatible = "regulator-gpio";
		regulator-name = "vdd_adc";
		vin-supply = <&vdd_5v>;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
		gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
		states = <1800000 0
			3300000 1>;
	};

	vdd_5v: fixedregulator-vdd_5v {
		compatible = "regulator-fixed";
		regulator-name = "vdd_5v";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	vtt_fixed: fixedregulator-vtt {
		/* TPS51200 */
		compatible = "regulator-fixed";
		regulator-name = "vtt_fixed";
		vin-supply = <&vdd_ddr>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
	};

	leds {
		compatible = "gpio-leds";

		led0 {
			label = "beaglebone:green:usr0";
			gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};

		led1 {
			label = "beaglebone:green:usr1";
			gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc0";
			default-state = "off";
		};

		led2 {
			label = "beaglebone:green:usr2";
			gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "cpu";
			default-state = "off";
		};

		led3 {
			label = "beaglebone:green:usr3";
			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc1";
			default-state = "off";
		};

		led4 {
			label = "beaglebone:green:usr4";
			gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "netdev";
			default-state = "off";
		};
	};

	hdmi_conn: connector@0 {
		compatible = "hdmi-connector";
		label = "hdmi";
		type = "a";

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

	hdmi_enc: encoder@0 {
		/* "ti,tpd12s016" software compatible with "ti,tpd12s015"
		 *  no need for individual driver
		 */
		compatible = "ti,tpd12s015";
		gpios = <0>,
			<0>,
			<&gpio7 12 GPIO_ACTIVE_HIGH>;

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

			port@0 {
				reg = <0x0>;

				hdmi_encoder_in: endpoint@0 {
					remote-endpoint = <&hdmi_out>;
				};
			};

			port@1 {
				reg = <0x1>;

				hdmi_encoder_out: endpoint@0 {
					remote-endpoint = <&hdmi_connector_in>;
				};
			};
		};
	};

	emmc_pwrseq: emmc_pwrseq {
		compatible = "mmc-pwrseq-emmc";
		reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
	};

	brcmf_pwrseq: brcmf_pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>,	/* BT-REG-ON */
				<&gpio3 18 GPIO_ACTIVE_LOW>;	/* WL-REG-ON */
	};

	extcon_usb1: extcon_usb1 {
		compatible = "linux,extcon-usb-gpio";
		id-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
	};
};

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

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

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

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

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

			smps12-in-supply = <&vdd_5v>;
			smps3-in-supply = <&vdd_5v>;
			smps45-in-supply = <&vdd_5v>;
			smps6-in-supply = <&vdd_5v>;
			smps7-in-supply = <&vdd_5v>;
			mps3-in-supply = <&vdd_5v>;
			smps8-in-supply = <&vdd_5v>;
			smps9-in-supply = <&vdd_5v>;
			ldo1-in-supply = <&vdd_5v>;
			ldo2-in-supply = <&vdd_5v>;
			ldo3-in-supply = <&vdd_5v>;
			ldo4-in-supply = <&vdd_5v>;
			ldo9-in-supply = <&vdd_5v>;
			ldoln-in-supply = <&vdd_5v>;
			ldousb-in-supply = <&vdd_5v>;
			ldortc-in-supply = <&vdd_5v>;

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

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

				vdd_dspeve: smps45 {
					/* VDD_DSPEVE on AM572 */
					regulator-name = "smps45";
					regulator-min-microvolt = < 850000>;
					regulator-max-microvolt = <1250000>;
					regulator-always-on;
					regulator-boot-on;
				};

				vdd_gpu: smps6 {
					/* VDD_GPU */
					regulator-name = "smps6";
					regulator-min-microvolt = < 850000>;
					regulator-max-microvolt = <1250000>;
					regulator-always-on;
					regulator-boot-on;
				};

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

				vdd_iva: smps8 {
					/* VDD_IVAHD */				/*** 1.06V */
					regulator-name = "smps8";
				};

				vdd_3v3: smps9 {
					/* VDD_3V3 */
					regulator-name = "smps9";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-always-on;
					regulator-boot-on;
				};

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

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

				vdd_1v8_phy_ldo3: ldo3 {
					/* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
					regulator-name = "ldo3";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				vdd_1v8_phy_ldo4: ldo4 {
					/* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
					regulator-name = "ldo4";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				/* LDO5-8 unused */

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

				vdd_1v8_pll: 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-always-on;
					regulator-boot-on;
				};

				ldortc_reg: ldortc {
					/* VDDA_RTC  */
					regulator-name = "ldortc";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

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

				regen2: regen2 {
					/* Needed for PMIC internal resource */
					regulator-name = "regen2";
					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>;
		};
	};

	/* STMPE811 touch screen controller */
	stmpe811@41 {
		compatible = "st,stmpe811";
		reg = <0x41>;
		interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
		interrupt-parent = <&gpio2>;
		id = <0>;
		blocks = <0x5>;
		irq-trigger = <0x1>;
		st,mod-12b = <1>; /* 12-bit ADC */
		st,ref-sel = <0>; /* internal ADC reference */
		st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */
		st,sample-time = <4>; /* ADC converstion time: 80 clocks */

		stmpe_adc {
			compatible = "st,stmpe-adc";
			st,norequest-mask = <0x00>; /* mask any channels to be used by touchscreen */
			adc0: iio-device@0 {
				#io-channel-cells = <1>;
				iio-channels = <&adc0 4>, <&adc0 1>, <&adc0 2>, <&adc0 3>, <&adc0 4>, <&adc0 5>, <&adc0 6>;
				iio-channel-names = "AIN0_P9_39", "AIN1_P9_40", "AIN2_P9_37", "AIN3_P9_38",
					"AIN4_P9_33", "AIN5_P9_36", "AIN6_P9_35";
			};
		};

		stmpe_touchscreen {
			status = "disabled";
			compatible = "st,stmpe-ts";
			/* 8 sample average control */
			st,ave-ctrl = <3>;
			/* 7 length fractional part in z */
			st,fraction-z = <7>;
			/*
			 * 50 mA typical 80 mA max touchscreen drivers
			 * current limit value
			 */
			st,i-drive = <1>;
			/* 1 ms panel driver settling time */
			st,settling = <3>;
			/* 5 ms touch detect interrupt delay */
			st,touch-det-delay = <5>;
		};

		stmpe_gpio {
			compatible = "st,stmpe-gpio";
		};

		stmpe_pwm {
			compatible = "st,stmpe-pwm";
			#pwm-cells = <2>;
		};
	};
};

&mcspi3 {
	status = "okay";
	ti,pindir-d0-out-d1-in;

	sn65hvs882: sn65hvs882@0 {
		compatible = "pisosr-gpio";
		gpio-controller;
		#gpio-cells = <2>;

		reg = <0>;
		spi-max-frequency = <1000000>;
		spi-cpol;
	};
};

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

&uart1 {
	status = "okay";
};

&davinci_mdio_sw {
	reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
	reset-delay-us = <2>;

	phy0: ethernet-phy@4 {
		reg = <4>;
		eee-broken-100tx;
		eee-broken-1000t;
	};
};

&mac_sw {
	status = "okay";
};

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

&cpsw_port2 {
	status = "disabled";
};

&ocp {
	pruss1_shmem: pruss_shmem@4b200000 {
		status = "okay";
		compatible = "ti,pruss-shmem";
		reg = <0x4b200000 0x020000>;
	};

	pruss2_shmem: pruss_shmem@4b280000 {
		status = "okay";
		compatible = "ti,pruss-shmem";
		reg = <0x4b280000 0x020000>;
	};
};

&mmc1 {
	status = "okay";
	vmmc-supply = <&vdd_3v3>;
	vqmmc-supply = <&vdd_sd>;
	bus-width = <4>;
	cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */

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

&mmc2 {
	status = "okay";
	vmmc-supply = <&vdd_1v8>;
	vqmmc-supply = <&vdd_1v8>;
	bus-width = <8>;
	ti,non-removable;
	non-removable;
	mmc-pwrseq = <&emmc_pwrseq>;

	ti,needs-special-reset;
	dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
	dma-names = "tx", "rx";

};

&mmc4 {
	/* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */
	/* HS: High speed up to 50 MHz (3.3 V signaling). */
	/* SDR12: SDR up to 25 MHz (1.8 V signaling). */
	/* SDR25: SDR up to 50 MHz (1.8 V signaling). */
	/* SDR50: SDR up to 100 MHz (1.8 V signaling). */
	/* SDR104: SDR up to 208 MHz (1.8 V signaling) */
	/* DDR50: DDR up to 50 MHz (1.8 V signaling). */
	status = "okay";

	ti,needs-special-reset;
	vmmc-supply = <&vdd_3v3>;
	cap-power-off-card;
	keep-power-in-suspend;
	bus-width = <4>;
	ti,non-removable;
	non-removable;
	no-1-8-v;
	max-frequency = <24000000>;

	#address-cells = <1>;
	#size-cells = <0>;
	mmc-pwrseq = <&brcmf_pwrseq>;

	brcmf: wifi@1 {
		status = "okay";
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";

		brcm,sd-head-align = <4>;
		brcm,sd_head_align = <4>;
		brcm,sd_sgentry_align = <512>;

		interrupt-parent = <&gpio3>;
		interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
		interrupt-names = "host-wake";
	};
};

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

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

&usb1 {
	status = "okay";
	dr_mode = "otg";
};

&omap_dwc3_1 {
	extcon = <&extcon_usb1>;
};

&usb2 {
	status = "okay";
	dr_mode = "host";
};

&dss {
	status = "okay";
	vdda_video-supply = <&vdd_1v8_pll>;
};

&hdmi {
	status = "okay";
	vdda-supply = <&vdd_1v8_phy_ldo4>;

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

&bandgap {
	status = "okay";
};

&cpu_alert0 {
	temperature = <55000>; /* milliCelsius */
};

&cpu_crit {
	temperature = <85000>; /* milliCelsius */
};

&gpu_crit {
	temperature = <85000>; /* milliCelsius */
};

&core_crit {
	temperature = <85000>; /* milliCelsius */
};

&dspeve_crit {
	temperature = <85000>; /* milliCelsius */
};

&iva_crit {
	temperature = <85000>; /* milliCelsius */
};

&sata {
	status = "disabled";
};

&sata_phy {
	status = "disabled";
};

/* bluetooth */
&uart6 {
	status = "okay";
};

/* cape header stuff */
&i2c4 {
	status = "okay";
	clock-frequency = <100000>;
};

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

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

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

&dsp2 {
	status = "okay";
	memory-region = <&dsp2_memory_region>;
};
