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

#include "msm8916-modem-qdsp6.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>

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

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

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pm8916_pwm 0 100000>;
		brightness-levels = <0 255>;
		num-interpolated-steps = <255>;
		default-brightness-level = <128>;
	};

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

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

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

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

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

		label = "GPIO Buttons";

		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-0 {
			gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
			function = LED_FUNCTION_CHARGING;
			color = <LED_COLOR_ID_RED>;
			default-state = "off";
			retain-state-suspended;
		};

		led-1 {
			gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>;
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_GREEN>;
			default-state = "off";
			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_i2c2 {
	status = "okay";

	accelerometer@68 {
		compatible = "invensense,icm20608";
		reg = <0x68>;

		interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_FALLING>;

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

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

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

&blsp_i2c5 {
	status = "okay";

	touchscreen: touchscreen@38 {
		compatible = "edt,edt-ft5306";
		reg = <0x38>;

		interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>;

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

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

		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
	};
};

&blsp_uart2 {
	status = "okay";
};

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

&pm8916_pwm {
	pinctrl-0 = <&pwm_out>;
	pinctrl-names = "default";
	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>;
	pinctrl-1 = <&sdc2_sleep>;
	pinctrl-names = "default", "sleep";
	non-removable;
	status = "okay";
};

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

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

&wcnss {
	status = "okay";
};

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

&wcnss_mem {
	status = "okay";
};

&tlmm {
	accelerometer_default: accelerometer-default-state {
		pins = "gpio115";
		function = "gpio";
		drive-strength = <6>;
		bias-pull-up;
	};

	camera_front_flash_default: camera-front-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-leds-default-state {
		pins = "gpio36", "gpio69";
		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;
	};
};

&pm8916_mpps {
	pwm_out: mpp4-state {
		pins = "mpp4";
		function = "digital";
		power-source = <PM8916_MPP_VPH>;
		output-low;
		qcom,dtest = <1>;
	};
};
