// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, AngeloGioacchino Del Regno
 *                     <angelogioacchino.delregno@somainline.org>
 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
 */

#include "msm8996.dtsi"
#include "pm8994.dtsi"
#include "pmi8994.dtsi"
#include "pmi8996.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>

/delete-node/ &adsp_mem;
/delete-node/ &slpi_mem;
/delete-node/ &venus_mem;
/delete-node/ &gpu_mem;

/ {
	qcom,msm-id = <246 0x30001>; /* MSM8996 V3.1 (Final) */
	qcom,board-id = <8 0>;

	chosen {
		/*
		 * Due to an unknown-for-a-few-years regression,
		 * SDHCI only works on MSM8996 in PIO (lame) mode.
		 */
		bootargs = "sdhci.debug_quirks=0x40 sdhci.debug_quirks2=0x4 maxcpus=2";
	};

	reserved-memory {
		ramoops@a7f00000 {
			compatible = "ramoops";
			reg = <0 0xa7f00000 0 0x100000>;
			record-size = <0x20000>;
			console-size = <0x40000>;
			ftrace-size = <0x20000>;
			pmsg-size = <0x20000>;
			ecc-size = <16>;
		};

		adsp_mem: adsp@8ea00000 {
			reg = <0x0 0x8ea00000 0x0 0x1a00000>;
			no-map;
		};

		gpu_mem: gpu@90400000 {
			compatible = "shared-dma-pool";
			reg = <0x0 0x90400000 0x0 0x2000>;
			no-map;
		};

		slpi_mem: memory@90500000 {
			reg = <0 0x90500000 0 0xa00000>;
			no-map;
		};

		venus_mem: memory@90f00000 {
			reg = <0 0x90f00000 0 0x500000>;
			no-map;
		};
	};

	panel_tvdd: tvdd-regulator {
		compatible = "regulator-fixed";
		regulator-name = "panel_tvdd";
		gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
		pinctrl-0 = <&tp_vddio_en>;
		pinctrl-names = "default";
	};

	usb3_id: usb3-id {
		compatible = "linux,extcon-usb-gpio";
		id-gpio = <&tlmm 25 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_detect>;
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-min-microvolt = <3700000>;
		regulator-max-microvolt = <3700000>;
		regulator-name = "vph_pwr";
		regulator-always-on;
		regulator-boot-on;
	};

	wlan_en: wlan-en-1-8v {
		compatible = "regulator-fixed";
		regulator-name = "wlan-en-regulator";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&wl_reg_on>;

		/* WLAN card specific delay */
		startup-delay-us = <70000>;
		enable-active-high;
	};
};

&blsp1_i2c3 {
	status = "okay";
	clock-frequency = <355000>;

	tof_sensor: vl53l0x@29 {
		compatible = "st,vl53l0x";
		reg = <0x29>;
	};
};

&blsp1_uart2 {
	status = "okay";
};

&blsp2_i2c5 {
	status = "okay";
	clock-frequency = <355000>;

	/* FUSB301 USB-C controller */
};

&blsp2_i2c6 {
	status = "okay";
	clock-frequency = <355000>;

	synaptics@2c {
		compatible = "syna,rmi4-i2c";
		reg = <0x2c>;
		interrupt-parent = <&tlmm>;
		interrupts = <125 IRQ_TYPE_EDGE_FALLING>;
		vdd-supply = <&panel_tvdd>;

		syna,reset-delay-ms = <220>;
		syna,startup-delay-ms = <220>;
		#address-cells = <1>;
		#size-cells = <0>;

		rmi4-f01@1 {
			reg = <0x1>;
			syna,nosleep-mode = <1>;
		};

		rmi4-f11@11 {
			reg = <0x11>;
			syna,sensor-type = <1>;
		};
	};
};

&blsp2_uart2 {
	status = "okay";
};

&camera0_mclk {
	drive-strength = <2>;
	output-low;
};

