| # 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_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 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 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/renesas/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 |