# 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_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 QTI_ADC_TM
	tristate "Qualcomm Technologies Inc. Thermal Monitor ADC Driver"
	depends on SPMI && THERMAL && QTI_THERMAL
	depends on QCOM_SPMI_ADC5
	help
	  This enables the thermal Sysfs driver for the ADC thermal monitoring
	  device. It shows up in Sysfs 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 QTI_QMI_SENSOR
	tristate "QTI QMI sensor driver"
	depends on QCOM_QMI_HELPERS && THERMAL_OF && QTI_THERMAL
	help
	   This enables to list the QTI remote subsystem temperature sensors.
	   This driver can read the temperature of the remote sensor.
	   These sensors can take thresholds and notify the thermal
	   framework when the threshold is reached.

config QTI_BCL_PMIC5
	tristate "BCL driver for BCL peripherals in PMIC5"
	depends on SPMI && THERMAL_OF && QTI_THERMAL
	help
	  This driver provides routines to configure and monitor the BCL
	  PMIC peripheral. This driver registers the battery current and
	  voltage sensors with the thermal core framework and can take
	  threshold input and notify the thermal core when the threshold is
	  reached.

config QTI_BCL_SOC_DRIVER
	tristate "QTI Battery state of charge sensor driver"
	depends on THERMAL_OF && POWER_SUPPLY && QTI_THERMAL
	help
	  This driver registers battery state of charge as a sensor with
	  thermal framework. This sensor can monitor for state of charge
	  thresholds and notify the thermal framework when the thresholds
	  are reached and cleared. This will help to monitor and apply any
	  mitigation when state of charge goes below a certain threshold.

config QTI_QMI_COOLING_DEVICE
	tristate "QTI QMI cooling devices"
	depends on QCOM_QMI_HELPERS && THERMAL_OF && QTI_THERMAL
	help
	   This enables the QTI remote subsystem cooling devices. These cooling
	   devices will be used by QTI chipset to place various remote
	   subsystem mitigations like remote processor passive mitigation,
	   remote subsystem voltage restriction at low temperatures etc.
	   The QMI cooling device will interface with remote subsystem
	   using QTI QMI interface.

config QTI_CPU_ISOLATE_COOLING_DEVICE
	tristate "QTI CPU Isolate cooling devices"
	depends on THERMAL_OF && QTI_THERMAL
	help
	   This enables the QTI CPU Isolation cooling devices. These cooling
	   devices will be used by QTI chipset to isolate a CPU from being
	   scheduled and hence will let the CPU to power collapse. Isolating
	   a CPU will be used when the CPU frequency mitigation
	   is not good enough to achieve the necessary cooling.

config QTI_THERMAL_LIMITS_DCVS
	tristate "QTI LMH DCVS Driver"
	depends on THERMAL_OF && QTI_THERMAL && CPU_THERMAL
	help
	  This enables the driver for Limits Management Hardware - DCVS block
	  for the application processors. The h/w block that is available for
	  each cluster can be used to perform quick thermal mitigations by
	  tracking temperatures of the CPUs and taking thermal action in the
	  hardware without s/w intervention.

config QTI_CPU_VOLTAGE_COOLING_DEVICE
	tristate "QTI CPU VOLTAGE cooling devices"
	depends on CPU_FREQ && THERMAL_OF && QTI_THERMAL
	help
	    This enables the QTI CPU Voltage cooling devices. This cooling
	    device will allow the CPUs with different frequency plan in a
	    cluster to be mitigated together based on the voltages. This will
	    decrease or increase the voltages in a cluster based on thermal
	    conditions.

config QTI_POLICY_ENGINE_SENSOR
	tristate "QTI Policy Engine Sensor device"
	depends on THERMAL_OF && QTI_THERMAL
	help
	    This enables the QTI Policy Engine sensor device. This driver will
	    register the policy engine recommendation with thermal framework as
	    a sensor. This will enable to provide configuration to mitigate
	    cooling devices when a recommendation is sent from hardware.

