// SPDX-License-Identifier: GPL-2.0-only

/dts-v1/;

#include "msm8916-pm8916.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>

/ {
	model = "GPLUS FL8005A";
	compatible = "gplus,fl8005a", "qcom,msm8916";
	chassis-type = "tablet";

	aliases {
		mmc0 = &sdhc_1; /* eMMC */
		mmc1 = &sdhc_2; /* SD card */
		serial0 = &blsp_uart2;
	};

	chosen {
		stdout-path = "serial0";
	};

	flash-led-controller {
		/* Actually qcom,leds-gpio-flash */
		compatible = "sgmicro,sgm3140";
		enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
		flash-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;

		pinctrl-0 = <&camera_flash_default>;
		pinctrl-names = "default";

		flash_led: led {
			function = LED_FUNCTION_FLASH;
			color = <LED_COLOR_ID_WHITE>;
			flash-max-timeout-us = <250000>;
		};
	};

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

		pinctrl-0 = <&gpio_keys_default>;
		pinctrl-names = "default";

		button-volume-up {
			label = "Volume Up";
			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";

		pinctrl-0 = <&gpio_leds_default>;
		pinctrl-names = "default";

		led-red {
			function = LED_FUNCTION_CHARGING;
			color = <LED_COLOR_ID_RED>;
			gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
			retain-state-suspended;
		};

		led-green {
			function = LED_FUNCTION_CHARGING;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&tlmm 118 GPIO_ACTIVE_HIGH>;
			retain-state-suspended;
		};
	};

	usb_id: usb-id {
		compatible = "linux,extcon-usb-gpio";
		id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
		pinctrl-0 = <&usb_id_default>;
		pinctrl-names = "default";
	};
};

&blsp_i2c5 {
	status = "okay";

	touchscreen@38 {
		/* Actually ft5402 */
		compatible = "edt,edt-ft5406";
		reg = <0x38>;

		interrupt-parent = <&tlmm>;
		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;

		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;

		vcc-supply = <&pm8916_l17>;
		iovcc-supply = <&pm8916_l6>;

		touchscreen-size-x = <800>;
		touchscreen-size-y = <500>;
		touchscreen-inverted-x;
		touchscreen-swapped-x-y;

		pinctrl-0 = <&touchscreen_default>;
		pinctrl-names = "default";
	};
};

&blsp_uart2 {
	status = "okay";
};

&pm8916_resin {
	linux,code = <KEY_VOLUMEDOWN>;
	status = "okay";
};

&pm8916_rpm_regulators {
	pm8916_l17: l17 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
	};
};

&pm8916_vib {
	status = "okay";
};

&sdhc_1 {
	status = "okay";
};

&sdhc_2 {
	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
	pinctrl-names = "default", "sleep";

	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;

	status = "okay";
};

&usb {
	extcon = <&usb_id>, <&usb_id>;
	status = "okay";
};

&usb_hs_phy {
	extcon = <&usb_id>;
};

&venus {
	status = "okay";
};

&venus_mem {
	status = "okay";
};

&wcnss {
	status = "okay";
};

&wcnss_iris {
	compatible = "qcom,wcn3620";
};

&wcnss_mem {
	status = "okay";
};

&tlmm {
	camera_flash_default: camera-flash-default-state {
		pins = "gpio31", "gpio32";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	gpio_keys_default: gpio-keys-default-state {
		pins = "gpio107";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};

	gpio_leds_default: gpio-led-default-state {
		pins = "gpio117", "gpio118";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	sdc2_cd_default: sdc2-cd-default-state {
		pins = "gpio38";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	touchscreen_default: touchscreen-default-state {
		reset-pins {
			pins = "gpio12";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};

		touchscreen-pins {
			pins = "gpio13";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	usb_id_default: usb-id-default-state {
		pins = "gpio110";
		function = "gpio";
		drive-strength = <8>;
		bias-pull-up;
	};
};
