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

#include "msm8916-pm8916.dtsi"
#include "msm8916-modem-qdsp6.dtsi"

#include <dt-bindings/gpio/gpio.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";
	};

	headphones_switch: audio-switch {
		compatible = "simple-audio-amplifier";

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

		enable-gpios = <&tlmm 120 GPIO_ACTIVE_HIGH>;
		sound-name-prefix = "Headphones Switch";
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pm8916_pwm 0 100000>;

		brightness-levels = <0 255>;
		num-interpolated-steps = <255>;
		default-brightness-level = <255>;
	};

	battery: battery {
		compatible = "simple-battery";
		voltage-min-design-microvolt = <3400000>;
		voltage-max-design-microvolt = <4350000>;
		energy-full-design-microwatt-hours = <8740000>;
		charge-full-design-microamp-hours = <2300000>;

		ocv-capacity-celsius = <25>;
		ocv-capacity-table-0 = <4328000 100>, <4266000 95>, <4208000 90>,
			<4154000 85>, <4102000 80>, <4062000 75>, <3992000 70>,
			<3960000 65>, <3914000 60>, <3870000 55>, <3840000 50>,
			<3818000 45>, <3800000 40>, <3784000 35>, <3770000 30>,
			<3756000 25>, <3736000 20>, <3714000 16>, <3696000 13>,
			<3690000 11>, <3689000 10>, <3688000 9>, <3686000 8>,
			<3682000 7>, <3670000 6>, <3639000 5>, <3592000 4>,
			<3530000 3>, <3448000 2>, <3320000 1>, <3000000 0>;
	};

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

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

		label = "GPIO Buttons";

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

&blsp_i2c5 {
	status = "okay";

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

		interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;

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

		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;

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

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

&blsp_uart2 {
	status = "okay";
};

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

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

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

&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 {
	status = "okay";
};

&venus {
	status = "okay";
};

&venus_mem {
	status = "okay";
};

&wcnss {
	status = "okay";
};

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

&wcnss_mem {
	status = "okay";
};

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

	headphones_switch_default: headphones-switch-default-state {
		pins = "gpio120";
		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;
		};
	};
};

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