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

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

/ {
	model = "Toradex Apalis T30 on Apalis Evaluation Board";
	compatible = "toradex,apalis_t30-eval", "toradex,apalis_t30", "nvidia,tegra30";

	aliases {
		rtc0 = "/i2c@7000c000/rtc@68";
		rtc1 = "/i2c@7000d000/tps65911@2d";
		rtc2 = "/rtc@7000e000";
		serial0 = &uarta;
		serial1 = &uartb;
		serial2 = &uartc;
		serial3 = &uartd;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	pcie@3000 {
		status = "okay";

		pci@1,0 {
			status = "okay";
		};

		pci@2,0 {
			status = "okay";
		};

		pci@3,0 {
			status = "okay";
		};
	};

	host1x@50000000 {
		dc@54200000 {
			rgb {
				status = "okay";
				nvidia,panel = <&panel>;
			};
		};
		hdmi@54280000 {
			status = "okay";
		};
	};

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

	serial@70006040 {
		compatible = "nvidia,tegra30-hsuart";
		status = "okay";
	};

	serial@70006200 {
		compatible = "nvidia,tegra30-hsuart";
		status = "okay";
	};

	serial@70006300 {
		compatible = "nvidia,tegra30-hsuart";
		status = "okay";
	};

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

	/*
	 * GEN1_I2C: I2C1_SDA/SCL on MXM3 pin 209/211 (e.g. RTC on carrier
	 * board)
	 */
	i2c@7000c000 {
		status = "okay";
		clock-frequency = <100000>;

		pcie-switch@58 {
			compatible = "plx,pex8605";
			reg = <0x58>;
		};

		/* M41T0M6 real time clock on carrier board */
		rtc@68 {
			compatible = "st,m41t00";
			reg = <0x68>;
		};
	};

	/* GEN2_I2C: unused */

	/*
	 * CAM_I2C: I2C3_SDA/SCL on MXM3 pin 201/203 (e.g. camera sensor on
	 * carrier board)
	 */
	cami2c: i2c@7000c500 {
		status = "okay";
		clock-frequency = <400000>;
	};

	/* DDC: I2C2_SDA/SCL on MXM3 pin 205/207 (e.g. display EDID) */
	hdmiddc: i2c@7000c700 {
		status = "okay";
	};

	/* SPI1: Apalis SPI1 */
	spi@7000d400 {
		status = "okay";
		spi-max-frequency = <25000000>;
		spidev0: spidev@1 {
			compatible = "spidev";
			reg = <1>;
			spi-max-frequency = <25000000>;
		};
	};

	/* SPI5: Apalis SPI2 */
	spi@7000dc00 {
		status = "okay";
		spi-max-frequency = <25000000>;
		spidev1: spidev@2 {
			compatible = "spidev";
			reg = <2>;
			spi-max-frequency = <25000000>;
		};
	};

	hda@70030000 {
		status = "okay";
	};

	sd1: sdhci@78000000 {
		status = "okay";
		bus-width = <4>;
		/* SD1_CD# */
		cd-gpios = <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_LOW>;
		no-1-8-v;
	};

	mmc1: sdhci@78000400 {
		status = "okay";
		bus-width = <8>;
		/* MMC1_CD# */
		cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
		no-1-8-v;
	};

	/* EHCI instance 0: USB1_DP/N -> USBO1_DP/N */
	usb@7d000000 {
		status = "okay";
	};

	usb-phy@7d000000 {
		status = "okay";
		dr_mode = "otg";
		vbus-supply = <&usbo1_vbus_reg>;
	};

	/* EHCI instance 1: USB2_DP/N -> USBH2_DP/N */
	usb@7d004000 {
		status = "okay";
	};

	usb-phy@7d004000 {
		status = "okay";
		vbus-supply = <&usbh_vbus_reg>;
	};

	/* EHCI instance 2: USB3_DP/N -> USBH3_DP/N */
	usb@7d008000 {
		status = "okay";
	};

	usb-phy@7d008000 {
		status = "okay";
		vbus-supply = <&usbh_vbus_reg>;
	};

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

		/* PWM_BKL1 */
		pwms = <&pwm 0 5000000>;
		brightness-levels = <255 231 223 207 191 159 127 0>;
		default-brightness-level = <6>;
		/* BKL1_ON */
		enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
	};

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

		wakeup {
			label = "WAKE1_MICO";
			gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_LOW>;
			linux,code = <KEY_WAKEUP>;
			debounce-interval = <10>;
			wakeup-source;
		};
	};

	panel: panel {
		/*
		 * edt,et057090dhu: EDT 5.7" LCD TFT
		 * edt,et070080dh6: EDT 7.0" LCD TFT
		 */
		compatible = "edt,et057090dhu", "simple-panel";

		backlight = <&backlight>;
	};

	pwmleds {
		compatible = "pwm-leds";

		pwm1 {
			label = "PWM1";
			pwms = <&pwm 3 19600>;
			max-brightness = <255>;
		};

		pwm2 {
			label = "PWM2";
			pwms = <&pwm 2 19600>;
			max-brightness = <255>;
		};

		pwm3 {
			label = "PWM3";
			pwms = <&pwm 1 19600>;
			max-brightness = <255>;
		};
	};

	regulators {
		sys_5v0_reg: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "5v0";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			regulator-always-on;
		};

		/* USBO1_EN */
		usbo1_vbus_reg: regulator@2 {
			compatible = "regulator-fixed";
			reg = <2>;
			regulator-name = "usbo1_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
			enable-active-high;
			vin-supply = <&sys_5v0_reg>;
		};

		/* USBH_EN */
		usbh_vbus_reg: regulator@3 {
			compatible = "regulator-fixed";
			reg = <3>;
			regulator-name = "usbh_vbus";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			gpio = <&gpio TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
			enable-active-high;
			vin-supply = <&sys_5v0_reg>;
		};
	};
};
