# SPDX-License-Identifier: GPL-2.0-only
config QCOM_TSENS
	tristate "Qualcomm TSENS Temperature Alarm"
	depends on QCOM_QFPROM
	depends on ARCH_QCOM || COMPILE_TEST
	help
	  This enables the thermal sysfs driver for the TSENS device. It shows
	  up in Sysfs as a thermal zone with multiple trip points. Disabling the
	  thermal zone device via the mode file results in disabling the sensor.
	  Also able to set threshold temperature for both hot and cold and update
	  when a threshold is reached.

config QCOM_SPMI_ADC_TM5
	tristate "Qualcomm SPMI PMIC Thermal Monitor ADC5"
	depends on OF && SPMI && IIO
	select REGMAP_SPMI
	select QCOM_VADC_COMMON
	help
	  This enables the thermal driver for the ADC thermal monitoring
	  device. It shows up as a thermal zone with multiple trip points.
	  Thermal client sets threshold temperature for both warm and cool and
	  gets updated when a threshold is reached.

config QCOM_SPMI_TEMP_ALARM
	tristate "Qualcomm SPMI PMIC Temperature Alarm"
	depends on OF && SPMI && IIO
	select REGMAP_SPMI
	help
	  This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP)
	  PMIC devices. It shows up in sysfs as a thermal sensor with multiple
	  trip points. The temperature reported by the thermal sensor reflects the
	  real time die temperature if an ADC is present or an estimate of the
	  temperature based upon the over temperature stage value.

config QCOM_LMH
	tristate "Qualcomm Limits Management Hardware"
	depends on ARCH_QCOM && QCOM_SCM
	help
	  This enables initialization of Qualcomm limits management
	  hardware(LMh). LMh allows for hardware-enforced mitigation for cpus based on
	  input from temperature and current sensors.  On many newer Qualcomm SoCs
	  LMh is configured in the firmware and this feature need not be enabled.
	  However, on certain SoCs like sdm845 LMh has to be configured from kernel.
