mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 06:41:43 +00:00
0ef7791e2b
Pull thermal SoC updates from Eduardo Valentin: "Several new things coming up. Specifics: - Rework of tsens and hisi thermal drivers - OF-thermal now allows sharing multiple cooling devices on maps - Added support for r8a7744 and R8A77970 on rcar thermal driver - Added support for r8a774a1 on rcar_gen3 thermal driver - New thermal driver stm32 - Fixes on multiple thermal drivers: of-thermal, imx, qoriq, armada, qcom-spmi, rcar, da9062/61" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: (41 commits) thermal: da9062/61: Prevent hardware access during system suspend thermal: rcar_thermal: Prevent doing work after unbind thermal: rcar_thermal: Prevent hardware access during system suspend thermal: rcar_gen3_thermal: add R8A77980 support dt-bindings: thermal: rcar-gen3-thermal: document R8A77980 bindings thermal: add stm32 thermal driver dt-bindings: stm32-thermal: add binding documentation thermal: rcar_thermal: add R8A77970 support dt-bindings: thermal: rcar-thermal: document R8A77970 bindings thermal: rcar_thermal: fix duplicate IRQ request dt-bindings: thermal: rcar: Add device tree support for r8a7744 thermal/drivers/hisi: Add the dual clusters sensors for hi3660 thermal/drivers/hisi: Add more sensors channel thermal/drivers/hisi: Remove pointless irq field thermal/drivers/hisi: Use platform_get_irq_byname thermal/drivers/hisi: Replace macro name with relevant sensor location thermal/drivers/hisi: Add multiple sensors support thermal/drivers/hisi: Prepare to support multiple sensors thermal/drivers/hisi: Factor out the probe functions thermal/drivers/hisi: Set the thermal zone private data to the sensor pointer ...
493 lines
16 KiB
Plaintext
493 lines
16 KiB
Plaintext
#
|
|
# Generic thermal sysfs drivers configuration
|
|
#
|
|
|
|
menuconfig THERMAL
|
|
tristate "Generic Thermal sysfs driver"
|
|
help
|
|
Generic Thermal Sysfs driver offers a generic mechanism for
|
|
thermal management. Usually it's made up of one or more thermal
|
|
zone and cooling device.
|
|
Each thermal zone contains its own temperature, trip points,
|
|
cooling devices.
|
|
All platforms with ACPI thermal support can use this driver.
|
|
If you want this support, you should say Y or M here.
|
|
|
|
if THERMAL
|
|
|
|
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"
|
|
depends on THERMAL
|
|
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
|
|
Select this if you want to let the user space manage the
|
|
platform thermals.
|
|
|
|
config THERMAL_DEFAULT_GOV_POWER_ALLOCATOR
|
|
bool "power_allocator"
|
|
select 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"
|
|
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 CPU_FREQ
|
|
depends on THERMAL_OF
|
|
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.
|
|
|
|
If you want this support, you should say Y here.
|
|
|
|
config CLOCK_THERMAL
|
|
bool "Generic clock cooling support"
|
|
depends on COMMON_CLK
|
|
depends on PM_OPP
|
|
help
|
|
This entry implements the generic clock cooling mechanism through
|
|
frequency clipping. Typically used to cool off co-processors. The
|
|
device that is configured to use this cooling mechanism will be
|
|
controlled to reduce clock frequency whenever temperature is high.
|
|
|
|
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 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 && CPU_THERMAL) || 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 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
|
|
depends on HAS_IOMEM
|
|
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 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 thermal driver"
|
|
depends on ARCH_RENESAS || COMPILE_TEST
|
|
depends on HAS_IOMEM
|
|
depends on OF
|
|
help
|
|
Enable this to plug the R-Car Gen3 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
|
|
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 INTEL_POWERCLAMP
|
|
tristate "Intel PowerClamp idle injection driver"
|
|
depends on THERMAL
|
|
depends on X86
|
|
depends on CPU_SUP_INTEL
|
|
help
|
|
Enable this to enable Intel PowerClamp idle injection driver. This
|
|
enforce idle time which results in more package C-state residency. The
|
|
user interface is exposed via generic thermal framework.
|
|
|
|
config X86_PKG_TEMP_THERMAL
|
|
tristate "X86 package temperature thermal driver"
|
|
depends on X86_THERMAL_VECTOR
|
|
select THERMAL_GOV_USER_SPACE
|
|
select THERMAL_WRITABLE_TRIPS
|
|
default m
|
|
help
|
|
Enable this to register CPU digital sensor for package temperature as
|
|
thermal zone. Each package will have its own thermal zone. There are
|
|
two trip points which can be set by user to get notifications via thermal
|
|
notification methods.
|
|
|
|
config INTEL_SOC_DTS_IOSF_CORE
|
|
tristate
|
|
depends on X86 && PCI
|
|
select IOSF_MBI
|
|
help
|
|
This is becoming a common feature for Intel SoCs to expose the additional
|
|
digital temperature sensors (DTSs) using side band interface (IOSF). This
|
|
implements the common set of helper functions to register, get temperature
|
|
and get/set thresholds on DTSs.
|
|
|
|
config INTEL_SOC_DTS_THERMAL
|
|
tristate "Intel SoCs DTS thermal driver"
|
|
depends on X86 && PCI && ACPI
|
|
select INTEL_SOC_DTS_IOSF_CORE
|
|
select THERMAL_WRITABLE_TRIPS
|
|
help
|
|
Enable this to register Intel SoCs (e.g. Bay Trail) platform digital
|
|
temperature sensor (DTS). These SoCs have two additional DTSs in
|
|
addition to DTSs on CPU cores. Each DTS will be registered as a
|
|
thermal zone. There are two trip points. One of the trip point can
|
|
be set by user mode programs to get notifications via Linux thermal
|
|
notification methods.The other trip is a critical trip point, which
|
|
was set by the driver based on the TJ MAX temperature.
|
|
|
|
config INTEL_QUARK_DTS_THERMAL
|
|
tristate "Intel Quark DTS thermal driver"
|
|
depends on X86_INTEL_QUARK
|
|
help
|
|
Enable this to register Intel Quark SoC (e.g. X1000) platform digital
|
|
temperature sensor (DTS). For X1000 SoC, it has one on-die DTS.
|
|
The DTS will be registered as a thermal zone. There are two trip points:
|
|
hot & critical. The critical trip point default value is set by
|
|
underlying BIOS/Firmware.
|
|
|
|
menu "ACPI INT340X thermal drivers"
|
|
source drivers/thermal/int340x_thermal/Kconfig
|
|
endmenu
|
|
|
|
config INTEL_BXT_PMIC_THERMAL
|
|
tristate "Intel Broxton PMIC thermal driver"
|
|
depends on X86 && INTEL_SOC_PMIC_BXTWC && REGMAP
|
|
help
|
|
Select this driver for Intel Broxton PMIC with ADC channels monitoring
|
|
system temperature measurements and alerts.
|
|
This driver is used for monitoring the ADC channels of PMIC and handles
|
|
the alert trip point interrupts and notifies the thermal framework with
|
|
the trip point and temperature details of the zone.
|
|
|
|
config INTEL_PCH_THERMAL
|
|
tristate "Intel PCH Thermal Reporting Driver"
|
|
depends on X86 && PCI
|
|
help
|
|
Enable this to support thermal reporting on certain intel PCHs.
|
|
Thermal reporting device will provide temperature reading,
|
|
programmable trip points and other information.
|
|
|
|
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
|
|
|
|
menu "Broadcom thermal drivers"
|
|
depends on ARCH_BCM || ARCH_BRCMSTB || ARCH_BCM2835 || 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
|
|
|
|
config TANGO_THERMAL
|
|
tristate "Tango thermal management"
|
|
depends on ARCH_TANGO || COMPILE_TEST
|
|
help
|
|
Enable the Tango thermal driver, which supports the primitive
|
|
temperature sensor embedded in Tango chips since the SMP8758.
|
|
This sensor only generates a 1-bit signal to indicate whether
|
|
the die temperature exceeds a programmable threshold.
|
|
|
|
source "drivers/thermal/tegra/Kconfig"
|
|
|
|
config QCOM_SPMI_TEMP_ALARM
|
|
tristate "Qualcomm SPMI PMIC Temperature Alarm"
|
|
depends on OF && SPMI && IIO
|
|
select REGMAP_SPMI
|
|
help
|
|
This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP)
|
|
PMIC devices. It shows up in sysfs as a thermal sensor with multiple
|
|
trip points. The temperature reported by the thermal sensor reflects the
|
|
real time die temperature if an ADC is present or an estimate of the
|
|
temperature based upon the over temperature stage value.
|
|
|
|
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 ZX2967_THERMAL
|
|
tristate "Thermal sensors on zx2967 SoC"
|
|
depends on ARCH_ZX || COMPILE_TEST
|
|
help
|
|
Enable the zx2967 thermal sensors driver, which supports
|
|
the primitive temperature sensor embedded in zx2967 SoCs.
|
|
This sensor generates the real time die temperature.
|
|
|
|
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.
|
|
endif
|