mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
8e12f1f881
Switch to thermal_of_zone to handle thermal-zones. Replace thermal_zone_device_register() by devm_thermal_of_zone_register() and remove ops st_thermal_get_trip_type, st_thermal_get_trip_temp. Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com> Link: https://lore.kernel.org/r/20240716-thermal-v4-2-947b327e165c@gmail.com Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
503 lines
16 KiB
Plaintext
503 lines
16 KiB
Plaintext
# 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 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) && THERMAL_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
|