/* Copyright (c) 2019-2020, 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 <dt-bindings/gpio/gpio.h>
#include "sxr1130-svr-pinctrl-overlay.dtsi"
#include "sdm670-pmic-overlay.dtsi"
#include "sdm670-sde-display.dtsi"
#include "sdm670-camera-sensor-svr.dtsi"
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>

&qupv3_se10_i2c {
#include "smb1355.dtsi"
};

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

	vdda-phy-supply = <&pm660l_l1>; /* 0.88v */
	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 = "disabled";
	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>;
		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>;
	};
};

&qupv3_se9_i2c {
	status = "ok";
	tusb1064@10 {
		compatible = "ti,tusb1064";
		reg = <0x10>;
		ti,tiusb-dp-3v3-en = <&tlmm 142 0x00>;
	};

	vxr7200@39 {
		compatible = "synaptics,vxr7200";
		reg = <0x39>;
		qcom,vxr_3v3_en = <&tlmm 138 0x00>;
		qcom,led-5v-en-gpio = <&tlmm 134 0x00>;
		qcom,led-driver-en1-gpio = <&tlmm 110 0x00>;
		qcom,led-driver-en2-gpio = <&tlmm 111 0x00>;
		qcom,1p8-en-gpio = <&tlmm 2 0x00>;
		qcom,switch-power-gpio = <&tlmm 112 0x00>;
		qcom,selab-gpio = <&tlmm 105 0>;/* Low for DP */
		qcom,oenab-gpio = <&tlmm 106 0>; /*Low for DP */
		qcom,platform-reset-gpio = <&tlmm 75 0>;
	};
};


&qupv3_se10_i2c {
	status = "ok";
};

&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";
};

&vendor {
	svr_batterydata: qcom,battery-data {
		qcom,batt-id-range-pct = <15>;
		#include "fg-gen3-batterydata-goertek-1400mah.dtsi"
	};
};

&pm660_fg {
	qcom,battery-data = <&svr_batterydata>;
};

&pm660_charger {
	qcom,battery-data = <&svr_batterydata>;
};

&tlmm {
	smb_int_default: smb_int_default {
		mux {
			pins = "gpio54";
			function = "gpio";
		};
		config {
			pins = "gpio54";
			drive-strength = <2>;
			bias-pull-up;
			input-enable;
		};
	};
};

&smb1355_0 {
	pinctrl-names = "default";
	pinctrl-0 = <&smb_int_default
			&smb_shutdown_default>;
	interrupt-parent = <&tlmm>;
	interrupts = <54 IRQ_TYPE_LEVEL_LOW>;
	smb1355_charger_0: qcom,smb1355-charger@1000 {
		io-channels = <&pm660_rradc 2>,
				<&pm660_rradc 12>;
		io-channel-names = "charger_temp",
				"charger_temp_max";
		status ="ok";
	};
};

&smb1355_1 {
	pinctrl-names = "default";
	pinctrl-0 = <&smb_int_default
			&smb_shutdown_default>;
	interrupt-parent = <&tlmm>;
	interrupts = <54 IRQ_TYPE_LEVEL_LOW>;
	smb1355_charger_1: qcom,smb1355-charger@1000 {
		io-channels = <&pm660_rradc 2>,
				<&pm660_rradc 12>;
		io-channel-names = "charger_temp",
				"charger_temp_max";
		status ="ok";
	};
};

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

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

		home {
			label = "home"; /* BACK Key*/
			gpios = <&pm660l_gpios 5 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <158>;
			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;
		};
	};

	qcom,xr-smrtvwr-misc {
		compatible = "qcom,xr-smrtvwr-misc";
	};

	rpmh-regulator-ldoa14 {
		pm660_l14: regulator-pm660-l14 {
			qcom,init-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	quat_mi2s_gpios: quat_mi2s_pinctrl {
		status = "ok";
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&quat_mi2s_sck_active
				 &quat_mi2s_ws_active
				 &quat_mi2s_d0_active>;
		pinctrl-1 = <&quat_mi2s_sck_sleep
				 &quat_mi2s_ws_sleep
				 &quat_mi2s_d0_sleep>;
		qcom,lpi-gpios;
	};

};



&dsi_dual_xrsmrtvwr_jdi_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 = "dual_port";
	qcom,panel-mode-gpio = <&tlmm 79 0>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
	qcom,led-5v-en-gpio = <&tlmm 134 0>;
	qcom,selab-gpio = <&tlmm 105 0>;/* High for DSI */
	qcom,oenab-gpio = <&tlmm 106 0>; /*Low for DSI */
	qcom,1p8-en-gpio = <&tlmm 2 0>;
	qcom,led-driver-en1-gpio = <&tlmm 110 0>;
	qcom,led-driver-en2-gpio = <&tlmm 111 0>;
	qcom,switch-power-gpio = <&tlmm 112 0>;
};