&camera0_pwdn {
	drive-strength = <2>;
	output-low;
};

&camera0_rst {
	pins = "gpio30";
	drive-strength = <2>;
	output-low;
};

&camera2_mclk {
	drive-strength = <2>;
	output-low;
};

&camera2_rst {
	drive-strength = <2>;
	output-low;
};

&hsusb_phy1 {
	status = "okay";

	vdd-supply = <&pm8994_l28>;
	vdda-pll-supply = <&pm8994_l12>;
	vdda-phy-dpdm-supply = <&pm8994_l24>;
};

&mmcc {
	vdd-gfx-supply = <&vdd_gfx>;
};

&pcie0 {
	status = "okay";
	perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
	vddpe-3v3-supply = <&wlan_en>;
	vdda-supply = <&pm8994_l28>;
};

&pcie_phy {
	status = "okay";

	vdda-phy-supply = <&pm8994_l28>;
	vdda-pll-supply = <&pm8994_l12>;
};

&pm8994_gpios {
	pinctrl-names = "default";
	pinctrl-0 = <&pm8994_gpios_defaults>;
	gpio-line-names =
		"NC",
		"VOL_DOWN_N",
		"VOL_UP_N",
		"SNAPSHOT_N",
		"FOCUS_N",
		"NC",
		"NFC_VEN",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"EAR_EN",
		"NC",
		"PM_DIVCLK1",
		"PMI_CLK",
		"NC",
		"WL_SLEEP_CLK",
		"NC",
		"PMIC_SPON",
		"UIM_BATT_ALARM",
		"PMK_SLEEP_CLK";

	/*
	 * We don't yet know for sure which GPIOs are of our interest, but what
	 * we do know is that if a vendor sets the pins to a non-default state, there's
	 * probably a reason for it, and just to be on the safe side, we follow suit.
	 */
	pm8994_gpios_defaults: pm8994-gpios-default-state {
		pm8994-gpio1-nc-pins {
			pins = "gpio1";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			bias-high-impedance;
		};

		vol-down-n-pins {
			pins = "gpio2";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			input-enable;
			bias-pull-up;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_S4>;
		};

		vol-up-n-pins {
			pins = "gpio3";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			input-enable;
			bias-pull-up;
			power-source = <PM8994_GPIO_S4>;
		};

		camera-snapshot-n-pins {
			pins = "gpio4";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			input-enable;
			bias-pull-up;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_S4>;
		};

		camera-focus-n-pins {
			pins = "gpio5";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			input-enable;
			bias-pull-up;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_S4>;
		};

		pm8994-gpio6-nc-pins {
			pins = "gpio6";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			bias-high-impedance;
			power-source = <PM8994_GPIO_VPH>;
		};

		nfc-download-pins {
			pins = "gpio7";
			function = PMIC_GPIO_FUNC_NORMAL;
			output-low;
			drive-push-pull;
			bias-disable;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_S4>;
		};

		pm8994-gpio8-nc-pins {
			pins = "gpio8";
			function = PMIC_GPIO_FUNC_NORMAL;
			output-low;
			drive-push-pull;
			bias-high-impedance;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_VPH>;
		};

		pm8994-gpio9-nc-pins {
			pins = "gpio9";
			function = PMIC_GPIO_FUNC_NORMAL;
			output-high;
			drive-push-pull;
			bias-high-impedance;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_VPH>;
		};

		nfc-clock-pins {
			pins = "gpio10";
			function = PMIC_GPIO_FUNC_NORMAL;
			input-enable;
			drive-push-pull;
			bias-pull-down;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_S4>;
		};

		pm8994-gpio11-nc-pins {
			pins = "gpio11";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			bias-high-impedance;
			power-source = <PM8994_GPIO_VPH>;
		};

		pm8994-gpio12-nc-pins {
			pins = "gpio12";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			bias-high-impedance;
			power-source = <PM8994_GPIO_VPH>;
		};

		ear-enable-pins {
			pins = "gpio13";
			function = PMIC_GPIO_FUNC_NORMAL;
			output-high;
			drive-push-pull;
			bias-disable;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_S4>;
		};

		pm8994-gpio14-nc-pins {
			pins = "gpio14";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			input-enable;
			bias-high-impedance;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_VPH>;
		};

		pm-divclk1-gpio-pins {
			pins = "gpio15";
			function = "func1";
			output-high;
			drive-push-pull;
			bias-high-impedance;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_VPH>;
		};

		pmi-clk-gpio-pins {
			pins = "gpio16";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
		};

		pm8994-gpio17-nc-pins {
			pins = "gpio17";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			bias-high-impedance;
			power-source = <PM8994_GPIO_VPH>;
		};

		rome-sleep-pins {
			pins = "gpio18";
			function = PMIC_GPIO_FUNC_FUNC2;
			output-low;
			drive-push-pull;
			bias-disable;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_MED>;
			power-source = <PM8994_GPIO_S4>;
		};

		pm8994-gpio19-nc-pins {
			pins = "gpio19";
			function = PMIC_GPIO_FUNC_NORMAL;
			output-low;
			drive-push-pull;
			bias-high-impedance;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_VPH>;
		};

		pm8994-gpio22-nc-pins {
			pins = "gpio22";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			bias-high-impedance;
			power-source = <PM8994_GPIO_VPH>;
		};
	};
};

