#include <dt-bindings/gpio/gpio.h>
#include "sdm670-pmic-overlay.dtsi"

&ufsphy_mem {
	compatible = "qcom,ufs-phy-qmp-v3";

	vdda-phy-supply = <&pm660l_l1>; /* 0.88v */
	vdda-phy-always-on;
	vdda-pll-supply = <&pm660_l1>; /* 1.2v */
	vdda-phy-max-microamp = <62900>;
	vdda-pll-max-microamp = <18300>;

	status = "ok";
};

&ufshc_mem {
	vdd-hba-supply = <&ufs_phy_gdsc>;
	vdd-hba-fixed-regulator;
	vcc-supply = <&pm660l_l4>;
	vcc-voltage-level = <2960000 2960000>;
	vccq2-supply = <&pm660_l8>;
	vcc-max-microamp = <600000>;
	vccq2-max-microamp = <600000>;

	qcom,vddp-ref-clk-supply = <&pm660_l1>;
	qcom,vddp-ref-clk-max-microamp = <100>;

	status = "ok";
};

&pm660l_switch1 {
	pinctrl-names = "led_enable", "led_disable";
	pinctrl-0 = <&flash_led3_front_en>;
	pinctrl-1 = <&flash_led3_front_dis>;
};

&qupv3_se9_2uart {
	status = "disabled";
};

&qupv3_se12_2uart {
	status = "ok";
};

&qupv3_se8_spi {
	status = "disabled";
};

&qupv3_se3_i2c {
	status = "ok";
	nq@28 {
		compatible = "qcom,nq-nci";
		reg = <0x28>;
		qcom,nq-irq = <&tlmm 44 0x00>;
		qcom,nq-ven = <&tlmm 12 0x00>;
		qcom,nq-firm = <&tlmm 43 0x00>;
		qcom,nq-clkreq = <&pm660_gpios 4 0x00>;
		qcom,nq-esepwr = <&tlmm 116 0x00>;
		interrupt-parent = <&tlmm>;
		qcom,clk-src = "BBCLK3";
		interrupts = <44 0>;
		interrupt-names = "nfc_irq";
		pinctrl-names = "nfc_active", "nfc_suspend";
		pinctrl-0 = <&nfc_int_active
			     &nfc_enable_active
			     &nfc_clk_default>;
		pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend>;
		clocks = <&rpmhcc RPMH_LN_BB_CLK3>;
		clock-names = "ref_clk";
	};
};

&qupv3_se10_i2c {
	status = "disabled";
};

&qupv3_se6_4uart {
	status = "ok";
};

&sdhc_1 {
	vdd-supply = <&pm660l_l4>;
	qcom,vdd-voltage-level = <2960000 2960000>;
	qcom,vdd-current-level = <0 570000>;

	vdd-io-supply = <&pm660_l8>;
	qcom,vdd-io-always-on;
	qcom,vdd-io-lpm-sup;
	qcom,vdd-io-voltage-level = <1800000 1800000>;
	qcom,vdd-io-current-level = <0 325000>;

	pinctrl-names = "active", "sleep";
	pinctrl-0 = <&sdc1_clk_on  &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;

	status = "ok";
};

&sdhc_2 {
	vdd-supply = <&pm660l_l5>;
	qcom,vdd-voltage-level = <2960000 2960000>;
	qcom,vdd-current-level = <0 800000>;

	vdd-io-supply = <&pm660l_l2>;
	qcom,vdd-io-voltage-level = <1800000 2960000>;
	qcom,vdd-io-current-level = <0 22000>;

	pinctrl-names = "active", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;

	cd-gpios = <&tlmm 96 0x1>;

	status = "ok";
};

&pm660_charger {
	qcom,batteryless-platform;
};

&soc {
	gpio_keys {
		compatible = "gpio-keys";
		label = "gpio-keys";

		pinctrl-names = "default";
		pinctrl-0 = <&key_cam_snapshot_default
			     &key_cam_focus_default
			     &key_vol_up_default>;

		cam_snapshot {
			label = "cam_snapshot";
			gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <766>;
			gpio-key,wakeup;
			debounce-interval = <15>;
			linux,can-disable;
		};

		cam_focus {
			label = "cam_focus";
			gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>;
			linux,input-type = <1>;
			linux,code = <528>;
			gpio-key,wakeup;
			debounce-interval = <15>;
			linux,can-disable;
		};

		vol_up {
			label = "volume_up";
			gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <115>;
			gpio-key,wakeup;
			debounce-interval = <15>;
			linux,can-disable;
		};
	};
};

&pm660l_wled {
	status = "okay";
	qcom,led-strings-list = [01 02];
};
