/*
 * Copyright (c) 2017-2018, 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 "pmi632.dtsi"

&spmi_bus {
	/delete-node/ qcom,pmi8950@2;
	/delete-node/ qcom,pmi8950@3;
};

&pm8953_typec {
	status = "disabled";
};

&pmi632_pon {
	qcom,ps-hold-hard-reset-disable;
	qcom,ps-hold-shutdown-disable;
};

&usb3 {
	extcon = <&pmi632_charger>, <&pmi632_charger>, <0>,
		 <&pmi632_charger>, <&pmi632_charger>;
	vbus_dwc3-supply = <&smb5_vbus>;
};

/{
	mtp_batterydata: qcom,battery-data {
		qcom,batt-id-range-pct = <15>;
//<20202/04/22-JessicaTseng, Add Fuji & Kayo battery profiles
#if 1
		#include "qg-batterydata-Fuji-3000mah-Jan22th2019-pmi632.dtsi"
		#include "qg-batterydata-Kayo-3000mah-Nov4th2019-pmi632.dtsi"
#else
		#include "qg-batterydata-ascent-3450mah.dtsi"
		#include "qg-batterydata-mlp356477-2800mah.dtsi"
#endif
//>2020/04/22-JessicaTseng
	};
};

&pmi632_vadc {
	pinctrl-names = "default";
	pinctrl-0 = <&quiet_therm_default &smb_therm_default>;
};

&pmi632_gpios {
	quiet_therm {
		quiet_therm_default: quiet_therm_default {
			pins = "gpio3";
			bias-high-impedance;
		};
	};

	smb_therm {
		smb_therm_default: smb_therm_default {
			pins = "gpio4";
			bias-high-impedance;
		};
	};
};

&pmi632_qg {
	qcom,battery-data = <&mtp_batterydata>;
};

&pmi632_charger {
	qcom,battery-data = <&mtp_batterydata>;
};

&pm8953_gpios {
	bklt_en {
		bklt_en_default: bklt_en_default {
		pins = "gpio4";
		function = "normal";
		power-source = <0>;
		output-high;
		};
	};
};

&pm8953_pwm {
	status = "ok";
};

&thermal_zones {
	pmi-vbat-lvl0 {
		cooling-maps {
			vbat_map0 {
				trip = <&pmi632_vbat_lvl0>;
				/* throttle from fmax to 1689600KHz */
				cooling-device = <&CPU0 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			vbat_map1 {
				trip = <&pmi632_vbat_lvl0>;
				cooling-device = <&CPU1 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			vbat_map2 {
				trip = <&pmi632_vbat_lvl0>;
				cooling-device = <&CPU2 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			vbat_map3 {
				trip = <&pmi632_vbat_lvl0>;
				cooling-device = <&CPU3 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			vbat_map4 {
				trip = <&pmi632_vbat_lvl0>;
				cooling-device =
					<&CPU4 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			vbat_map5 {
				trip = <&pmi632_vbat_lvl0>;
				cooling-device =
					<&CPU5 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			vbat_map6 {
				trip = <&pmi632_vbat_lvl0>;
				cooling-device =
					<&CPU6 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			vbat_map7 {
				trip = <&pmi632_vbat_lvl0>;
				cooling-device =
					<&CPU7 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
		};
	};

	pmi-ibat-lvl0 {
		cooling-maps {
			ibat_map0 {
				trip = <&pmi632_ibat_lvl0>;
				/* throttle from fmax to 1689600KHz */
				cooling-device = <&CPU0 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			ibat_map1 {
				trip = <&pmi632_ibat_lvl0>;
				cooling-device = <&CPU1 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			ibat_map2 {
				trip = <&pmi632_ibat_lvl0>;
				cooling-device = <&CPU2 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			ibat_map3 {
				trip = <&pmi632_ibat_lvl0>;
				cooling-device = <&CPU3 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			ibat_map4 {
				trip = <&pmi632_ibat_lvl0>;
				cooling-device =
					<&CPU4 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			ibat_map5 {
				trip = <&pmi632_ibat_lvl0>;
				cooling-device =
					<&CPU5 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			ibat_map6 {
				trip = <&pmi632_ibat_lvl0>;
				cooling-device =
					<&CPU6 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			ibat_map7 {
				trip = <&pmi632_ibat_lvl0>;
				cooling-device =
					<&CPU7 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
		};
	};

	soc {
		cooling-maps {
			soc_map0 {
				trip = <&pmi632_low_soc>;
				/* throttle from fmax to 1689600KHz */
				cooling-device = <&CPU0 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			soc_map1 {
				trip = <&pmi632_low_soc>;
				cooling-device = <&CPU1 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			soc_map2 {
				trip = <&pmi632_low_soc>;
				cooling-device = <&CPU2 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			soc_map3 {
				trip = <&pmi632_low_soc>;
				cooling-device = <&CPU3 (THERMAL_MAX_LIMIT - 4)
						(THERMAL_MAX_LIMIT - 4)>;
			};
			soc_map4 {
				trip = <&pmi632_low_soc>;
				cooling-device =
					<&CPU4 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			soc_map5 {
				trip = <&pmi632_low_soc>;
				cooling-device =
					<&CPU5 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			soc_map6 {
				trip = <&pmi632_low_soc>;
				cooling-device =
					<&CPU6 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
			soc_map7 {
				trip = <&pmi632_low_soc>;
				cooling-device =
					<&CPU7 THERMAL_MAX_LIMIT
						THERMAL_MAX_LIMIT>;
			};
		};
	};

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

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

	case-therm-step {
		status = "disabled";
	};

	quiet-therm-step {
		polling-delay-passive = <2000>;
		polling-delay = <0>;
		thermal-sensors = <&pmi632_adc_tm 0x53>;
		thermal-governor = "step_wise";

		trips {
			quiet_batt_trip1: quiet_batt-trip1 {
				temperature = <38000>;
				hysteresis = <3000>;
				type = "passive";
			};
			quiet_batt_trip2: quiet_batt-trip2 {
				temperature = <40000>;
				hysteresis = <2000>;
				type = "passive";
			};
			quiet_batt_trip3: quiet_batt-trip3 {
				temperature = <43000>;
				hysteresis = <3000>;
				type = "passive";
			};
			quiet_cpus_trip: quiet_cpus-trip {
				temperature = <43000>;
				hysteresis = <0>;
				type = "passive";
			};
			quiet_modem_trip0: quiet_modem-trip0 {
				temperature = <45000>;
				hysteresis = <2000>;
				type = "passive";
			};
			quiet_batt_trip4: quiet_batt-trip4 {
				temperature = <48000>;
				hysteresis = <5000>;
				type = "passive";
			};
			quiet_modem_trip1: quiet_modem-trip1 {
				temperature = <48000>;
				hysteresis = <3000>;
				type = "passive";
			};
			quiet_modem_trip2: quiet_modem-trip2 {
				temperature = <54000>;
				hysteresis = <4000>;
				type = "passive";
			};
		};
		cooling-maps {
			skin_cpu0 {
				trip = <&quiet_cpus_trip>;
				/* throttle from fmax to 1689600KHz */
				cooling-device = <&CPU0 THERMAL_NO_LIMIT 3>;
			};
			skin_cpu1 {
				trip = <&quiet_cpus_trip>;
				cooling-device = <&CPU1 THERMAL_NO_LIMIT 3>;
			};
			skin_cpu2 {
				trip = <&quiet_cpus_trip>;
				cooling-device = <&CPU2 THERMAL_NO_LIMIT 3>;
			};
			skin_cpu3 {
				trip = <&quiet_cpus_trip>;
				cooling-device = <&CPU3 THERMAL_NO_LIMIT 3>;
			};
			skin_cpu4 {
				trip = <&quiet_cpus_trip>;
				cooling-device = <&CPU4 THERMAL_NO_LIMIT 3>;
			};
			skin_cpu5 {
				trip = <&quiet_cpus_trip>;
				cooling-device = <&CPU5 THERMAL_NO_LIMIT 3>;
			};
			skin_cpu6 {
				trip = <&quiet_cpus_trip>;
				cooling-device = <&CPU6 THERMAL_NO_LIMIT 3>;
			};
			skin_cpu7 {
				trip = <&quiet_cpus_trip>;
				cooling-device = <&CPU7 THERMAL_NO_LIMIT 3>;
			};
			modem_lvl1 {
				trip = <&quiet_modem_trip1>;
				cooling-device = <&modem_pa 2 2>;
			};
			modem_lvl2 {
				trip = <&quiet_modem_trip2>;
				cooling-device = <&modem_pa 3 3>;
			};
			modem_proc_lvl1 {
				trip = <&quiet_modem_trip0>;
				cooling-device = <&modem_proc 1 1>;
			};
			modem_proc_lvl2 {
				trip = <&quiet_modem_trip2>;
				cooling-device = <&modem_proc 3 3>;
			};
			battery_lvl1 {
				trip = <&quiet_batt_trip1>;
				cooling-device = <&pmi632_charger 2 2>;
			};
			battery_lvl2 {
				trip = <&quiet_batt_trip2>;
				cooling-device = <&pmi632_charger 3 3>;
			};
			battery_lvl3 {
				trip = <&quiet_batt_trip3>;
				cooling-device = <&pmi632_charger 4 4>;
			};
			battery_lvl4 {
				trip = <&quiet_batt_trip4>;
				cooling-device = <&pmi632_charger 5 5>;
			};
		};
	};
};

/*
&tlmm {
	pmx_mdss {
		mdss_dsi_active: mdss_dsi_active {
			 mux {
				 pins = "gpio61";
			 };
			 config {
				 pins = "gpio61";
			 };
		 };
		mdss_dsi_suspend: mdss_dsi_suspend {
			  mux {
				  pins = "gpio61";
			  };
			  config {
				  pins = "gpio61";
			  };
		  };
	};
};
*/