123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507 |
- # 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_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.
- 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.
- config MTK_THERMAL
- tristate "Temperature sensor driver for mediatek SoCs"
- depends on ARCH_MEDIATEK || COMPILE_TEST
- depends on HAS_IOMEM
- depends on NVMEM || NVMEM=n
- depends on RESET_CONTROLLER
- default y
- help
- Enable this option if you want to have support for thermal management
- controller present in Mediatek SoCs
- 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.
- endif
|