/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include "sdm845-pmic-overlay.dtsi"
#include "sdm845-pinctrl-overlay.dtsi"
#include "smb1355.dtsi"
#include <dt-bindings/gpio/gpio.h>

&vendor {
	bluetooth: bt_wcn3990 {
		compatible = "qca,wcn3990";
		qca,bt-vdd-io-supply = <&pm8998_s3>;
		qca,bt-vdd-xtal-supply = <&pm8998_s5>;
		qca,bt-vdd-core-supply = <&pm8998_l7>;
		qca,bt-vdd-pa-supply = <&pm8998_l17>;
		qca,bt-vdd-ldo-supply = <&pm8998_l25>;

		qca,bt-vdd-io-voltage-level = <1352000 1352000>;
		qca,bt-vdd-xtal-voltage-level = <2040000 2040000>;
		qca,bt-vdd-core-voltage-level = <1800000 1800000>;
		qca,bt-vdd-pa-voltage-level = <1304000 1304000>;
		qca,bt-vdd-ldo-voltage-level = <3312000 3312000>;

		qca,bt-vdd-io-current-level = <1>; /* LPM/PFM */
		qca,bt-vdd-xtal-current-level = <1>; /* LPM/PFM */
		qca,bt-vdd-core-current-level = <1>; /* LPM/PFM */
		qca,bt-vdd-pa-current-level = <1>; /* LPM/PFM */
		qca,bt-vdd-ldo-current-level = <1>; /* LPM/PFM */
	};

	qrd_batterydata: qcom,battery-data {
		qcom,batt-id-range-pct = <15>;
		#include "fg-gen3-batterydata-gt3746a6-2900mah.dtsi"
	};
};

&qupv3_se9_2uart {
	status = "ok";
};

&qupv3_se8_spi {
	status = "ok";
};

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

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

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

&qupv3_se3_i2c {
	status = "ok";
	nq@28 {
		compatible = "qcom,nq-nci";
		reg = <0x28>;
		qcom,nq-irq = <&tlmm 63 0x00>;
		qcom,nq-ven = <&tlmm 12 0x00>;
		qcom,nq-firm = <&tlmm 62 0x00>;
		qcom,nq-clkreq = <&pm8998_gpios 21 0x00>;
		qcom,nq-esepwr = <&tlmm 116 0x00>;
		interrupt-parent = <&tlmm>;
		qcom,clk-src = "BBCLK3";
		interrupts = <63 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 = <&clock_rpmh RPMH_LN_BB_CLK3>;
		clock-names = "ref_clk";
	};
};

&qupv3_se10_i2c {
	status = "ok";
};

&qupv3_se6_4uart {
	status = "ok";
};

&pmi8998_fg {
	qcom,battery-data = <&qrd_batterydata>;
	qcom,fg-bmd-en-delay-ms = <300>;
};

&smb1355_charger_0 {
	status = "ok";
};

&smb1355_charger_1 {
	status = "ok";
};

&mdss_mdp {
	#cooling-cells = <2>;
};

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

	vdda-phy-supply = <&pm8998_l1>; /* 0.88v */
	vdda-pll-supply = <&pm8998_l26>; /* 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 = <&pm8998_l20>;
	vcc-voltage-level = <2950000 2960000>;
	vccq2-supply = <&pm8998_s4>;
	vcc-max-microamp = <600000>;
	vccq2-max-microamp = <600000>;

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

	status = "ok";
};

&sdhc_2 {
	vdd-supply = <&pm8998_l21>;
	qcom,vdd-voltage-level = <2950000 2960000>;
	qcom,vdd-current-level = <200 800000>;

	vdd-io-supply = <&pm8998_l13>;
	qcom,vdd-io-voltage-level = <1808000 2960000>;
	qcom,vdd-io-current-level = <200 22000>;

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

	cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;

	status = "ok";
};

&labibb {
	status = "ok";
	qcom,qpnp-labibb-mode = "lcd";
};

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

&pmi8998_haptics {
	qcom,vmax-mv = <1800>;
	qcom,wave-play-rate-us = <4347>;
	qcom,lra-auto-mode;
	status = "okay";
};

&mdss_mdp {
	connectors = <&sde_rscc &sde_wb &sde_dp>;
};

&dsi_nt35597_truly_dsc_cmd {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
	qcom,panel-mode-gpio = <&tlmm 52 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
	qcom,platform-reset-gpio = <&tlmm 6 0>;
	qcom,mdss-dsi-panel-orientation = "180";
};

&dsi_nt35597_truly_dsc_video {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
	qcom,panel-mode-gpio = <&tlmm 52 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
	qcom,platform-reset-gpio = <&tlmm 6 0>;
	qcom,mdss-dsi-panel-orientation = "180";
};

&dsi_nt35597_truly_dsc_cmd_display {
	qcom,dsi-display-active;
};

&wil6210 {
	status = "ok";
};

&ext_5v_boost {
	status = "ok";
};

&pm8998_vadc {
	chan@83 {
		label = "vph_pwr";
		reg = <0x83>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <1>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};

	chan@85 {
		label = "vcoin";
		reg = <0x85>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <1>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};

	chan@4c {
		label = "xo_therm";
		reg = <0x4c>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <4>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@4d {
		label = "msm_therm";
		reg = <0x4d>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@4f {
		label = "pa_therm1";
		reg = <0x4f>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};

	chan@51 {
		label = "quiet_therm";
		reg = <0x51>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
	};
};

&pm8998_adc_tm {
	chan@83 {
		label = "vph_pwr";
		reg = <0x83>;
		qcom,pre-div-channel-scaling = <1>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,btm-channel-number = <0x60>;
	};

	chan@4c {
		label = "xo_therm";
		reg = <0x4c>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <4>;
		qcom,hw-settle-time = <2>;
		qcom,btm-channel-number = <0x68>;
		qcom,thermal-node;
	};

	chan@4d {
		label = "msm_therm";
		reg = <0x4d>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,btm-channel-number = <0x70>;
		qcom,thermal-node;
	};

	chan@4f {
		label = "pa_therm1";
		reg = <0x4f>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,btm-channel-number = <0x78>;
		qcom,thermal-node;
	};

	chan@51 {
		label = "quiet_therm";
		reg = <0x51>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,btm-channel-number = <0x80>;
		qcom,thermal-node;
	};
};

&thermal_zones {
	xo-therm-adc {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-sensors = <&pm8998_adc_tm 0x4c>;
		thermal-governor = "user_space";

		trips {
			active-config0 {
				temperature = <65000>;
				hysteresis = <1000>;
				type = "passive";
			};
		};
	};

	msm-therm-adc {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-sensors = <&pm8998_adc_tm 0x4d>;
		thermal-governor = "user_space";

		trips {
			active-config0 {
				temperature = <65000>;
				hysteresis = <1000>;
				type = "passive";
			};
		};
	};

	pa-therm1-adc {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-sensors = <&pm8998_adc_tm 0x4f>;
		thermal-governor = "user_space";

		trips {
			active-config0 {
				temperature = <65000>;
				hysteresis = <1000>;
				type = "passive";
			};
		};
	};

	quiet-therm-adc {
		polling-delay-passive = <0>;
		polling-delay = <0>;
		thermal-sensors = <&pm8998_adc_tm 0x51>;
		thermal-governor = "user_space";

		trips {
			active-config0 {
				temperature = <65000>;
				hysteresis = <1000>;
				type = "passive";
			};
		};
	};
};
