// SPDX-License-Identifier: GPL-2.0

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

/ {
	chosen {
		stdout-path = &uarta;
	};

	aliases {
		i2c0 = &pwr_i2c;

		mmc0 = &sdmmc4;	/* eMMC */

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

		usb0 = &usb1;
	};

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

	host1x@50000000 {
		dc@54200000 {
			nvidia,180-rotation;
			rgb {
				status = "okay";

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

	gpio@6000d000 {
		volume-buttons-hog {
			gpio-hog;
			gpios = <TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>,
				<TEGRA_GPIO(Q, 0) GPIO_ACTIVE_HIGH>;
			output-low;
		};
	};

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

	pwm: pwm@7000a000 {
		status = "okay";
	};

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

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

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

	usb1: usb@7d000000 {
		status = "okay";
		dr_mode = "otg";
	};

	backlight: backlight {
		compatible = "pwm-backlight";

		enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
		power-supply = <&vdd_5v0_bl>;
		pwms = <&pwm 0 50000>;

		brightness-levels = <1 35 70 105 140 175 210 255>;
		default-brightness-level = <5>;
	};

	/* 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>;
		};
	};

	panel: panel {
		compatible = "simple-panel";

		power-supply = <&vdd_pnl_reg>;
		enable-gpios = <&gpio TEGRA_GPIO(N, 6) GPIO_ACTIVE_HIGH>;

		backlight = <&backlight>;

		display-timings {
			timing@0 {
				/* 1280x800@60Hz */
				clock-frequency = <68000000>;

				hactive = <800>;
				hfront-porch = <24>;
				hback-porch = <32>;
				hsync-len = <24>;

				vactive = <1280>;
				vfront-porch = <5>;
				vback-porch = <32>;
				vsync-len = <1>;
			};
		};
	};

	vdd_pnl_reg: regulator-pnl {
		compatible = "regulator-fixed";
		regulator-name = "vdd_panel";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio TEGRA_GPIO(W, 1) GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

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