// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include <dt-bindings/input/input.h>
#include "tegra30.dtsi"

/ {
	model = "ASUS Portable AiO P1801-T";
	compatible = "asus,p1801-t", "nvidia,tegra30";

	chosen {
		stdout-path = &uarta;
	};

	aliases {
		i2c0 = &pwr_i2c;
		i2c1 = &hdmi_ddc;

		mmc0 = &sdmmc4;	/* eMMC */
		mmc1 = &sdmmc1; /* uSD slot */

		rtc0 = &pmic;
		rtc1 = "/rtc@7000e000";

		usb0 = &usb1;
		usb1 = &usb2; /* Mini USB */
		usb2 = &usb3; /* Dock USB */
	};

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

	host1x@50000000 {
		dc@54200000 {
			clocks = <&tegra_car TEGRA30_CLK_DISP1>,
				 <&tegra_car TEGRA30_CLK_PLL_D_OUT0>;

			rgb {
				status = "okay";

				nvidia,panel = <&hdmi>;
			};
		};

		hdmi: hdmi@54280000 {
			clocks = <&tegra_car TEGRA30_CLK_HDMI>,
				 <&tegra_car TEGRA30_CLK_PLL_D_OUT0>;

			status = "okay";

			hdmi-supply = <&hdmi_5v0_sys>;
			pll-supply = <&vdd_1v8_vio>;
			vdd-supply = <&hdmi_3v3_vdd>;

			/* low: tablet, high: dock */
			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(H, 4) GPIO_ACTIVE_LOW>;
			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
		};
	};

	uarta: serial@70006000 {
		status = "okay";
	};

	hdmi_ddc: i2c@7000c700 {
		status = "okay";
		clock-frequency = <33000>;
	};

	pwr_i2c: i2c@7000d000 {
		status = "okay";
		clock-frequency = <400000>;

		/* Texas Instruments TPS659110 PMIC */
		pmic: tps65911@2d {
			compatible = "ti,tps65911";
			reg = <0x2d>;

			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
			#interrupt-cells = <2>;
			interrupt-controller;

			ti,system-power-controller;

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

			regulators {
				vdd_1v8_vio: vddio {
					regulator-name = "vdd_1v8_gen";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-boot-on;
				};

				/* eMMC VDD */
				vcore_emmc: ldo1 {
					regulator-name = "vdd_emmc_core";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-boot-on;
				};

				/* uSD slot VDD */
				vdd_usd: ldo2 {
					regulator-name = "vdd_usd";
					regulator-min-microvolt = <3100000>;
					regulator-max-microvolt = <3100000>;
					regulator-boot-on;
				};

				/* uSD slot VDDIO */
				vddio_usd: ldo3 {
					regulator-name = "vddio_usd";
					regulator-min-microvolt = <3100000>;
					regulator-max-microvolt = <3100000>;
					regulator-always-on;
					regulator-boot-on;
				};
			};
		};
	};

	sdmmc1: sdhci@78000000 {
		status = "okay";
		bus-width = <4>;

		cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
		power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;

		vmmc-supply = <&vdd_usd>;
		vqmmc-supply = <&vddio_usd>;
	};

	sdmmc4: sdhci@78000600 {
		status = "okay";
		bus-width = <8>;
		non-removable;

		vmmc-supply = <&vcore_emmc>;
		vqmmc-supply = <&vdd_1v8_vio>;
	};

	/* USB via ASUS connector */
	usb1: usb@7d000000 {
		status = "okay";
		dr_mode = "otg";
	};

	usb-phy@7d000000 {
		status = "okay";
		nvidia,hssync-start-delay = <0>;
		nvidia,xcvr-lsfslew = <2>;
		nvidia,xcvr-lsrslew = <2>;
	};

	/* Mini USB port */
	usb2: usb@7d004000 {
		status = "okay";
		nvidia,vbus-gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_HIGH>;
	};

	usb-phy@7d004000 {
		status = "okay";
	};

	/* Dock's USB port */
	usb3: usb@7d008000 {
		status = "okay";
	};

	usb-phy@7d008000 {
		status = "okay";
	};

	/* PMIC has a built-in 32KHz oscillator which is used by PMC */
	clk32k_in: clock-32k {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <32768>;
		clock-output-names = "pmic-oscillator";
	};

	gpio-keys {
		compatible = "gpio-keys";

		key-power {
			label = "Power";
			gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
			linux,code = <KEY_ENTER>;
		};

		key-volume-up {
			label = "Volume Up";
			gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>;
			linux,code = <KEY_UP>;
		};

		key-volume-down {
			label = "Volume Down";
			gpios = <&gpio TEGRA_GPIO(Q, 3) GPIO_ACTIVE_LOW>;
			linux,code = <KEY_DOWN>;
		};
	};

	hdmi_3v3_vdd: regulator-vdd {
		compatible = "regulator-fixed";
		regulator-name = "hdmi_3v3_vdd";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	hdmi_5v0_sys: regulator-hdmi {
		compatible = "regulator-fixed";
		regulator-name = "hdmi_5v0_sys";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio TEGRA_GPIO(P, 2) GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};
};
