// 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/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>

/*
 * NOTE: The original firmware from Acer can only boot 32-bit kernels.
 * To boot this device tree using arm64 it is necessary to flash 64-bit
 * TZ/HYP firmware (e.g. taken from the DragonBoard 410c).
 * See https://wiki.postmarketos.org/wiki/Acer_Iconia_Talk_S_(acer-a1-724)
 * for suggested installation instructions.
 */

/ {
	model = "Acer Iconia Talk S A1-724";
	compatible = "acer,a1-724", "qcom,msm8916";
	chassis-type = "tablet";

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

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

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

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

		label = "GPIO Buttons";

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

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

&blsp_i2c2 {
	status = "okay";

	accelerometer@10 {
		compatible = "bosch,bmc150_accel";
		reg = <0x10>;
		interrupt-parent = <&tlmm>;
		interrupts = <115 IRQ_TYPE_EDGE_RISING>;

		vdd-supply = <&pm8916_l17>;
		vddio-supply = <&pm8916_l6>;

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

		mount-matrix = "0", "-1", "0",
			       "-1", "0", "0",
			       "0", "0", "1";
	};

	magnetometer@12 {
		compatible = "bosch,bmc150_magn";
		reg = <0x12>;

		vdd-supply = <&pm8916_l17>;
		vddio-supply = <&pm8916_l6>;
	};
};

&blsp_i2c4 {
	status = "okay";

	led-controller@30 {
		compatible = "kinetic,ktd2026";
		reg = <0x30>;
		#address-cells = <1>;
		#size-cells = <0>;

		led@0 {
			reg = <0>;
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_RED>;
		};

		led@1 {
			reg = <1>;
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_GREEN>;
		};
	};
};

&blsp_i2c5 {
	status = "okay";

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

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

		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;

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

		touchscreen-size-x = <720>;
		touchscreen-size-y = <1280>;

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

&blsp_uart2 {
	status = "okay";
};

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

&pm8916_rpm_regulators {
	pm8916_l16: l16 {
		regulator-min-microvolt = <2900000>;
		regulator-max-microvolt = <2900000>;
	};

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

&pm8916_vib {
	status = "okay";
};

&sdhc_1 {
	status = "okay";
};

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

	cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;

	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 {
	accel_int_default: accel-int-default-state {
		pins = "gpio115";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	gpio_keys_default: gpio-keys-default-state {
		pins = "gpio107";
		function = "gpio";

		drive-strength = <2>;
		bias-pull-up;
	};

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