// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2020 Stephan Gerhold
 */

/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 = "Xiaomi Redmi 2 (Wingtech WT88047)";
	compatible = "wingtech,wt88047", "qcom,msm8916";
	chassis-type = "handset";

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

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

	flash-led-controller {
		compatible = "ocs,ocp8110";
		enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
		flash-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;

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

		flash_led: led {
			function = LED_FUNCTION_FLASH;
			color = <LED_COLOR_ID_WHITE>;
		};
	};

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

	imu@68 {
		compatible = "invensense,mpu6880";
		reg = <0x68>;

		interrupt-parent = <&tlmm>;
		interrupts = <115 IRQ_TYPE_EDGE_RISING>;

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

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

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

&blsp_i2c5 {
	status = "okay";

	touchscreen@38 {
		/* Likely some other model but works just fine with this one */
		compatible = "edt,edt-ft5506";
		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 = <720>;
		touchscreen-size-y = <1280>;

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

&blsp_i2c6 {
	status = "okay";

	led-controller@45 {
		compatible = "awinic,aw2013";
		reg = <0x45>;
		#address-cells = <1>;
		#size-cells = <0>;

		vcc-supply = <&pm8916_l16>;

		led@0 {
			reg = <0>;
			led-max-microamp = <15000>;
			function = LED_FUNCTION_INDICATOR;
			color = <LED_COLOR_ID_RED>;
		};

		led@1 {
			reg = <1>;
			led-max-microamp = <15000>;
			function = LED_FUNCTION_INDICATOR;
			color = <LED_COLOR_ID_GREEN>;
		};

		led@2 {
			reg = <2>;
			led-max-microamp = <15000>;
			function = LED_FUNCTION_INDICATOR;
			color = <LED_COLOR_ID_BLUE>;
		};
	};
};

&blsp_uart2 {
	status = "okay";
};

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

&pm8916_rpm_regulators {
	pm8916_l16: l16 {
		/*
		 * L16 is only used for AW2013 which is fine with 2.5-3.3V.
		 * Use the recommended typical voltage of 2.8V as minimum.
		 */
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <3300000>;
	};

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

&pm8916_vib {
	status = "okay";
};

&sdhc_1 {
	status = "okay";
};

&sdhc_2 {
	status = "okay";
	non-removable;
};

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

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

	imu_default: imu-default-state {
		pins = "gpio115";
		function = "gpio";

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

	touchscreen_default: touchscreen-default-state {
		touchscreen-pins {
			pins = "gpio13";
			function = "gpio";

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

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

	usb_id_default: usb-id-default-state {
		pins = "gpio110";
		function = "gpio";

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