config QTI_SDPM_CLOCK_MONITOR
	tristate "QTI SDPM Clock Monitor"
	depends on COMMON_CLK && CPU_FREQ
	help
	    This enables the QTI SDPM Clock Monitor. This driver can register
	    for different clock rate change notifications and write the clock
	    rate into the SDPM CSR register. This driver will receive the clock
	    list and the CSR details from devicetree.

config REGULATOR_COOLING_DEVICE
	tristate "Regulator voltage floor cooling device"
	depends on REGULATOR && THERMAL_OF
	help
	  This implements a mitigation device to place a minimum voltage floor
	  on a particular regulator. This mitigation device will be used by low
	  temperature reliability rules to mitigate a regulator at nominal
	  voltage.

config QTI_RPM_SMD_COOLING_DEVICE
	tristate "Qualcomm Technologies Inc. RPM SMD cooling device driver"
	depends on MSM_RPM_SMD && THERMAL_OF
	help
	  This implements a mitigation device to send temperature band
	  level to RPM hardware via SMD protocol. This mitigation device
	  will be used by temperature reliability rules to restrict a
	  railway at predefined voltage corner using RPM hardware.

config QTI_LIMITS_ISENSE_CDSP
        tristate "QTI CDSP Limits Isense Driver"
        depends on QCOM_SMEM
        help
          This enables driver to read cdsp isense calibration data from
          shared memory and enable sysfs file support to access this data. This
          driver is required for the chipsets where isense hardware is present
          as part of cdsp subsystem.

config QTI_CPU_HOTPLUG_COOLING_DEVICE
	tristate "QTI CPU Hotplug cooling devices"
	depends on THERMAL_OF && QTI_THERMAL && HOTPLUG_CPU
	help
	   This enables the QTI CPU Hotplug cooling devices. These cooling
	   devices will be used by QTI chipset to hotplug a CPU to achieve
	   thermal cooling. CPU Hotplug will be done after core isolation,
	   to prevent any process from waking the mitigated CPU.

config QTI_DDR_COOLING_DEVICE
	tristate "QTI DDR cooling devices"
	depends on THERMAL_OF && QTI_THERMAL && INTERCONNECT
	help
	   This enables the QTI DDR cooling devices. These cooling
	   devices will be used by QTI chipset to place a DDR state request
	   to meet the performance requirement under thermally constrained
	   conditions.

config MAX31760_FAN_CONTROLLER
	tristate "MAX31760 Fan Controller Driver"
	depends on THERMAL_OF && QTI_THERMAL && I2C_GPIO
	help
	  This enables the MAX31760 fan controller cooling device.
	  This driver uses i2c bus to control registers for setting
	  different fan speed. Also, this driver initializes the power for
	  the fan controller.

config QTI_LMH_CPU_VDD_COOLING_DEVICE
	tristate "QTI CPU LMH VDD Voltage cooling devices"
	depends on THERMAL_OF && QTI_THERMAL
	help
	   This enables the QTI limits hardware CPU VDD cooling devices.
	   These cooling devices will be used by QTI chipset to place a
	   request to limits hardware for a minimum CPU railway voltage
	   corner at cold temperature condition.

config QTI_CX_IPEAK_COOLING_DEVICE
	tristate "QTI CX IPeak cooling device"
	depends on THERMAL_OF && QTI_THERMAL
	help
	  This implements a mitigation device to place a thermal client vote
	  to CXIP LM hardware. When all pre-defined clients on CX rail including
	  thermal client set their vote, CXIP LM hardware throttles the clients
	  on the CX rail.

config QTI_DEVFREQ_VDD_COOLING_DEVICE
	tristate "Devfreq voltage floor cooling device"
	depends on PM_DEVFREQ && PM_OPP && THERMAL_OF
	help
	  This implements a mitigation device to place a minimum frequency floor
	  on a particular devfreq device. This mitigation device will be used by
	  low temperature reliability rules to mitigate a devfreq device at
	  minimum operating level.
