| # SPDX-License-Identifier: GPL-2.0-only | 
 | # | 
 | # Generic thermal drivers configuration | 
 | # | 
 |  | 
 | menuconfig THERMAL | 
 | 	bool "Thermal drivers" | 
 | 	help | 
 | 	  Thermal drivers offer a generic mechanism for | 
 | 	  thermal management. Usually it's made up of one or more thermal | 
 | 	  zones and cooling devices. | 
 | 	  Each thermal zone contains its own temperature, trip points, | 
 | 	  and cooling devices. | 
 | 	  All platforms with ACPI or Open Firmware thermal support can use | 
 | 	  this driver. | 
 | 	  If you want this support, you should say Y here. | 
 |  | 
 | if THERMAL | 
 |  | 
 | config THERMAL_NETLINK | 
 | 	bool "Thermal netlink management" | 
 | 	depends on NET | 
 | 	help | 
 | 	  The thermal framework has a netlink interface to do thermal | 
 | 	  zones discovery, temperature readings and events such as | 
 | 	  trip point crossed, cooling device update or governor | 
 | 	  change. It is recommended to enable the feature. | 
 |  | 
 | config THERMAL_STATISTICS | 
 | 	bool "Thermal state transition statistics" | 
 | 	help | 
 | 	  Export thermal state transition statistics information through sysfs. | 
 |  | 
 | 	  If in doubt, say N. | 
 |  | 
 | config THERMAL_EMERGENCY_POWEROFF_DELAY_MS | 
 | 	int "Emergency poweroff delay in milli-seconds" | 
 | 	default 0 | 
 | 	help | 
 | 	  Thermal subsystem will issue a graceful shutdown when | 
 | 	  critical temperatures are reached using orderly_poweroff(). In | 
 | 	  case of failure of an orderly_poweroff(), the thermal emergency | 
 | 	  poweroff kicks in after a delay has elapsed and shuts down the system. | 
 | 	  This config is number of milliseconds to delay before emergency | 
 | 	  poweroff kicks in. Similarly to the critical trip point, | 
 | 	  the delay should be carefully profiled so as to give adequate | 
 | 	  time for orderly_poweroff() to finish on regular execution. | 
 | 	  If set to 0 emergency poweroff will not be supported. | 
 |  | 
 | 	  In doubt, leave as 0. | 
 |  | 
 | config THERMAL_HWMON | 
 | 	bool | 
 | 	prompt "Expose thermal sensors as hwmon device" | 
 | 	depends on HWMON=y || HWMON=THERMAL | 
 | 	default y | 
 | 	help | 
 | 	  In case a sensor is registered with the thermal | 
 | 	  framework, this option will also register it | 
 | 	  as a hwmon. The sensor will then have the common | 
 | 	  hwmon sysfs interface. | 
 |  | 
 | 	  Say 'Y' here if you want all thermal sensors to | 
 | 	  have hwmon sysfs interface too. | 
 |  | 
 | config THERMAL_OF | 
 | 	bool | 
 | 	prompt "APIs to parse thermal data out of device tree" | 
 | 	depends on OF | 
 | 	default y | 
 | 	help | 
 | 	  This options provides helpers to add the support to | 
 | 	  read and parse thermal data definitions out of the | 
 | 	  device tree blob. | 
 |  | 
 | 	  Say 'Y' here if you need to build thermal infrastructure | 
 | 	  based on device tree. | 
 |  | 
 | config THERMAL_ACPI | 
 |        depends on ACPI | 
 |        bool | 
 |  | 
 | config THERMAL_WRITABLE_TRIPS | 
 | 	bool "Enable writable trip points" | 
 | 	help | 
 | 	  This option allows the system integrator to choose whether | 
 | 	  trip temperatures can be changed from userspace. The | 
 | 	  writable trips need to be specified when setting up the | 
 | 	  thermal zone but the choice here takes precedence. | 
 |  | 
 | 	  Say 'Y' here if you would like to allow userspace tools to | 
 | 	  change trip temperatures. | 
 |  | 
 | choice | 
 | 	prompt "Default Thermal governor" | 
 | 	default THERMAL_DEFAULT_GOV_STEP_WISE | 
 | 	help | 
 | 	  This option sets which thermal governor shall be loaded at | 
 | 	  startup. If in doubt, select 'step_wise'. | 
 |  | 
 | config THERMAL_DEFAULT_GOV_STEP_WISE | 
 | 	bool "step_wise" | 
 | 	select THERMAL_GOV_STEP_WISE | 
 | 	help | 
 | 	  Use the step_wise governor as default. This throttles the | 
 | 	  devices one step at a time. | 
 |  | 
 | config THERMAL_DEFAULT_GOV_FAIR_SHARE | 
 | 	bool "fair_share" | 
 | 	select THERMAL_GOV_FAIR_SHARE | 
 | 	help | 
 | 	  Use the fair_share governor as default. This throttles the | 
 | 	  devices based on their 'contribution' to a zone. The | 
 | 	  contribution should be provided through platform data. | 
 |  | 
 | config THERMAL_DEFAULT_GOV_USER_SPACE | 
 | 	bool "user_space" | 
 | 	select THERMAL_GOV_USER_SPACE | 
 | 	help | 
 | 	  The Userspace governor allows to get trip point crossed | 
 | 	  notification from the kernel via uevents. It is recommended | 
 | 	  to use the netlink interface instead which gives richer | 
 | 	  information about the thermal framework events. | 
 |  | 
 | config THERMAL_DEFAULT_GOV_POWER_ALLOCATOR | 
 | 	bool "power_allocator" | 
 | 	depends on THERMAL_GOV_POWER_ALLOCATOR | 
 | 	help | 
 | 	  Select this if you want to control temperature based on | 
 | 	  system and device power allocation. This governor can only | 
 | 	  operate on cooling devices that implement the power API. | 
 |  | 
 | config THERMAL_DEFAULT_GOV_BANG_BANG | 
 | 	bool "bang_bang" | 
 | 	depends on THERMAL_GOV_BANG_BANG | 
 | 	help | 
 | 	  Use the bang_bang governor as default. This throttles the | 
 | 	  devices one step at the time, taking into account the trip | 
 | 	  point hysteresis. | 
 |  | 
 | endchoice | 
 |  | 
 | config THERMAL_GOV_FAIR_SHARE | 
 | 	bool "Fair-share thermal governor" | 
 | 	help | 
 | 	  Enable this to manage platform thermals using fair-share governor. | 
 |  | 
 | config THERMAL_GOV_STEP_WISE | 
 | 	bool "Step_wise thermal governor" | 
 | 	help | 
 | 	  Enable this to manage platform thermals using a simple linear | 
 | 	  governor. | 
 |  | 
 | config THERMAL_GOV_BANG_BANG | 
 | 	bool "Bang Bang thermal governor" | 
 | 	default n | 
 | 	help | 
 | 	  Enable this to manage platform thermals using bang bang governor. | 
 |  | 
 | 	  Say 'Y' here if you want to use two point temperature regulation | 
 | 	  used for fans without throttling.  Some fan drivers depend on this | 
 | 	  governor to be enabled (e.g. acerhdf). | 
 |  | 
 | config THERMAL_GOV_USER_SPACE | 
 | 	bool "User_space thermal governor" | 
 | 	help | 
 | 	  Enable this to let the user space manage the platform thermals. | 
 |  | 
 | config THERMAL_GOV_POWER_ALLOCATOR | 
 | 	bool "Power allocator thermal governor" | 
 | 	depends on ENERGY_MODEL | 
 | 	help | 
 | 	  Enable this to manage platform thermals by dynamically | 
 | 	  allocating and limiting power to devices. | 
 |  | 
 | config CPU_THERMAL | 
 | 	bool "Generic cpu cooling support" | 
 | 	depends on THERMAL_OF | 
 | 	help | 
 | 	  Enable the CPU cooling features. If the system has no active | 
 | 	  cooling device available, this option allows to use the CPU | 
 | 	  as a cooling device. | 
 |  | 
 | if CPU_THERMAL | 
 |  | 
 | config CPU_FREQ_THERMAL | 
 | 	bool "CPU frequency cooling device" | 
 | 	depends on CPU_FREQ | 
 | 	default y | 
 | 	help | 
 | 	  This implements the generic cpu cooling mechanism through frequency | 
 | 	  reduction. An ACPI version of this already exists | 
 | 	  (drivers/acpi/processor_thermal.c). | 
 | 	  This will be useful for platforms using the generic thermal interface | 
 | 	  and not the ACPI interface. | 
 |  | 
 | config CPU_IDLE_THERMAL | 
 | 	bool "CPU idle cooling device" | 
 | 	depends on IDLE_INJECT | 
 | 	help | 
 | 	  This implements the CPU cooling mechanism through | 
 | 	  idle injection. This will throttle the CPU by injecting | 
 | 	  idle cycle. | 
 | endif | 
 |  | 
 | config DEVFREQ_THERMAL | 
 | 	bool "Generic device cooling support" | 
 | 	depends on PM_DEVFREQ | 
 | 	depends on PM_OPP | 
 | 	help | 
 | 	  This implements the generic devfreq cooling mechanism through | 
 | 	  frequency reduction for devices using devfreq. | 
 |  | 
 | 	  This will throttle the device by limiting the maximum allowed DVFS | 
 | 	  frequency corresponding to the cooling level. | 
 |  | 
 | 	  In order to use the power extensions of the cooling device, | 
 | 	  devfreq should use the simple_ondemand governor. | 
 |  | 
 | 	  If you want this support, you should say Y here. | 
 |  | 
 | config THERMAL_EMULATION | 
 | 	bool "Thermal emulation mode support" | 
 | 	help | 
 | 	  Enable this option to make a emul_temp sysfs node in thermal zone | 
 | 	  directory to support temperature emulation. With emulation sysfs node, | 
 | 	  user can manually input temperature and test the different trip | 
 | 	  threshold behaviour for simulation purpose. | 
 |  | 
 | 	  WARNING: Be careful while enabling this option on production systems, | 
 | 	  because userland can easily disable the thermal policy by simply | 
 | 	  flooding this sysfs node with low temperature values. | 
 |  | 
 | config THERMAL_MMIO | 
 | 	tristate "Generic Thermal MMIO driver" | 
 | 	depends on OF | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  This option enables the generic thermal MMIO driver that will use | 
 | 	  memory-mapped reads to get the temperature.  Any HW/System that | 
 | 	  allows temperature reading by a single memory-mapped reading, be it | 
 | 	  register or shared memory, is a potential candidate to work with this | 
 | 	  driver. | 
 |  | 
 | config HISI_THERMAL | 
 | 	tristate "Hisilicon thermal driver" | 
 | 	depends on ARCH_HISI || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	depends on OF | 
 | 	default y | 
 | 	help | 
 | 	  Enable this to plug hisilicon's thermal sensor driver into the Linux | 
 | 	  thermal framework. cpufreq is used as the cooling device to throttle | 
 | 	  CPUs when the passive trip is crossed. | 
 |  | 
 | config IMX_THERMAL | 
 | 	tristate "Temperature sensor driver for Freescale i.MX SoCs" | 
 | 	depends on ARCH_MXC || COMPILE_TEST | 
 | 	depends on NVMEM || !NVMEM | 
 | 	depends on MFD_SYSCON | 
 | 	depends on OF | 
 | 	help | 
 | 	  Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs. | 
 | 	  It supports one critical trip point and one passive trip point.  The | 
 | 	  cpufreq is used as the cooling device to throttle CPUs when the | 
 | 	  passive trip is crossed. | 
 |  | 
 | config IMX_SC_THERMAL | 
 | 	tristate "Temperature sensor driver for NXP i.MX SoCs with System Controller" | 
 | 	depends on IMX_SCU | 
 | 	depends on OF | 
 | 	help | 
 | 	  Support for Temperature Monitor (TEMPMON) found on NXP i.MX SoCs with | 
 | 	  system controller inside, Linux kernel has to communicate with system | 
 | 	  controller via MU (message unit) IPC to get temperature from thermal | 
 | 	  sensor. It supports one critical trip point and one | 
 | 	  passive trip point for each thermal sensor. | 
 |  | 
 | config IMX8MM_THERMAL | 
 | 	tristate "Temperature sensor driver for Freescale i.MX8MM SoC" | 
 | 	depends on ARCH_MXC || COMPILE_TEST | 
 | 	depends on OF | 
 | 	help | 
 | 	  Support for Thermal Monitoring Unit (TMU) found on Freescale i.MX8MM SoC. | 
 | 	  It supports one critical trip point and one passive trip point. The | 
 | 	  cpufreq is used as the cooling device to throttle CPUs when the passive | 
 | 	  trip is crossed. | 
 |  | 
 | config K3_THERMAL | 
 | 	tristate "Texas Instruments K3 thermal support" | 
 | 	depends on ARCH_K3 || COMPILE_TEST | 
 | 	help | 
 | 	  If you say yes here you get thermal support for the Texas Instruments | 
 | 	  K3 SoC family. The current chip supported is: | 
 | 	  - AM654 | 
 |  | 
 | 	  This includes temperature reading functionality. | 
 |  | 
 | config MAX77620_THERMAL | 
 | 	tristate "Temperature sensor driver for Maxim MAX77620 PMIC" | 
 | 	depends on MFD_MAX77620 | 
 | 	depends on OF | 
 | 	help | 
 | 	  Support for die junction temperature warning alarm for Maxim | 
 | 	  Semiconductor PMIC MAX77620 device. Device generates two alarm | 
 | 	  interrupts when PMIC die temperature cross the threshold of | 
 | 	  120 degC and 140 degC. | 
 |  | 
 | config QORIQ_THERMAL | 
 | 	tristate "QorIQ Thermal Monitoring Unit" | 
 | 	depends on THERMAL_OF && HAS_IOMEM | 
 | 	depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || (ARCH_MXC && ARM64) || COMPILE_TEST | 
 | 	select REGMAP_MMIO | 
 | 	help | 
 | 	  Support for Thermal Monitoring Unit (TMU) found on QorIQ platforms. | 
 | 	  It supports one critical trip point and one passive trip point. The | 
 | 	  cpufreq is used as the cooling device to throttle CPUs when the | 
 | 	  passive trip is crossed. | 
 |  | 
 | config SPEAR_THERMAL | 
 | 	tristate "SPEAr thermal sensor driver" | 
 | 	depends on PLAT_SPEAR || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	depends on OF | 
 | 	help | 
 | 	  Enable this to plug the SPEAr thermal sensor driver into the Linux | 
 | 	  thermal framework. | 
 |  | 
 | config SUN8I_THERMAL | 
 | 	tristate "Allwinner sun8i thermal driver" | 
 | 	depends on ARCH_SUNXI || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	depends on NVMEM | 
 | 	depends on OF | 
 | 	depends on RESET_CONTROLLER | 
 | 	help | 
 | 	  Support for the sun8i thermal sensor driver into the Linux thermal | 
 | 	  framework. | 
 |  | 
 | 	  To compile this driver as a module, choose M here: the | 
 | 	  module will be called sun8i-thermal. | 
 |  | 
 | config ROCKCHIP_THERMAL | 
 | 	tristate "Rockchip thermal driver" | 
 | 	depends on ARCH_ROCKCHIP || COMPILE_TEST | 
 | 	depends on RESET_CONTROLLER | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  Rockchip thermal driver provides support for Temperature sensor | 
 | 	  ADC (TS-ADC) found on Rockchip SoCs. It supports one critical | 
 | 	  trip point. Cpufreq is used as the cooling device and will throttle | 
 | 	  CPUs when the Temperature crosses the passive trip point. | 
 |  | 
 | config RCAR_THERMAL | 
 | 	tristate "Renesas R-Car thermal driver" | 
 | 	depends on ARCH_RENESAS || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  Enable this to plug the R-Car thermal sensor driver into the Linux | 
 | 	  thermal framework. | 
 |  | 
 | config RCAR_GEN3_THERMAL | 
 | 	tristate "Renesas R-Car Gen3 and RZ/G2 thermal driver" | 
 | 	depends on ARCH_RENESAS || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	depends on OF | 
 | 	help | 
 | 	  Enable this to plug the R-Car Gen3 or RZ/G2 thermal sensor driver into | 
 | 	  the Linux thermal framework. | 
 |  | 
 | config RZG2L_THERMAL | 
 | 	tristate "Renesas RZ/G2L thermal driver" | 
 | 	depends on ARCH_RENESAS || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	depends on OF | 
 | 	help | 
 | 	  Enable this to plug the RZ/G2L thermal sensor driver into the Linux | 
 | 	  thermal framework. | 
 |  | 
 | config KIRKWOOD_THERMAL | 
 | 	tristate "Temperature sensor on Marvell Kirkwood SoCs" | 
 | 	depends on MACH_KIRKWOOD || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	depends on OF | 
 | 	help | 
 | 	  Support for the Kirkwood thermal sensor driver into the Linux thermal | 
 | 	  framework. Only kirkwood 88F6282 and 88F6283 have this sensor. | 
 |  | 
 | config DOVE_THERMAL | 
 | 	tristate "Temperature sensor on Marvell Dove SoCs" | 
 | 	depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	depends on OF | 
 | 	help | 
 | 	  Support for the Dove thermal sensor driver in the Linux thermal | 
 | 	  framework. | 
 |  | 
 | config DB8500_THERMAL | 
 | 	tristate "DB8500 thermal management" | 
 | 	depends on MFD_DB8500_PRCMU && OF | 
 | 	default y | 
 | 	help | 
 | 	  Adds DB8500 thermal management implementation according to the thermal | 
 | 	  management framework. A thermal zone with several trip points will be | 
 | 	  created. Cooling devices can be bound to the trip points to cool this | 
 | 	  thermal zone if trip points reached. | 
 |  | 
 | config ARMADA_THERMAL | 
 | 	tristate "Marvell EBU Armada SoCs thermal management" | 
 | 	depends on ARCH_MVEBU || COMPILE_TEST | 
 | 	depends on HAS_IOMEM | 
 | 	depends on OF | 
 | 	help | 
 | 	  Enable this option if you want to have support for thermal management | 
 | 	  controller present in Marvell EBU Armada SoCs (370,375,XP,38x,7K,8K). | 
 |  | 
 | config DA9062_THERMAL | 
 | 	tristate "DA9062/DA9061 Dialog Semiconductor thermal driver" | 
 | 	depends on MFD_DA9062 || COMPILE_TEST | 
 | 	depends on OF | 
 | 	help | 
 | 	  Enable this for the Dialog Semiconductor thermal sensor driver. | 
 | 	  This will report PMIC junction over-temperature for one thermal trip | 
 | 	  zone. | 
 | 	  Compatible with the DA9062 and DA9061 PMICs. | 
 |  | 
 | menu "Mediatek thermal drivers" | 
 | depends on ARCH_MEDIATEK || COMPILE_TEST | 
 | source "drivers/thermal/mediatek/Kconfig" | 
 | endmenu | 
 |  | 
 | config AMLOGIC_THERMAL | 
 | 	tristate "Amlogic Thermal Support" | 
 | 	default ARCH_MESON | 
 | 	depends on OF && ARCH_MESON | 
 | 	help | 
 | 	  If you say yes here you get support for Amlogic Thermal | 
 | 	  for G12 SoC Family. | 
 |  | 
 | 	  This driver can also be built as a module. If so, the module will | 
 | 	  be called amlogic_thermal. | 
 |  | 
 | menu "Intel thermal drivers" | 
 | depends on X86 || X86_INTEL_QUARK || COMPILE_TEST | 
 | source "drivers/thermal/intel/Kconfig" | 
 | endmenu | 
 |  | 
 | menu "Broadcom thermal drivers" | 
 | depends on ARCH_BCM || ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM_IPROC || \ | 
 | 		COMPILE_TEST | 
 | source "drivers/thermal/broadcom/Kconfig" | 
 | endmenu | 
 |  | 
 | menu "Texas Instruments thermal drivers" | 
 | depends on ARCH_HAS_BANDGAP || COMPILE_TEST | 
 | depends on HAS_IOMEM | 
 | source "drivers/thermal/ti-soc-thermal/Kconfig" | 
 | endmenu | 
 |  | 
 | menu "Samsung thermal drivers" | 
 | depends on ARCH_EXYNOS || COMPILE_TEST | 
 | source "drivers/thermal/samsung/Kconfig" | 
 | endmenu | 
 |  | 
 | menu "STMicroelectronics thermal drivers" | 
 | depends on (ARCH_STI || ARCH_STM32) && OF | 
 | source "drivers/thermal/st/Kconfig" | 
 | endmenu | 
 |  | 
 | source "drivers/thermal/tegra/Kconfig" | 
 |  | 
 | config GENERIC_ADC_THERMAL | 
 | 	tristate "Generic ADC based thermal sensor" | 
 | 	depends on IIO | 
 | 	help | 
 | 	  This enabled a thermal sysfs driver for the temperature sensor | 
 | 	  which is connected to the General Purpose ADC. The ADC channel | 
 | 	  is read via IIO framework and the channel information is provided | 
 | 	  to this driver. This driver reports the temperature by reading ADC | 
 | 	  channel and converts it to temperature based on lookup table. | 
 |  | 
 | menu "Qualcomm thermal drivers" | 
 | depends on (ARCH_QCOM && OF) || COMPILE_TEST | 
 | source "drivers/thermal/qcom/Kconfig" | 
 | endmenu | 
 |  | 
 | config UNIPHIER_THERMAL | 
 | 	tristate "Socionext UniPhier thermal driver" | 
 | 	depends on ARCH_UNIPHIER || COMPILE_TEST | 
 | 	depends on THERMAL_OF && MFD_SYSCON | 
 | 	help | 
 | 	  Enable this to plug in UniPhier on-chip PVT thermal driver into the | 
 | 	  thermal framework. The driver supports CPU thermal zone temperature | 
 | 	  reporting and a couple of trip points. | 
 |  | 
 | config SPRD_THERMAL | 
 | 	tristate "Temperature sensor on Spreadtrum SoCs" | 
 | 	depends on ARCH_SPRD || COMPILE_TEST | 
 | 	help | 
 | 	  Support for the Spreadtrum thermal sensor driver in the Linux thermal | 
 | 	  framework. | 
 |  | 
 | config KHADAS_MCU_FAN_THERMAL | 
 | 	tristate "Khadas MCU controller FAN cooling support" | 
 | 	depends on OF | 
 | 	depends on MFD_KHADAS_MCU | 
 | 	select MFD_CORE | 
 | 	select REGMAP | 
 | 	help | 
 | 	  If you say yes here you get support for the FAN controlled | 
 | 	  by the Microcontroller found on the Khadas VIM boards. | 
 |  | 
 | config LOONGSON2_THERMAL | 
 | 	tristate "Loongson-2 SoC series thermal driver" | 
 | 	depends on LOONGARCH || COMPILE_TEST | 
 | 	depends on OF | 
 | 	help | 
 | 	  Support for Thermal driver found on Loongson-2 SoC series platforms. | 
 | 	  The thermal driver realizes get_temp and set_trips function, which | 
 | 	  are used to obtain the temperature of the current node and set the | 
 | 	  temperature range to trigger the interrupt. When the input temperature | 
 | 	  is higher than the high temperature threshold or lower than the low | 
 | 	  temperature threshold, the interrupt will occur. | 
 |  | 
 | endif |