| # 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_DEBUGFS | |
| bool "Thermal subsystem debug support" | |
| depends on DEBUG_FS | |
| help | |
| Say Y to allow the thermal subsystem to collect diagnostic | |
| information that can be accessed via debugfs. | |
| config THERMAL_CORE_TESTING | |
| tristate "Thermal core testing facility" | |
| depends on DEBUG_FS | |
| help | |
| Say Y to add a debugfs-based thermal core testing facility. | |
| It allows test thermal zones to be created and populated | |
| with trip points in order to exercise the thermal core | |
| functionality in a controlled way. | |
| 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. | |
| 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 PCIE_THERMAL | |
| bool "PCIe cooling support" | |
| depends on PCIEPORTBUS | |
| help | |
| This implements PCIe cooling mechanism through bandwidth reduction | |
| for PCIe devices. | |
| 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 ARCH_HISI | |
| 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 IMX91_THERMAL | |
| tristate "Temperature sensor driver for NXP i.MX91 SoC" | |
| depends on ARCH_MXC || COMPILE_TEST | |
| depends on OF | |
| help | |
| Include one sensor and six comparators. Each of them compares the | |
| temperature value (from the sensor) against the programmable | |
| threshold values. The direction of the comparison is configurable | |
| (greater / lesser than). | |
| 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 AIROHA_THERMAL | |
| tristate "Airoha thermal sensor driver" | |
| depends on ARCH_AIROHA || COMPILE_TEST | |
| depends on MFD_SYSCON | |
| depends on OF | |
| help | |
| Enable this to plug the Airoha thermal sensor driver into the Linux | |
| thermal framework. | |
| 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 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 | |
| depends on MESON_SM | |
| 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) && THERMAL_OF | |
| source "drivers/thermal/st/Kconfig" | |
| endmenu | |
| source "drivers/thermal/renesas/Kconfig" | |
| source "drivers/thermal/spacemit/Kconfig" | |
| 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 |