&pm8994_mpps {
	pinctrl-names = "default";
	pinctrl-0 = <&pm8994_mpps_defaults>;

	gpio-line-names =
		"SDC_UIM_VBIAS",
		"LCD_ID_ADC",
		"VREF_DACX",
		"NC",
		"FLASH_THERM",
		"NC",
		"NC",
		"RF_ID";

	pm8994_mpps_defaults: pm8994-mpps-default-state {
		lcd-id_adc-mpp-pins {
			pins = "mpp2";
			function = "analog";
			input-enable;
			qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH6>;
		};

		pm-mpp4-nc-pins {
			pins = "mpp4";
			function = "digital";
			bias-high-impedance;
			power-source = <PM8994_GPIO_VPH>;
		};

		flash-therm-mpp-pins {
			pins = "mpp5";
			function = "analog";
			input-enable;
			qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>;
		};

		mpp6-nc-pins {
			pins = "mpp6";
			function = "digital";
			bias-high-impedance;
		};

		rf-id-mpp-pins {
			pins = "mpp8";
			function = "analog";
			input-enable;
			qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH8>;
		};
	};
};

&pm8994_resin {
	status = "okay";
	linux,code = <KEY_VOLUMEUP>;
};

&pmi8994_gpios {
	pinctrl-names = "default";
	pinctrl-0 = <&pmi8994_gpios_defaults>;

	gpio-line-names =
		"VIB_LDO_EN",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"USB_SWITCH_SEL",
		"NC";

	pmi8994_gpios_defaults: pmi8994-gpios-default-state {
		vib-ldo-en-gpio-pins {
			pins = "gpio1";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			output-low;
			bias-disable;
			power-source = <PM8994_GPIO_S4>;
		};

		pmi-gpio2-nc-pins {
			pins = "gpio2";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			input-enable;
			bias-high-impedance;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_VPH>;
		};

		pmi-gpio3-nc-pins {
			pins = "gpio3";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			input-enable;
			bias-high-impedance;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_VPH>;
		};

		pmi-gpio4-nc-pins {
			pins = "gpio4";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			output-high;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_S4>;
		};

		pmi-gpio5-nc-pins {
			pins = "gpio5";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			output-high;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_S4>;
		};

		pmi-gpio6-nc-pins {
			pins = "gpio6";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			output-high;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_S4>;
		};

		pmi-gpio7-nc-pins {
			pins = "gpio7";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			output-high;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_S4>;
		};

		pmi-gpio8-nc-pins {
			pins = "gpio8";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
			output-high;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
			power-source = <PM8994_GPIO_S4>;
		};

		usb-switch-sel-pins {
			pins = "gpio9";
			function = PMIC_GPIO_FUNC_NORMAL;
			drive-push-pull;
		};

		pmi-gpio10-nc-pins {
			pins = "gpio10";
			function = PMIC_GPIO_FUNC_NORMAL;
			output-low;
			drive-push-pull;
			bias-disable;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_S4>;
		};
	};
};

