// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2014-2019 Texas Instruments Incorporated - https://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"
