Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Generic thermal drivers configuration
0004 #
0005 
0006 menuconfig THERMAL
0007         bool "Thermal drivers"
0008         help
0009           Thermal drivers offer a generic mechanism for
0010           thermal management. Usually it's made up of one or more thermal
0011           zones and cooling devices.
0012           Each thermal zone contains its own temperature, trip points,
0013           and cooling devices.
0014           All platforms with ACPI or Open Firmware thermal support can use
0015           this driver.
0016           If you want this support, you should say Y here.
0017 
0018 if THERMAL
0019 
0020 config THERMAL_NETLINK
0021         bool "Thermal netlink management"
0022         depends on NET
0023         help
0024           The thermal framework has a netlink interface to do thermal
0025           zones discovery, temperature readings and events such as
0026           trip point crossed, cooling device update or governor
0027           change. It is recommended to enable the feature.
0028 
0029 config THERMAL_STATISTICS
0030         bool "Thermal state transition statistics"
0031         help
0032           Export thermal state transition statistics information through sysfs.
0033 
0034           If in doubt, say N.
0035 
0036 config THERMAL_EMERGENCY_POWEROFF_DELAY_MS
0037         int "Emergency poweroff delay in milli-seconds"
0038         default 0
0039         help
0040           Thermal subsystem will issue a graceful shutdown when
0041           critical temperatures are reached using orderly_poweroff(). In
0042           case of failure of an orderly_poweroff(), the thermal emergency
0043           poweroff kicks in after a delay has elapsed and shuts down the system.
0044           This config is number of milliseconds to delay before emergency
0045           poweroff kicks in. Similarly to the critical trip point,
0046           the delay should be carefully profiled so as to give adequate
0047           time for orderly_poweroff() to finish on regular execution.
0048           If set to 0 emergency poweroff will not be supported.
0049 
0050           In doubt, leave as 0.
0051 
0052 config THERMAL_HWMON
0053         bool
0054         prompt "Expose thermal sensors as hwmon device"
0055         depends on HWMON=y || HWMON=THERMAL
0056         default y
0057         help
0058           In case a sensor is registered with the thermal
0059           framework, this option will also register it
0060           as a hwmon. The sensor will then have the common
0061           hwmon sysfs interface.
0062 
0063           Say 'Y' here if you want all thermal sensors to
0064           have hwmon sysfs interface too.
0065 
0066 config THERMAL_OF
0067         bool
0068         prompt "APIs to parse thermal data out of device tree"
0069         depends on OF
0070         default y
0071         help
0072           This options provides helpers to add the support to
0073           read and parse thermal data definitions out of the
0074           device tree blob.
0075 
0076           Say 'Y' here if you need to build thermal infrastructure
0077           based on device tree.
0078 
0079 config THERMAL_WRITABLE_TRIPS
0080         bool "Enable writable trip points"
0081         help
0082           This option allows the system integrator to choose whether
0083           trip temperatures can be changed from userspace. The
0084           writable trips need to be specified when setting up the
0085           thermal zone but the choice here takes precedence.
0086 
0087           Say 'Y' here if you would like to allow userspace tools to
0088           change trip temperatures.
0089 
0090 choice
0091         prompt "Default Thermal governor"
0092         default THERMAL_DEFAULT_GOV_STEP_WISE
0093         help
0094           This option sets which thermal governor shall be loaded at
0095           startup. If in doubt, select 'step_wise'.
0096 
0097 config THERMAL_DEFAULT_GOV_STEP_WISE
0098         bool "step_wise"
0099         select THERMAL_GOV_STEP_WISE
0100         help
0101           Use the step_wise governor as default. This throttles the
0102           devices one step at a time.
0103 
0104 config THERMAL_DEFAULT_GOV_FAIR_SHARE
0105         bool "fair_share"
0106         select THERMAL_GOV_FAIR_SHARE
0107         help
0108           Use the fair_share governor as default. This throttles the
0109           devices based on their 'contribution' to a zone. The
0110           contribution should be provided through platform data.
0111 
0112 config THERMAL_DEFAULT_GOV_USER_SPACE
0113         bool "user_space"
0114         select THERMAL_GOV_USER_SPACE
0115         help
0116           The Userspace governor allows to get trip point crossed
0117           notification from the kernel via uevents. It is recommended
0118           to use the netlink interface instead which gives richer
0119           information about the thermal framework events.
0120 
0121 config THERMAL_DEFAULT_GOV_POWER_ALLOCATOR
0122         bool "power_allocator"
0123         depends on THERMAL_GOV_POWER_ALLOCATOR
0124         help
0125           Select this if you want to control temperature based on
0126           system and device power allocation. This governor can only
0127           operate on cooling devices that implement the power API.
0128 
0129 endchoice
0130 
0131 config THERMAL_GOV_FAIR_SHARE
0132         bool "Fair-share thermal governor"
0133         help
0134           Enable this to manage platform thermals using fair-share governor.
0135 
0136 config THERMAL_GOV_STEP_WISE
0137         bool "Step_wise thermal governor"
0138         help
0139           Enable this to manage platform thermals using a simple linear
0140           governor.
0141 
0142 config THERMAL_GOV_BANG_BANG
0143         bool "Bang Bang thermal governor"
0144         default n
0145         help
0146           Enable this to manage platform thermals using bang bang governor.
0147 
0148           Say 'Y' here if you want to use two point temperature regulation
0149           used for fans without throttling.  Some fan drivers depend on this
0150           governor to be enabled (e.g. acerhdf).
0151 
0152 config THERMAL_GOV_USER_SPACE
0153         bool "User_space thermal governor"
0154         help
0155           Enable this to let the user space manage the platform thermals.
0156 
0157 config THERMAL_GOV_POWER_ALLOCATOR
0158         bool "Power allocator thermal governor"
0159         depends on ENERGY_MODEL
0160         help
0161           Enable this to manage platform thermals by dynamically
0162           allocating and limiting power to devices.
0163 
0164 config CPU_THERMAL
0165         bool "Generic cpu cooling support"
0166         depends on THERMAL_OF
0167         help
0168           Enable the CPU cooling features. If the system has no active
0169           cooling device available, this option allows to use the CPU
0170           as a cooling device.
0171 
0172 if CPU_THERMAL
0173 
0174 config CPU_FREQ_THERMAL
0175         bool "CPU frequency cooling device"
0176         depends on CPU_FREQ
0177         default y
0178         help
0179           This implements the generic cpu cooling mechanism through frequency
0180           reduction. An ACPI version of this already exists
0181           (drivers/acpi/processor_thermal.c).
0182           This will be useful for platforms using the generic thermal interface
0183           and not the ACPI interface.
0184 
0185 config CPU_IDLE_THERMAL
0186         bool "CPU idle cooling device"
0187         depends on IDLE_INJECT
0188         help
0189           This implements the CPU cooling mechanism through
0190           idle injection. This will throttle the CPU by injecting
0191           idle cycle.
0192 endif
0193 
0194 config DEVFREQ_THERMAL
0195         bool "Generic device cooling support"
0196         depends on PM_DEVFREQ
0197         depends on PM_OPP
0198         help
0199           This implements the generic devfreq cooling mechanism through
0200           frequency reduction for devices using devfreq.
0201 
0202           This will throttle the device by limiting the maximum allowed DVFS
0203           frequency corresponding to the cooling level.
0204 
0205           In order to use the power extensions of the cooling device,
0206           devfreq should use the simple_ondemand governor.
0207 
0208           If you want this support, you should say Y here.
0209 
0210 config THERMAL_EMULATION
0211         bool "Thermal emulation mode support"
0212         help
0213           Enable this option to make a emul_temp sysfs node in thermal zone
0214           directory to support temperature emulation. With emulation sysfs node,
0215           user can manually input temperature and test the different trip
0216           threshold behaviour for simulation purpose.
0217 
0218           WARNING: Be careful while enabling this option on production systems,
0219           because userland can easily disable the thermal policy by simply
0220           flooding this sysfs node with low temperature values.
0221 
0222 config THERMAL_MMIO
0223         tristate "Generic Thermal MMIO driver"
0224         depends on OF
0225         depends on HAS_IOMEM
0226         help
0227           This option enables the generic thermal MMIO driver that will use
0228           memory-mapped reads to get the temperature.  Any HW/System that
0229           allows temperature reading by a single memory-mapped reading, be it
0230           register or shared memory, is a potential candidate to work with this
0231           driver.
0232 
0233 config HISI_THERMAL
0234         tristate "Hisilicon thermal driver"
0235         depends on ARCH_HISI || COMPILE_TEST
0236         depends on HAS_IOMEM
0237         depends on OF
0238         default y
0239         help
0240           Enable this to plug hisilicon's thermal sensor driver into the Linux
0241           thermal framework. cpufreq is used as the cooling device to throttle
0242           CPUs when the passive trip is crossed.
0243 
0244 config IMX_THERMAL
0245         tristate "Temperature sensor driver for Freescale i.MX SoCs"
0246         depends on ARCH_MXC || COMPILE_TEST
0247         depends on NVMEM || !NVMEM
0248         depends on MFD_SYSCON
0249         depends on OF
0250         help
0251           Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
0252           It supports one critical trip point and one passive trip point.  The
0253           cpufreq is used as the cooling device to throttle CPUs when the
0254           passive trip is crossed.
0255 
0256 config IMX_SC_THERMAL
0257         tristate "Temperature sensor driver for NXP i.MX SoCs with System Controller"
0258         depends on IMX_SCU
0259         depends on OF
0260         help
0261           Support for Temperature Monitor (TEMPMON) found on NXP i.MX SoCs with
0262           system controller inside, Linux kernel has to communicate with system
0263           controller via MU (message unit) IPC to get temperature from thermal
0264           sensor. It supports one critical trip point and one
0265           passive trip point for each thermal sensor.
0266 
0267 config IMX8MM_THERMAL
0268         tristate "Temperature sensor driver for Freescale i.MX8MM SoC"
0269         depends on ARCH_MXC || COMPILE_TEST
0270         depends on OF
0271         help
0272           Support for Thermal Monitoring Unit (TMU) found on Freescale i.MX8MM SoC.
0273           It supports one critical trip point and one passive trip point. The
0274           cpufreq is used as the cooling device to throttle CPUs when the passive
0275           trip is crossed.
0276 
0277 config K3_THERMAL
0278         tristate "Texas Instruments K3 thermal support"
0279         depends on ARCH_K3 || COMPILE_TEST
0280         help
0281           If you say yes here you get thermal support for the Texas Instruments
0282           K3 SoC family. The current chip supported is:
0283           - AM654
0284 
0285           This includes temperature reading functionality.
0286 
0287 config MAX77620_THERMAL
0288         tristate "Temperature sensor driver for Maxim MAX77620 PMIC"
0289         depends on MFD_MAX77620
0290         depends on OF
0291         help
0292           Support for die junction temperature warning alarm for Maxim
0293           Semiconductor PMIC MAX77620 device. Device generates two alarm
0294           interrupts when PMIC die temperature cross the threshold of
0295           120 degC and 140 degC.
0296 
0297 config QORIQ_THERMAL
0298         tristate "QorIQ Thermal Monitoring Unit"
0299         depends on THERMAL_OF && HAS_IOMEM
0300         depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || (ARCH_MXC && ARM64) || COMPILE_TEST
0301         select REGMAP_MMIO
0302         help
0303           Support for Thermal Monitoring Unit (TMU) found on QorIQ platforms.
0304           It supports one critical trip point and one passive trip point. The
0305           cpufreq is used as the cooling device to throttle CPUs when the
0306           passive trip is crossed.
0307 
0308 config SPEAR_THERMAL
0309         tristate "SPEAr thermal sensor driver"
0310         depends on PLAT_SPEAR || COMPILE_TEST
0311         depends on HAS_IOMEM
0312         depends on OF
0313         help
0314           Enable this to plug the SPEAr thermal sensor driver into the Linux
0315           thermal framework.
0316 
0317 config SUN8I_THERMAL
0318         tristate "Allwinner sun8i thermal driver"
0319         depends on ARCH_SUNXI || COMPILE_TEST
0320         depends on HAS_IOMEM
0321         depends on NVMEM
0322         depends on OF
0323         depends on RESET_CONTROLLER
0324         help
0325           Support for the sun8i thermal sensor driver into the Linux thermal
0326           framework.
0327 
0328           To compile this driver as a module, choose M here: the
0329           module will be called sun8i-thermal.
0330 
0331 config ROCKCHIP_THERMAL
0332         tristate "Rockchip thermal driver"
0333         depends on ARCH_ROCKCHIP || COMPILE_TEST
0334         depends on RESET_CONTROLLER
0335         depends on HAS_IOMEM
0336         help
0337           Rockchip thermal driver provides support for Temperature sensor
0338           ADC (TS-ADC) found on Rockchip SoCs. It supports one critical
0339           trip point. Cpufreq is used as the cooling device and will throttle
0340           CPUs when the Temperature crosses the passive trip point.
0341 
0342 config RCAR_THERMAL
0343         tristate "Renesas R-Car thermal driver"
0344         depends on ARCH_RENESAS || COMPILE_TEST
0345         depends on HAS_IOMEM
0346         help
0347           Enable this to plug the R-Car thermal sensor driver into the Linux
0348           thermal framework.
0349 
0350 config RCAR_GEN3_THERMAL
0351         tristate "Renesas R-Car Gen3 and RZ/G2 thermal driver"
0352         depends on ARCH_RENESAS || COMPILE_TEST
0353         depends on HAS_IOMEM
0354         depends on OF
0355         help
0356           Enable this to plug the R-Car Gen3 or RZ/G2 thermal sensor driver into
0357           the Linux thermal framework.
0358 
0359 config RZG2L_THERMAL
0360         tristate "Renesas RZ/G2L thermal driver"
0361         depends on ARCH_RENESAS || COMPILE_TEST
0362         depends on HAS_IOMEM
0363         depends on OF
0364         help
0365           Enable this to plug the RZ/G2L thermal sensor driver into the Linux
0366           thermal framework.
0367 
0368 config KIRKWOOD_THERMAL
0369         tristate "Temperature sensor on Marvell Kirkwood SoCs"
0370         depends on MACH_KIRKWOOD || COMPILE_TEST
0371         depends on HAS_IOMEM
0372         depends on OF
0373         help
0374           Support for the Kirkwood thermal sensor driver into the Linux thermal
0375           framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
0376 
0377 config DOVE_THERMAL
0378         tristate "Temperature sensor on Marvell Dove SoCs"
0379         depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
0380         depends on HAS_IOMEM
0381         depends on OF
0382         help
0383           Support for the Dove thermal sensor driver in the Linux thermal
0384           framework.
0385 
0386 config DB8500_THERMAL
0387         tristate "DB8500 thermal management"
0388         depends on MFD_DB8500_PRCMU && OF
0389         default y
0390         help
0391           Adds DB8500 thermal management implementation according to the thermal
0392           management framework. A thermal zone with several trip points will be
0393           created. Cooling devices can be bound to the trip points to cool this
0394           thermal zone if trip points reached.
0395 
0396 config ARMADA_THERMAL
0397         tristate "Marvell EBU Armada SoCs thermal management"
0398         depends on ARCH_MVEBU || COMPILE_TEST
0399         depends on HAS_IOMEM
0400         depends on OF
0401         help
0402           Enable this option if you want to have support for thermal management
0403           controller present in Marvell EBU Armada SoCs (370,375,XP,38x,7K,8K).
0404 
0405 config DA9062_THERMAL
0406         tristate "DA9062/DA9061 Dialog Semiconductor thermal driver"
0407         depends on MFD_DA9062 || COMPILE_TEST
0408         depends on OF
0409         help
0410           Enable this for the Dialog Semiconductor thermal sensor driver.
0411           This will report PMIC junction over-temperature for one thermal trip
0412           zone.
0413           Compatible with the DA9062 and DA9061 PMICs.
0414 
0415 config MTK_THERMAL
0416         tristate "Temperature sensor driver for mediatek SoCs"
0417         depends on ARCH_MEDIATEK || COMPILE_TEST
0418         depends on HAS_IOMEM
0419         depends on NVMEM || NVMEM=n
0420         depends on RESET_CONTROLLER
0421         default y
0422         help
0423           Enable this option if you want to have support for thermal management
0424           controller present in Mediatek SoCs
0425 
0426 config AMLOGIC_THERMAL
0427         tristate "Amlogic Thermal Support"
0428         default ARCH_MESON
0429         depends on OF && ARCH_MESON
0430         help
0431           If you say yes here you get support for Amlogic Thermal
0432           for G12 SoC Family.
0433 
0434           This driver can also be built as a module. If so, the module will
0435           be called amlogic_thermal.
0436 
0437 menu "Intel thermal drivers"
0438 depends on X86 || X86_INTEL_QUARK || COMPILE_TEST
0439 source "drivers/thermal/intel/Kconfig"
0440 endmenu
0441 
0442 menu "Broadcom thermal drivers"
0443 depends on ARCH_BCM || ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM_IPROC || \
0444                 COMPILE_TEST
0445 source "drivers/thermal/broadcom/Kconfig"
0446 endmenu
0447 
0448 menu "Texas Instruments thermal drivers"
0449 depends on ARCH_HAS_BANDGAP || COMPILE_TEST
0450 depends on HAS_IOMEM
0451 source "drivers/thermal/ti-soc-thermal/Kconfig"
0452 endmenu
0453 
0454 menu "Samsung thermal drivers"
0455 depends on ARCH_EXYNOS || COMPILE_TEST
0456 source "drivers/thermal/samsung/Kconfig"
0457 endmenu
0458 
0459 menu "STMicroelectronics thermal drivers"
0460 depends on (ARCH_STI || ARCH_STM32) && OF
0461 source "drivers/thermal/st/Kconfig"
0462 endmenu
0463 
0464 source "drivers/thermal/tegra/Kconfig"
0465 
0466 config GENERIC_ADC_THERMAL
0467         tristate "Generic ADC based thermal sensor"
0468         depends on IIO
0469         help
0470           This enabled a thermal sysfs driver for the temperature sensor
0471           which is connected to the General Purpose ADC. The ADC channel
0472           is read via IIO framework and the channel information is provided
0473           to this driver. This driver reports the temperature by reading ADC
0474           channel and converts it to temperature based on lookup table.
0475 
0476 menu "Qualcomm thermal drivers"
0477 depends on (ARCH_QCOM && OF) || COMPILE_TEST
0478 source "drivers/thermal/qcom/Kconfig"
0479 endmenu
0480 
0481 config UNIPHIER_THERMAL
0482         tristate "Socionext UniPhier thermal driver"
0483         depends on ARCH_UNIPHIER || COMPILE_TEST
0484         depends on THERMAL_OF && MFD_SYSCON
0485         help
0486           Enable this to plug in UniPhier on-chip PVT thermal driver into the
0487           thermal framework. The driver supports CPU thermal zone temperature
0488           reporting and a couple of trip points.
0489 
0490 config SPRD_THERMAL
0491         tristate "Temperature sensor on Spreadtrum SoCs"
0492         depends on ARCH_SPRD || COMPILE_TEST
0493         help
0494           Support for the Spreadtrum thermal sensor driver in the Linux thermal
0495           framework.
0496 
0497 config KHADAS_MCU_FAN_THERMAL
0498         tristate "Khadas MCU controller FAN cooling support"
0499         depends on OF
0500         depends on MFD_KHADAS_MCU
0501         select MFD_CORE
0502         select REGMAP
0503         help
0504           If you say yes here you get support for the FAN controlled
0505           by the Microcontroller found on the Khadas VIM boards.
0506 
0507 endif