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

/dts-v1/;

#include "dra74x.dtsi"
#include "dra74x-mmc-iodelay.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>;
	};

	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";
		ti,enable-id-detection;
		id-gpio = <&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>;
		};
	};
};

&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 {
	reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
	reset-delay-us = <2>;

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

&mac {
	slaves = <1>;
	status = "okay";
};

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

&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";

	pinctrl-names = "default", "hs", "ddr_1_8v", "hs200_1_8v";
	pinctrl-0 = <&mmc2_pins_default>;
	pinctrl-1 = <&mmc2_pins_hs>;
	pinctrl-2 = <&mmc2_pins_ddr_rev20>;
	pinctrl-3 = <&mmc2_pins_hs200>;

};

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

#include "omap5-u-boot.dtsi"
