// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2016-2018 Toradex AG
 */

/dts-v1/;

#include <dt-bindings/input/input.h>
#include "tegra124-apalis-v1.2.dtsi"

/ {
	model = "Toradex Apalis TK1 on Apalis Evaluation Board";
	compatible = "toradex,apalis-tk1-v1.2-eval", "toradex,apalis-tk1-eval",
		     "toradex,apalis-tk1-v1.2", "toradex,apalis-tk1",
		     "nvidia,tegra124";

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

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

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

	host1x@50000000 {
		hdmi@54280000 {
			status = "okay";
			hdmi-supply = <&reg_5v0>;
		};
	};

	/* Apalis UART1 */
	serial@70006000 {
		status = "okay";
	};

	/* Apalis UART2 */
	serial@70006040 {
		status = "okay";
	};

	/* Apalis UART3 */
	serial@70006200 {
		status = "okay";
	};

	/* Apalis UART4 */
	serial@70006300 {
		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 = <400000>;

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

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

	/* GEN2_I2C: unused */

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

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

	/* SPI1: Apalis SPI1 */
	spi@7000d400 {
		status = "okay";
		spi-max-frequency = <50000000>;
	};

	/* SPI4: Apalis SPI2 */
	spi@7000da00 {
		status = "okay";
		spi-max-frequency = <50000000>;
	};

	/* Apalis Serial ATA */
	sata@70020000 {
		status = "okay";
		target-5v-supply = <&reg_5v0>;
		target-12v-supply = <&reg_12v0>;
	};

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

	usb@70090000 {
		status = "okay";
	};

	/* Apalis MMC1 */
	sdhci@700b0000 {
		status = "okay";
		bus-width = <4>;
		/* MMC1_CD# */
		cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
		vqmmc-supply = <&vddio_sdmmc1>;
	};

	/* Apalis SD1 */
	sdhci@700b0400 {
		status = "okay";
		bus-width = <4>;
		/* SD1_CD# */
		cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
		vqmmc-supply = <&vddio_sdmmc3>;
	};

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

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

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

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

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

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

	backlight: backlight {
		compatible = "pwm-backlight";
		brightness-levels = <255 231 223 207 191 159 127 0>;
		default-brightness-level = <6>;
		/* BKL1_ON */
		enable-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>;
		power-supply = <&reg_3v3>;
		pwms = <&pwm 3 5000000>; /* BKL1_PWM */
	};

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

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

	reg_3v3: regulator-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "3.3V_SW";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	reg_5v0: regulator-5v0 {
		compatible = "regulator-fixed";
		regulator-name = "5V_SW";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	reg_12v0: regulator-12v0 {
		compatible = "regulator-fixed";
		regulator-name = "12V_SW";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
	};

	/* USBO1_EN */
	reg_usbo1_vbus: regulator-usbo1-vbus {
		compatible = "regulator-fixed";
		regulator-name = "VCC_USBO1";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_5v0>;
	};

	/* USBH_EN */
	reg_usbh_vbus: regulator-usbh-vbus {
		compatible = "regulator-fixed";
		regulator-name = "VCC_USBH(2A|2C|2D|3|4)";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio TEGRA_GPIO(T, 6) GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_5v0>;
	};
};

&gpio {
	/* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
	pex-perst-n {
		gpio-hog;
		gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "PEX_PERST_N";
	};
};