&pm8994_spmi_regulators {
	qcom,saw-reg = <&saw3>;

	pm8994_s9: s9 {
		qcom,saw-slave;
	};

	pm8994_s10: s10 {
		qcom,saw-slave;
	};

	pm8994_s11: s11 {
		qcom,saw-leader;
		regulator-name = "vdd_apcc";
		regulator-always-on;
		regulator-min-microvolt = <470000>;
		regulator-max-microvolt = <1140000>;
	};
};

&pmi8994_spmi_regulators {
	vdd_gfx:
	pmi8994_s2: s2 {
		/* Pinned to a high value for now to avoid random crashes. */
		regulator-min-microvolt = <1015000>;
		regulator-max-microvolt = <1015000>;
		regulator-name = "vdd_gfx";
		regulator-always-on;
	};
};

&pmi8994_wled {
	status = "okay";
	default-brightness = <512>;
	qcom,num-strings = <3>;
};

&rpm_requests {
	regulators-0 {
		compatible = "qcom,rpm-pm8994-regulators";

		vdd_s1-supply = <&vph_pwr>;
		vdd_s2-supply = <&vph_pwr>;
		vdd_s3-supply = <&vph_pwr>;
		vdd_s4-supply = <&vph_pwr>;
		vdd_s5-supply = <&vph_pwr>;
		vdd_s6-supply = <&vph_pwr>;
		vdd_s7-supply = <&vph_pwr>;
		vdd_s8-supply = <&vph_pwr>;
		vdd_s9-supply = <&vph_pwr>;
		vdd_s10-supply = <&vph_pwr>;
		vdd_s11-supply = <&vph_pwr>;
		vdd_s12-supply = <&vph_pwr>;
		vdd_l1-supply = <&pm8994_s3>;
		vdd_l2_l26_l28-supply = <&pm8994_s3>;
		vdd_l3_l11-supply = <&pm8994_s3>;
		vdd_l4_l27_l31-supply = <&pm8994_s3>;
		vdd_l5_l7-supply = <&pm8994_s5>;
		vdd_l6_l12_l32-supply = <&pm8994_s5>;
		vdd_l8_l16_l30-supply = <&vph_pwr>;
		vdd_l14_l15-supply = <&pm8994_s5>;
		vdd_l20_l21-supply = <&pm8994_s5>;
		vdd_l25-supply = <&pm8994_s3>;
		vdd_lvs1_2-supply = <&pm8994_s4>;

		pm8994_s3: s3 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1300000>;
		};

		pm8994_s4: s4 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-system-load = <325000>;
			regulator-always-on;
		};

		pm8994_s5: s5 {
			regulator-min-microvolt = <2150000>;
			regulator-max-microvolt = <2150000>;
		};

		pm8994_s7: s7 {
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <800000>;
		};

		pm8994_l1: l1 {
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1000000>;
		};

		pm8994_l2: l2 {
			regulator-min-microvolt = <1250000>;
			regulator-max-microvolt = <1250000>;
		};

		pm8994_l3: l3 {
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1100000>;
		};

		pm8994_l4: l4 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
		};

		/* L6 and L7 seem unused. */

		pm8994_l8: l8 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8994_l9: l9 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8994_l10: l10 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8994_l11: l11 {
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1100000>;
		};

		pm8994_l12: l12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-allow-set-load;
		};

		pm8994_l13: l13 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
			regulator-system-load = <22000>;
			regulator-allow-set-load;
		};

		pm8994_l14: l14 {
			regulator-min-microvolt = <1700000>;
			regulator-max-microvolt = <1900000>;
		};

		pm8994_l15: l15 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8994_l16: l16 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <2700000>;
		};

		pm8994_l17: l17 {
			regulator-min-microvolt = <2200000>;
			regulator-max-microvolt = <2500000>;
		};

		pm8994_l18: l18 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		pm8994_l19: l19 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};

		pm8994_l20: l20 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
			regulator-system-load = <570000>;
			regulator-allow-set-load;
		};

		pm8994_l21: l21 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
			regulator-system-load = <800000>;
			regulator-allow-set-load;
		};

		pm8994_l22: l22 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};

		pm8994_l23: l23 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <2700000>;
		};

		pm8994_l24: l24 {
			regulator-min-microvolt = <3075000>;
			regulator-max-microvolt = <3075000>;
			regulator-allow-set-load;
		};

		pm8994_l25: l25 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-allow-set-load;
		};

		pm8994_l27: l27 {
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1200000>;
		};

		pm8994_l28: l28 {
			regulator-min-microvolt = <925000>;
			regulator-max-microvolt = <925000>;
			regulator-allow-set-load;
		};

		pm8994_l29: l29 {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <2700000>;
		};

		pm8994_l30: l30 { };

		pm8994_l32: l32 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};
	};
};

