xref: /linux/drivers/thermal/Kconfig (revision 9a5238a9c6c33dd31525f2bba4aa1af4f8374ae1)
1203d3d4aSZhang Rui#
2203d3d4aSZhang Rui# Generic thermal sysfs drivers configuration
3203d3d4aSZhang Rui#
4203d3d4aSZhang Rui
5203d3d4aSZhang Ruimenuconfig THERMAL
663c4ec90SZhang Rui	tristate "Generic Thermal sysfs driver"
7203d3d4aSZhang Rui	help
8203d3d4aSZhang Rui	  Generic Thermal Sysfs driver offers a generic mechanism for
9203d3d4aSZhang Rui	  thermal management. Usually it's made up of one or more thermal
10203d3d4aSZhang Rui	  zone and cooling device.
11543a9561SLen Brown	  Each thermal zone contains its own temperature, trip points,
12203d3d4aSZhang Rui	  cooling devices.
13203d3d4aSZhang Rui	  All platforms with ACPI thermal support can use this driver.
1463c4ec90SZhang Rui	  If you want this support, you should say Y or M here.
1516d75239SRene Herman
1672e19897SZhang Ruiif THERMAL
1772e19897SZhang Rui
1816d75239SRene Hermanconfig THERMAL_HWMON
19ab92402aSJean Delvare	bool
200dd88793SEduardo Valentin	prompt "Expose thermal sensors as hwmon device"
2116d75239SRene Herman	depends on HWMON=y || HWMON=THERMAL
22ab92402aSJean Delvare	default y
230dd88793SEduardo Valentin	help
240dd88793SEduardo Valentin	  In case a sensor is registered with the thermal
250dd88793SEduardo Valentin	  framework, this option will also register it
260dd88793SEduardo Valentin	  as a hwmon. The sensor will then have the common
270dd88793SEduardo Valentin	  hwmon sysfs interface.
280dd88793SEduardo Valentin
290dd88793SEduardo Valentin	  Say 'Y' here if you want all thermal sensors to
300dd88793SEduardo Valentin	  have hwmon sysfs interface too.
316a92c366SVincenzo Frascino
324e5e4705SEduardo Valentinconfig THERMAL_OF
334e5e4705SEduardo Valentin	bool
344e5e4705SEduardo Valentin	prompt "APIs to parse thermal data out of device tree"
354e5e4705SEduardo Valentin	depends on OF
364e5e4705SEduardo Valentin	default y
374e5e4705SEduardo Valentin	help
384e5e4705SEduardo Valentin	  This options provides helpers to add the support to
394e5e4705SEduardo Valentin	  read and parse thermal data definitions out of the
404e5e4705SEduardo Valentin	  device tree blob.
414e5e4705SEduardo Valentin
424e5e4705SEduardo Valentin	  Say 'Y' here if you need to build thermal infrastructure
434e5e4705SEduardo Valentin	  based on device tree.
444e5e4705SEduardo Valentin
4535e94644SPunit Agrawalconfig THERMAL_WRITABLE_TRIPS
4635e94644SPunit Agrawal	bool "Enable writable trip points"
4735e94644SPunit Agrawal	help
4835e94644SPunit Agrawal	  This option allows the system integrator to choose whether
4935e94644SPunit Agrawal	  trip temperatures can be changed from userspace. The
5035e94644SPunit Agrawal	  writable trips need to be specified when setting up the
5135e94644SPunit Agrawal	  thermal zone but the choice here takes precedence.
5235e94644SPunit Agrawal
5335e94644SPunit Agrawal	  Say 'Y' here if you would like to allow userspace tools to
5435e94644SPunit Agrawal	  change trip temperatures.
5535e94644SPunit Agrawal
56a56757afSDurgadoss Rchoice
57a56757afSDurgadoss R	prompt "Default Thermal governor"
58a56757afSDurgadoss R	default THERMAL_DEFAULT_GOV_STEP_WISE
59a56757afSDurgadoss R	help
60a56757afSDurgadoss R	  This option sets which thermal governor shall be loaded at
61a56757afSDurgadoss R	  startup. If in doubt, select 'step_wise'.
62a56757afSDurgadoss R
63a56757afSDurgadoss Rconfig THERMAL_DEFAULT_GOV_STEP_WISE
64a56757afSDurgadoss R	bool "step_wise"
659d185d04SZhang Rui	select THERMAL_GOV_STEP_WISE
66a56757afSDurgadoss R	help
67a56757afSDurgadoss R	  Use the step_wise governor as default. This throttles the
68a56757afSDurgadoss R	  devices one step at a time.
69a56757afSDurgadoss R
70a56757afSDurgadoss Rconfig THERMAL_DEFAULT_GOV_FAIR_SHARE
71a56757afSDurgadoss R	bool "fair_share"
729d185d04SZhang Rui	select THERMAL_GOV_FAIR_SHARE
73a56757afSDurgadoss R	help
74a56757afSDurgadoss R	  Use the fair_share governor as default. This throttles the
75a56757afSDurgadoss R	  devices based on their 'contribution' to a zone. The
76a56757afSDurgadoss R	  contribution should be provided through platform data.
77a56757afSDurgadoss R
78a56757afSDurgadoss Rconfig THERMAL_DEFAULT_GOV_USER_SPACE
79a56757afSDurgadoss R	bool "user_space"
809d185d04SZhang Rui	select THERMAL_GOV_USER_SPACE
81a56757afSDurgadoss R	help
82a56757afSDurgadoss R	  Select this if you want to let the user space manage the
83ece238feSRegid Ichira	  platform thermals.
8472e19897SZhang Rui
856b775e87SJavi Merinoconfig THERMAL_DEFAULT_GOV_POWER_ALLOCATOR
866b775e87SJavi Merino	bool "power_allocator"
876b775e87SJavi Merino	select THERMAL_GOV_POWER_ALLOCATOR
886b775e87SJavi Merino	help
896b775e87SJavi Merino	  Select this if you want to control temperature based on
906b775e87SJavi Merino	  system and device power allocation. This governor can only
916b775e87SJavi Merino	  operate on cooling devices that implement the power API.
926b775e87SJavi Merino
93a56757afSDurgadoss Rendchoice
9472e19897SZhang Rui
959d185d04SZhang Ruiconfig THERMAL_GOV_FAIR_SHARE
9672e19897SZhang Rui	bool "Fair-share thermal governor"
9772e19897SZhang Rui	help
9872e19897SZhang Rui	  Enable this to manage platform thermals using fair-share governor.
9972e19897SZhang Rui
1009d185d04SZhang Ruiconfig THERMAL_GOV_STEP_WISE
10172e19897SZhang Rui	bool "Step_wise thermal governor"
10272e19897SZhang Rui	help
10372e19897SZhang Rui	  Enable this to manage platform thermals using a simple linear
104a8227948SLuka Perkov	  governor.
10572e19897SZhang Rui
106e4dbf98fSPeter Feuererconfig THERMAL_GOV_BANG_BANG
107e4dbf98fSPeter Feuerer	bool "Bang Bang thermal governor"
108e4dbf98fSPeter Feuerer	default n
109e4dbf98fSPeter Feuerer	help
110e4dbf98fSPeter Feuerer	  Enable this to manage platform thermals using bang bang governor.
111e4dbf98fSPeter Feuerer
112e4dbf98fSPeter Feuerer	  Say 'Y' here if you want to use two point temperature regulation
113e4dbf98fSPeter Feuerer	  used for fans without throttling.  Some fan drivers depend on this
114e4dbf98fSPeter Feuerer	  governor to be enabled (e.g. acerhdf).
115e4dbf98fSPeter Feuerer
1169d185d04SZhang Ruiconfig THERMAL_GOV_USER_SPACE
11772e19897SZhang Rui	bool "User_space thermal governor"
11872e19897SZhang Rui	help
11972e19897SZhang Rui	  Enable this to let the user space manage the platform thermals.
12072e19897SZhang Rui
1216b775e87SJavi Merinoconfig THERMAL_GOV_POWER_ALLOCATOR
1226b775e87SJavi Merino	bool "Power allocator thermal governor"
1236b775e87SJavi Merino	help
1246b775e87SJavi Merino	  Enable this to manage platform thermals by dynamically
1256b775e87SJavi Merino	  allocating and limiting power to devices.
1266b775e87SJavi Merino
12772e19897SZhang Ruiconfig CPU_THERMAL
128bbf7fc88SZhang Rui	bool "generic cpu cooling support"
12972e19897SZhang Rui	depends on CPU_FREQ
13039d99cffSEduardo Valentin	depends on THERMAL_OF
13172e19897SZhang Rui	help
13272e19897SZhang Rui	  This implements the generic cpu cooling mechanism through frequency
133f7188b3dSEduardo Valentin	  reduction. An ACPI version of this already exists
134f7188b3dSEduardo Valentin	  (drivers/acpi/processor_thermal.c).
13572e19897SZhang Rui	  This will be useful for platforms using the generic thermal interface
13672e19897SZhang Rui	  and not the ACPI interface.
137f7188b3dSEduardo Valentin
13872e19897SZhang Rui	  If you want this support, you should say Y here.
13972e19897SZhang Rui
140f9df89d8SEduardo Valentinconfig CLOCK_THERMAL
141f9df89d8SEduardo Valentin	bool "Generic clock cooling support"
142f9df89d8SEduardo Valentin	depends on COMMON_CLK
143f9df89d8SEduardo Valentin	depends on PM_OPP
144f9df89d8SEduardo Valentin	help
145f9df89d8SEduardo Valentin	  This entry implements the generic clock cooling mechanism through
146f9df89d8SEduardo Valentin	  frequency clipping. Typically used to cool off co-processors. The
147f9df89d8SEduardo Valentin	  device that is configured to use this cooling mechanism will be
148f9df89d8SEduardo Valentin	  controlled to reduce clock frequency whenever temperature is high.
149f9df89d8SEduardo Valentin
150f9df89d8SEduardo Valentin	  If you want this support, you should say Y here.
151f9df89d8SEduardo Valentin
152e6e238c3SAmit Daniel Kachhapconfig THERMAL_EMULATION
153e6e238c3SAmit Daniel Kachhap	bool "Thermal emulation mode support"
154e6e238c3SAmit Daniel Kachhap	help
155e6e238c3SAmit Daniel Kachhap	  Enable this option to make a emul_temp sysfs node in thermal zone
156e6e238c3SAmit Daniel Kachhap	  directory to support temperature emulation. With emulation sysfs node,
157e6e238c3SAmit Daniel Kachhap	  user can manually input temperature and test the different trip
158e6e238c3SAmit Daniel Kachhap	  threshold behaviour for simulation purpose.
159e6e238c3SAmit Daniel Kachhap
1608837295aSEduardo Valentin	  WARNING: Be careful while enabling this option on production systems,
1618837295aSEduardo Valentin	  because userland can easily disable the thermal policy by simply
1628837295aSEduardo Valentin	  flooding this sysfs node with low temperature values.
1638837295aSEduardo Valentin
164*9a5238a9Skongxinweiconfig HISI_THERMAL
165*9a5238a9Skongxinwei	tristate "Hisilicon thermal driver"
166*9a5238a9Skongxinwei	depends on ARCH_HISI && CPU_THERMAL && OF
167*9a5238a9Skongxinwei	help
168*9a5238a9Skongxinwei	  Enable this to plug hisilicon's thermal sensor driver into the Linux
169*9a5238a9Skongxinwei	  thermal framework. cpufreq is used as the cooling device to throttle
170*9a5238a9Skongxinwei	  CPUs when the passive trip is crossed.
171*9a5238a9Skongxinwei
172ca3de46bSShawn Guoconfig IMX_THERMAL
173ca3de46bSShawn Guo	tristate "Temperature sensor driver for Freescale i.MX SoCs"
174ca3de46bSShawn Guo	depends on CPU_THERMAL
175ca3de46bSShawn Guo	depends on MFD_SYSCON
176ca3de46bSShawn Guo	depends on OF
177ca3de46bSShawn Guo	help
178ca3de46bSShawn Guo	  Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
179ca3de46bSShawn Guo	  It supports one critical trip point and one passive trip point.  The
180ca3de46bSShawn Guo	  cpufreq is used as the cooling device to throttle CPUs when the
181ca3de46bSShawn Guo	  passive trip is crossed.
182ca3de46bSShawn Guo
18372e19897SZhang Ruiconfig SPEAR_THERMAL
18472e19897SZhang Rui	bool "SPEAr thermal sensor driver"
18572e19897SZhang Rui	depends on PLAT_SPEAR
18672e19897SZhang Rui	depends on OF
18772e19897SZhang Rui	help
18872e19897SZhang Rui	  Enable this to plug the SPEAr thermal sensor driver into the Linux
189a8227948SLuka Perkov	  thermal framework.
19072e19897SZhang Rui
191cbac8f63SCaesar Wangconfig ROCKCHIP_THERMAL
192cbac8f63SCaesar Wang	tristate "Rockchip thermal driver"
193cbac8f63SCaesar Wang	depends on ARCH_ROCKCHIP
194cbac8f63SCaesar Wang	depends on RESET_CONTROLLER
195cbac8f63SCaesar Wang	help
196cbac8f63SCaesar Wang	  Rockchip thermal driver provides support for Temperature sensor
197cbac8f63SCaesar Wang	  ADC (TS-ADC) found on Rockchip SoCs. It supports one critical
198cbac8f63SCaesar Wang	  trip point. Cpufreq is used as the cooling device and will throttle
199cbac8f63SCaesar Wang	  CPUs when the Temperature crosses the passive trip point.
200cbac8f63SCaesar Wang
20172e19897SZhang Ruiconfig RCAR_THERMAL
20272e19897SZhang Rui	tristate "Renesas R-Car thermal driver"
203beeb5a1eSLaurent Pinchart	depends on ARCH_SHMOBILE || COMPILE_TEST
204d1c8b041SRichard Weinberger	depends on HAS_IOMEM
20572e19897SZhang Rui	help
20672e19897SZhang Rui	  Enable this to plug the R-Car thermal sensor driver into the Linux
207a8227948SLuka Perkov	  thermal framework.
20872e19897SZhang Rui
2097060aa36SNobuhiro Iwamatsuconfig KIRKWOOD_THERMAL
2107060aa36SNobuhiro Iwamatsu	tristate "Temperature sensor on Marvell Kirkwood SoCs"
211575be653SAndrew Lunn	depends on MACH_KIRKWOOD
2127060aa36SNobuhiro Iwamatsu	depends on OF
2137060aa36SNobuhiro Iwamatsu	help
2147060aa36SNobuhiro Iwamatsu	  Support for the Kirkwood thermal sensor driver into the Linux thermal
2157060aa36SNobuhiro Iwamatsu	  framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
2167060aa36SNobuhiro Iwamatsu
21774ffa64cSAndrew Lunnconfig DOVE_THERMAL
21874ffa64cSAndrew Lunn	tristate "Temperature sensor on Marvell Dove SoCs"
219b3dee390SRiku Voipio	depends on ARCH_DOVE || MACH_DOVE
22074ffa64cSAndrew Lunn	depends on OF
22174ffa64cSAndrew Lunn	help
22274ffa64cSAndrew Lunn	  Support for the Dove thermal sensor driver in the Linux thermal
22374ffa64cSAndrew Lunn	  framework.
22474ffa64cSAndrew Lunn
225aa1acb04Shongbo.zhangconfig DB8500_THERMAL
226aa1acb04Shongbo.zhang	bool "DB8500 thermal management"
227aa1acb04Shongbo.zhang	depends on ARCH_U8500
228aa1acb04Shongbo.zhang	default y
229aa1acb04Shongbo.zhang	help
230aa1acb04Shongbo.zhang	  Adds DB8500 thermal management implementation according to the thermal
231aa1acb04Shongbo.zhang	  management framework. A thermal zone with several trip points will be
232aa1acb04Shongbo.zhang	  created. Cooling devices can be bound to the trip points to cool this
233aa1acb04Shongbo.zhang	  thermal zone if trip points reached.
234aa1acb04Shongbo.zhang
235fa0d654cSEzequiel Garciaconfig ARMADA_THERMAL
236fa0d654cSEzequiel Garcia	tristate "Armada 370/XP thermal management"
237fa0d654cSEzequiel Garcia	depends on ARCH_MVEBU
238fa0d654cSEzequiel Garcia	depends on OF
239fa0d654cSEzequiel Garcia	help
240fa0d654cSEzequiel Garcia	  Enable this option if you want to have support for thermal management
241fa0d654cSEzequiel Garcia	  controller present in Armada 370 and Armada XP SoC.
242fa0d654cSEzequiel Garcia
24366fb8480SMikko Perttunenconfig TEGRA_SOCTHERM
24466fb8480SMikko Perttunen	tristate "Tegra SOCTHERM thermal management"
24566fb8480SMikko Perttunen	depends on ARCH_TEGRA
24666fb8480SMikko Perttunen	help
24766fb8480SMikko Perttunen	  Enable this option for integrated thermal management support on NVIDIA
24866fb8480SMikko Perttunen	  Tegra124 systems-on-chip. The driver supports four thermal zones
24966fb8480SMikko Perttunen	  (CPU, GPU, MEM, PLLX). Cooling devices can be bound to the thermal
25066fb8480SMikko Perttunen	  zones to manage temperatures. This option is also required for the
25166fb8480SMikko Perttunen	  emergency thermal reset (thermtrip) feature to function.
25266fb8480SMikko Perttunen
253aa1acb04Shongbo.zhangconfig DB8500_CPUFREQ_COOLING
254aa1acb04Shongbo.zhang	tristate "DB8500 cpufreq cooling"
255aa1acb04Shongbo.zhang	depends on ARCH_U8500
256aa1acb04Shongbo.zhang	depends on CPU_THERMAL
257aa1acb04Shongbo.zhang	default y
258aa1acb04Shongbo.zhang	help
259aa1acb04Shongbo.zhang	  Adds DB8500 cpufreq cooling devices, and these cooling devices can be
260aa1acb04Shongbo.zhang	  bound to thermal zone trip points. When a trip point reached, the
261aa1acb04Shongbo.zhang	  bound cpufreq cooling device turns active to set CPU frequency low to
262aa1acb04Shongbo.zhang	  cool down the CPU.
26372e19897SZhang Rui
264d6d71ee4SJacob Panconfig INTEL_POWERCLAMP
265d6d71ee4SJacob Pan	tristate "Intel PowerClamp idle injection driver"
266d6d71ee4SJacob Pan	depends on THERMAL
267d6d71ee4SJacob Pan	depends on X86
268d6d71ee4SJacob Pan	depends on CPU_SUP_INTEL
269d6d71ee4SJacob Pan	help
270d6d71ee4SJacob Pan	  Enable this to enable Intel PowerClamp idle injection driver. This
271d6d71ee4SJacob Pan	  enforce idle time which results in more package C-state residency. The
272d6d71ee4SJacob Pan	  user interface is exposed via generic thermal framework.
273d6d71ee4SJacob Pan
274f1a18a10SSrinivas Pandruvadaconfig X86_PKG_TEMP_THERMAL
275f1a18a10SSrinivas Pandruvada	tristate "X86 package temperature thermal driver"
276b3ba0206SRandy Dunlap	depends on X86_THERMAL_VECTOR
277f1a18a10SSrinivas Pandruvada	select THERMAL_GOV_USER_SPACE
278f1a18a10SSrinivas Pandruvada	default m
279f1a18a10SSrinivas Pandruvada	help
280f1a18a10SSrinivas Pandruvada	  Enable this to register CPU digital sensor for package temperature as
281f1a18a10SSrinivas Pandruvada	  thermal zone. Each package will have its own thermal zone. There are
282f1a18a10SSrinivas Pandruvada	  two trip points which can be set by user to get notifications via thermal
283f1a18a10SSrinivas Pandruvada	  notification methods.
284f1a18a10SSrinivas Pandruvada
285bc40b5e3SSrinivas Pandruvadaconfig INTEL_SOC_DTS_THERMAL
286bc40b5e3SSrinivas Pandruvada	tristate "Intel SoCs DTS thermal driver"
287bc40b5e3SSrinivas Pandruvada	depends on X86 && IOSF_MBI
288bc40b5e3SSrinivas Pandruvada	help
289bc40b5e3SSrinivas Pandruvada	  Enable this to register Intel SoCs (e.g. Bay Trail) platform digital
290bc40b5e3SSrinivas Pandruvada	  temperature sensor (DTS). These SoCs have two additional DTSs in
291bc40b5e3SSrinivas Pandruvada	  addition to DTSs on CPU cores. Each DTS will be registered as a
292bc40b5e3SSrinivas Pandruvada	  thermal zone. There are two trip points. One of the trip point can
293bc40b5e3SSrinivas Pandruvada	  be set by user mode programs to get notifications via Linux thermal
294bc40b5e3SSrinivas Pandruvada	  notification methods.The other trip is a critical trip point, which
295bc40b5e3SSrinivas Pandruvada	  was set by the driver based on the TJ MAX temperature.
296bc40b5e3SSrinivas Pandruvada
2973230bbfcSZhang Ruiconfig INT340X_THERMAL
298816cab93SZhang Rui	tristate "ACPI INT340X thermal drivers"
2993230bbfcSZhang Rui	depends on X86 && ACPI
3000ab15365SZhang Rui	select THERMAL_GOV_USER_SPACE
30152b1c69dSJacob Pan	select ACPI_THERMAL_REL
302d8054749SZhang Rui	select ACPI_FAN
3033230bbfcSZhang Rui	help
3043230bbfcSZhang Rui	  Newer laptops and tablets that use ACPI may have thermal sensors and
3053230bbfcSZhang Rui	  other devices with thermal control capabilities outside the core
3063230bbfcSZhang Rui	  CPU/SOC, for thermal safety reasons.
3073230bbfcSZhang Rui	  They are exposed for the OS to use via the INT3400 ACPI device object
3083230bbfcSZhang Rui	  as the master, and INT3401~INT340B ACPI device objects as the slaves.
3093230bbfcSZhang Rui	  Enable this to expose the temperature information and cooling ability
3103230bbfcSZhang Rui	  from these objects to userspace via the normal thermal framework.
3113230bbfcSZhang Rui	  This means that a wide range of applications and GUI widgets can show
3123230bbfcSZhang Rui	  the information to the user or use this information for making
3133230bbfcSZhang Rui	  decisions. For example, the Intel Thermal Daemon can use this
3143230bbfcSZhang Rui	  information to allow the user to select his laptop to run without
3153230bbfcSZhang Rui	  turning on the fans.
3163230bbfcSZhang Rui
31752b1c69dSJacob Panconfig ACPI_THERMAL_REL
31852b1c69dSJacob Pan	tristate
31952b1c69dSJacob Pan	depends on ACPI
32052b1c69dSJacob Pan
321eb982001SEduardo Valentinmenu "Texas Instruments thermal drivers"
322eb982001SEduardo Valentinsource "drivers/thermal/ti-soc-thermal/Kconfig"
323eb982001SEduardo Valentinendmenu
324f157f596SZhang Rui
325c6821378SAmit Daniel Kachhapmenu "Samsung thermal drivers"
3264de45817SBartlomiej Zolnierkiewiczdepends on ARCH_EXYNOS
327c6821378SAmit Daniel Kachhapsource "drivers/thermal/samsung/Kconfig"
328c6821378SAmit Daniel Kachhapendmenu
329c6821378SAmit Daniel Kachhap
33060aef7ceSLee Jonesmenu "STMicroelectronics thermal drivers"
33160aef7ceSLee Jonesdepends on ARCH_STI && OF
33260aef7ceSLee Jonessource "drivers/thermal/st/Kconfig"
33360aef7ceSLee Jonesendmenu
33460aef7ceSLee Jones
335c610afaaSIvan T. Ivanovconfig QCOM_SPMI_TEMP_ALARM
336c610afaaSIvan T. Ivanov	tristate "Qualcomm SPMI PMIC Temperature Alarm"
337c610afaaSIvan T. Ivanov	depends on OF && SPMI && IIO
338c610afaaSIvan T. Ivanov	select REGMAP_SPMI
339c610afaaSIvan T. Ivanov	help
340c610afaaSIvan T. Ivanov	  This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP)
341c610afaaSIvan T. Ivanov	  PMIC devices. It shows up in sysfs as a thermal sensor with multiple
342c610afaaSIvan T. Ivanov	  trip points. The temperature reported by the thermal sensor reflects the
343c610afaaSIvan T. Ivanov	  real time die temperature if an ADC is present or an estimate of the
344c610afaaSIvan T. Ivanov	  temperature based upon the over temperature stage value.
345c610afaaSIvan T. Ivanov
34672e19897SZhang Ruiendif
347