&dsi_dual_nt35597_truly_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 = "dual_port";
	qcom,panel-mode-gpio = <&tlmm 76 0>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&dsi_dual_nt35597_truly_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 = "dual_port";
	qcom,panel-mode-gpio = <&tlmm 76 0>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
};

&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 76 0>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&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 76 0>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
};

&dsi_sim_vid {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,platform-reset-gpio = <&tlmm 90 0>;
};

&dsi_dual_sim_vid {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&dsi_sim_cmd {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&dsi_dual_sim_cmd {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&dsi_sim_dsc_375_cmd {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&dsi_dual_sim_dsc_375_cmd {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&dsi_dual_nt35597_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 = "dual_port";
	qcom,panel-mode-gpio = <&tlmm 76 0>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&dsi_dual_nt35597_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 = "dual_port";
	qcom,panel-mode-gpio = <&tlmm 76 0>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
};

&dsi_rm67195_amoled_fhd_cmd {
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply_labibb_amoled>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
};

&dsi_nt35695b_truly_fhd_video {
	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,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
};

&dsi_nt35695b_truly_fhd_cmd {
	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,panel-supply-entries = <&dsi_panel_pwr_supply>;
	qcom,platform-reset-gpio = <&tlmm 75 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
};

&dsi_hx8399_truly_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,platform-reset-gpio = <&tlmm 75 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
	qcom,panel-mode-gpio = <&tlmm 76 0>;
	qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
};

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

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

&thermal_zones {
	xo-therm-step {
		status = "disabled";
	};
};

&tavil_snd {
	qcom,msm-mi2s-master = <1>, <1>, <1>, <0>, <1>;
	qcom,audio-routing =
		"AIF4 VI", "MCLK",
		"RX_BIAS", "MCLK",
		"MADINPUT", "MCLK",
		"hifi amp", "LINEOUT1",
		"hifi amp", "LINEOUT2",
		"AMIC2", "MIC BIAS2",
		"MIC BIAS2", "Headset Mic",
		"AMIC3", "MIC BIAS2",
		"MIC BIAS2", "ANCRight Headset Mic",
		"AMIC4", "MIC BIAS2",
		"MIC BIAS2", "ANCLeft Headset Mic",
		"AMIC5", "MIC BIAS3",
		"MIC BIAS3", "Handset Mic",
		"DMIC0", "MIC BIAS1",
		"MIC BIAS1", "Digital Mic0",
		"DMIC1", "MIC BIAS1",
		"MIC BIAS1", "Digital Mic1",
		"DMIC2", "MIC BIAS4",
		"MIC BIAS4", "Digital Mic2",
		"DMIC3", "MIC BIAS4",
		"MIC BIAS4", "Digital Mic3",
		"DMIC4", "MIC BIAS3",
		"MIC BIAS3", "Digital Mic4",
		"DMIC5", "MIC BIAS3",
		"MIC BIAS3", "Digital Mic5",
		"SpkrLeft IN", "SPK1 OUT",
		"SpkrRight IN", "SPK2 OUT";

	qcom,quat-mi2s-gpios = <&quat_mi2s_gpios>;
	qcom,msm-mbhc-hphl-swh = <1>;
	qcom,msm-mbhc-gnd-swh = <1>;
	qcom,hph-en0-gpio = <&tavil_hph_en0>;
	qcom,hph-en1-gpio = <&tavil_hph_en1>;
	qcom,msm-mclk-freq = <9600000>;
	asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
	asoc-codec-names = "msm-stub-codec.1", "msm-ext-disp-audio-codec-rx";
	qcom,wsa-max-devs = <2>;
	qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
		<&wsa881x_0213>, <&wsa881x_0214>;
	qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
		"SpkrLeft", "SpkrRight";
};

&wcd_rst_gpio {
	status = "ok";
	pinctrl-0 = <&cdc_xr_reset_active>;
	pinctrl-1 = <&cdc_xr_reset_sleep>;
};

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

&pm660_charger {
	qcom,ufp-only-mode;
};

&dai_mi2s3 {
	qcom,msm-mi2s-rx-lines = <0>;
	qcom,msm-mi2s-tx-lines = <1>;

};

&cdc_pdm_gpios {
	status = "disabled";
};