&sdhc1 {
	/* eMMC doesn't seem to cooperate even in PIO mode.. */
	status = "disabled";

	vmmc-supply = <&pm8994_l20>;
	vqmmc-supply = <&pm8994_s4>;
	mmc-hs400-1_8v;
	mmc-hs200-1_8v;
};

&sdhc2 {
	status = "okay";

	cd-gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
	vmmc-supply = <&pm8994_l21>;
	vqmmc-supply = <&pm8994_l13>;
};

&tlmm {
	gpio-reserved-ranges = <0 4>;
	pinctrl-0 = <&sw_service_gpio>;
	pinctrl-names = "default";

	disp_reset_n_gpio: disp-reset-n-state {
		pins = "gpio8";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	mdp_vsync_p_gpio: mdp-vsync-p-state {
		pins = "gpio10";
		function = "mdp_vsync";
		drive-strength = <2>;
		bias-disable;
	};

	sw_service_gpio: sw-service-gpio-state {
		pins = "gpio16";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};

	usb_detect: usb-detect-state {
		pins = "gpio25";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-high;
	};

	uim_detect_en: uim-detect-en-state {
		pins = "gpio29";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-high;
	};

	tray_det_pin: tray-det-state {
		pins = "gpio40";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};

	tp_vddio_en: tp-vddio-en-state {
		pins = "gpio50";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-high;
	};

	lcd_vddio_en: lcd-vddio-en-state {
		pins = "gpio51";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-low;
	};

	wl_host_wake: wl-host-wake-state {
		pins = "gpio79";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-down;
	};

	wl_reg_on: wl-reg-on-state {
		pins = "gpio84";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
		output-low;
	};

	ts_reset_n: ts-rst-n-state {
		pins = "gpio89";
		function = "gpio";
		drive-strength = <2>;
	};

	touch_int_n: touch-int-n-state {
		pins = "gpio125";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};

	touch_int_sleep: touch-int-sleep-state {
		pins = "gpio125";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-down;
	};
};

/*
 * For reasons that are currently unknown (but probably related to fusb301), USB takes about
 * 6 minutes to wake up (nothing interesting in kernel logs), but then it works as it should.
 */
&usb3 {
	status = "okay";
	qcom,select-utmi-as-pipe-clk;
};

&usb3_dwc3 {
	extcon = <&usb3_id>;
	dr_mode = "peripheral";
	phys = <&hsusb_phy1>;
	phy-names = "usb2-phy";
	snps,hird-threshold = /bits/ 8 <0>;
};
