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

/dts-v1/;

#include "msm8916-pm8916.dtsi"
#include "msm8916-modem-qdsp6.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";
	};

	battery: battery {
		compatible = "simple-battery";
		device-chemistry = "lithium-ion-polymer";
		voltage-min-design-microvolt = <3700000>;
		voltage-max-design-microvolt = <4200000>;
		energy-full-design-microwatt-hours = <13690000>;
		charge-full-design-microamp-hours = <3700000>;

		ocv-capacity-celsius = <25>;
		ocv-capacity-table-0 =
			<4186000 100>, <4126000 95>, <4078000 90>,
			<4036000 85>, <3997000 80>, <3962000 75>,
			<3932000 70>, <3904000 65>, <3874000 60>,
			<3839000 55>, <3809000 50>, <3792000 45>,
			<3780000 40>, <3772000 35>, <3764000 30>,
			<3752000 25>, <3731000 20>, <3704000 16>,
			<3677000 13>, <3670000 11>, <3668000 10>,
			<3666000 9>, <3662000 8>, <3658000 7>, <3648000 6>,
			<3624000 5>, <3580000 4>, <3518000 3>, <3434000 2>,
			<3310000 1>, <3000000 0>;
	};

	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";
};

&mpss_mem {
	reg = <0x0 0x86800000 0x0 0x5000000>;
};

&pm8916_bms {
	monitored-battery = <&battery>;
	status = "okay";
};

&pm8916_codec {
	qcom,micbias-lvl = <2800>;
	qcom,mbhc-vthreshold-low = <150 180 237 450 500>;
	qcom,mbhc-vthreshold-high = <150 180 237 450 500>;
	qcom,hphl-jack-type-normally-open;
};

&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";
};

&sound {
	model = "msm8916-1mic";
	audio-routing =
		"AMIC1", "MIC BIAS External1",
		"AMIC2", "MIC BIAS Internal2",
		"AMIC3", "MIC BIAS External1";
};

&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;
	};
};
