Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
203d3d4a | 2 | # |
eb850462 | 3 | # Generic thermal drivers configuration |
203d3d4a ZR |
4 | # |
5 | ||
6 | menuconfig THERMAL | |
eb850462 | 7 | bool "Thermal drivers" |
203d3d4a | 8 | help |
eb850462 | 9 | Thermal drivers offer a generic mechanism for |
203d3d4a | 10 | thermal management. Usually it's made up of one or more thermal |
eb850462 | 11 | zones and cooling devices. |
543a9561 | 12 | Each thermal zone contains its own temperature, trip points, |
eb850462 LW |
13 | and cooling devices. |
14 | All platforms with ACPI or Open Firmware thermal support can use | |
15 | this driver. | |
554b3529 | 16 | If you want this support, you should say Y here. |
16d75239 | 17 | |
72e19897 ZR |
18 | if THERMAL |
19 | ||
8ea22951 VK |
20 | config THERMAL_STATISTICS |
21 | bool "Thermal state transition statistics" | |
22 | help | |
23 | Export thermal state transition statistics information through sysfs. | |
24 | ||
25 | If in doubt, say N. | |
26 | ||
ef1d87e0 K |
27 | config THERMAL_EMERGENCY_POWEROFF_DELAY_MS |
28 | int "Emergency poweroff delay in milli-seconds" | |
ef1d87e0 K |
29 | default 0 |
30 | help | |
31 | Thermal subsystem will issue a graceful shutdown when | |
32 | critical temperatures are reached using orderly_poweroff(). In | |
33 | case of failure of an orderly_poweroff(), the thermal emergency | |
34 | poweroff kicks in after a delay has elapsed and shuts down the system. | |
35 | This config is number of milliseconds to delay before emergency | |
36 | poweroff kicks in. Similarly to the critical trip point, | |
37 | the delay should be carefully profiled so as to give adequate | |
38 | time for orderly_poweroff() to finish on regular execution. | |
39 | If set to 0 emergency poweroff will not be supported. | |
40 | ||
41 | In doubt, leave as 0. | |
42 | ||
16d75239 | 43 | config THERMAL_HWMON |
ab92402a | 44 | bool |
0dd88793 | 45 | prompt "Expose thermal sensors as hwmon device" |
16d75239 | 46 | depends on HWMON=y || HWMON=THERMAL |
ab92402a | 47 | default y |
0dd88793 EV |
48 | help |
49 | In case a sensor is registered with the thermal | |
50 | framework, this option will also register it | |
51 | as a hwmon. The sensor will then have the common | |
52 | hwmon sysfs interface. | |
53 | ||
54 | Say 'Y' here if you want all thermal sensors to | |
55 | have hwmon sysfs interface too. | |
6a92c366 | 56 | |
4e5e4705 EV |
57 | config THERMAL_OF |
58 | bool | |
59 | prompt "APIs to parse thermal data out of device tree" | |
60 | depends on OF | |
61 | default y | |
62 | help | |
63 | This options provides helpers to add the support to | |
64 | read and parse thermal data definitions out of the | |
65 | device tree blob. | |
66 | ||
67 | Say 'Y' here if you need to build thermal infrastructure | |
68 | based on device tree. | |
69 | ||
35e94644 PA |
70 | config THERMAL_WRITABLE_TRIPS |
71 | bool "Enable writable trip points" | |
72 | help | |
73 | This option allows the system integrator to choose whether | |
74 | trip temperatures can be changed from userspace. The | |
75 | writable trips need to be specified when setting up the | |
76 | thermal zone but the choice here takes precedence. | |
77 | ||
78 | Say 'Y' here if you would like to allow userspace tools to | |
79 | change trip temperatures. | |
80 | ||
72e19897 ZR |
81 | choice |
82 | prompt "Default Thermal governor" | |
83 | default THERMAL_DEFAULT_GOV_STEP_WISE | |
84 | help | |
85 | This option sets which thermal governor shall be loaded at | |
86 | startup. If in doubt, select 'step_wise'. | |
87 | ||
88 | config THERMAL_DEFAULT_GOV_STEP_WISE | |
89 | bool "step_wise" | |
9d185d04 | 90 | select THERMAL_GOV_STEP_WISE |
72e19897 ZR |
91 | help |
92 | Use the step_wise governor as default. This throttles the | |
93 | devices one step at a time. | |
94 | ||
95 | config THERMAL_DEFAULT_GOV_FAIR_SHARE | |
96 | bool "fair_share" | |
9d185d04 | 97 | select THERMAL_GOV_FAIR_SHARE |
72e19897 ZR |
98 | help |
99 | Use the fair_share governor as default. This throttles the | |
100 | devices based on their 'contribution' to a zone. The | |
101 | contribution should be provided through platform data. | |
102 | ||
103 | config THERMAL_DEFAULT_GOV_USER_SPACE | |
104 | bool "user_space" | |
9d185d04 | 105 | select THERMAL_GOV_USER_SPACE |
72e19897 ZR |
106 | help |
107 | Select this if you want to let the user space manage the | |
ece238fe | 108 | platform thermals. |
72e19897 | 109 | |
6b775e87 JM |
110 | config THERMAL_DEFAULT_GOV_POWER_ALLOCATOR |
111 | bool "power_allocator" | |
50260614 | 112 | depends on THERMAL_GOV_POWER_ALLOCATOR |
6b775e87 JM |
113 | help |
114 | Select this if you want to control temperature based on | |
115 | system and device power allocation. This governor can only | |
116 | operate on cooling devices that implement the power API. | |
117 | ||
72e19897 ZR |
118 | endchoice |
119 | ||
9d185d04 | 120 | config THERMAL_GOV_FAIR_SHARE |
72e19897 ZR |
121 | bool "Fair-share thermal governor" |
122 | help | |
123 | Enable this to manage platform thermals using fair-share governor. | |
124 | ||
9d185d04 | 125 | config THERMAL_GOV_STEP_WISE |
72e19897 ZR |
126 | bool "Step_wise thermal governor" |
127 | help | |
128 | Enable this to manage platform thermals using a simple linear | |
a8227948 | 129 | governor. |
72e19897 | 130 | |
e4dbf98f PF |
131 | config THERMAL_GOV_BANG_BANG |
132 | bool "Bang Bang thermal governor" | |
133 | default n | |
134 | help | |
135 | Enable this to manage platform thermals using bang bang governor. | |
136 | ||
137 | Say 'Y' here if you want to use two point temperature regulation | |
138 | used for fans without throttling. Some fan drivers depend on this | |
139 | governor to be enabled (e.g. acerhdf). | |
140 | ||
9d185d04 | 141 | config THERMAL_GOV_USER_SPACE |
72e19897 ZR |
142 | bool "User_space thermal governor" |
143 | help | |
144 | Enable this to let the user space manage the platform thermals. | |
145 | ||
6b775e87 JM |
146 | config THERMAL_GOV_POWER_ALLOCATOR |
147 | bool "Power allocator thermal governor" | |
a4e893e8 | 148 | depends on ENERGY_MODEL |
6b775e87 JM |
149 | help |
150 | Enable this to manage platform thermals by dynamically | |
151 | allocating and limiting power to devices. | |
152 | ||
02361418 | 153 | config CPU_THERMAL |
2e31c856 | 154 | bool "Generic cpu cooling support" |
39d99cff | 155 | depends on THERMAL_OF |
2b586fea DL |
156 | help |
157 | Enable the CPU cooling features. If the system has no active | |
158 | cooling device available, this option allows to use the CPU | |
159 | as a cooling device. | |
160 | ||
161 | if CPU_THERMAL | |
162 | ||
163 | config CPU_FREQ_THERMAL | |
164 | bool "CPU frequency cooling device" | |
165 | depends on CPU_FREQ | |
166 | default y | |
02361418 ADK |
167 | help |
168 | This implements the generic cpu cooling mechanism through frequency | |
f7188b3d EV |
169 | reduction. An ACPI version of this already exists |
170 | (drivers/acpi/processor_thermal.c). | |
02361418 ADK |
171 | This will be useful for platforms using the generic thermal interface |
172 | and not the ACPI interface. | |
f7188b3d | 173 | |
a4c428e5 DL |
174 | config CPU_IDLE_THERMAL |
175 | bool "CPU idle cooling device" | |
176 | depends on IDLE_INJECT | |
177 | help | |
178 | This implements the CPU cooling mechanism through | |
179 | idle injection. This will throttle the CPU by injecting | |
180 | idle cycle. | |
2b586fea | 181 | endif |
02361418 | 182 | |
f9df89d8 EV |
183 | config CLOCK_THERMAL |
184 | bool "Generic clock cooling support" | |
185 | depends on COMMON_CLK | |
186 | depends on PM_OPP | |
187 | help | |
188 | This entry implements the generic clock cooling mechanism through | |
189 | frequency clipping. Typically used to cool off co-processors. The | |
190 | device that is configured to use this cooling mechanism will be | |
191 | controlled to reduce clock frequency whenever temperature is high. | |
192 | ||
a76caf55 ØE |
193 | config DEVFREQ_THERMAL |
194 | bool "Generic device cooling support" | |
195 | depends on PM_DEVFREQ | |
196 | depends on PM_OPP | |
197 | help | |
198 | This implements the generic devfreq cooling mechanism through | |
199 | frequency reduction for devices using devfreq. | |
200 | ||
201 | This will throttle the device by limiting the maximum allowed DVFS | |
202 | frequency corresponding to the cooling level. | |
203 | ||
204 | In order to use the power extensions of the cooling device, | |
205 | devfreq should use the simple_ondemand governor. | |
206 | ||
f9df89d8 EV |
207 | If you want this support, you should say Y here. |
208 | ||
e6e238c3 ADK |
209 | config THERMAL_EMULATION |
210 | bool "Thermal emulation mode support" | |
211 | help | |
212 | Enable this option to make a emul_temp sysfs node in thermal zone | |
213 | directory to support temperature emulation. With emulation sysfs node, | |
214 | user can manually input temperature and test the different trip | |
215 | threshold behaviour for simulation purpose. | |
216 | ||
8837295a EV |
217 | WARNING: Be careful while enabling this option on production systems, |
218 | because userland can easily disable the thermal policy by simply | |
219 | flooding this sysfs node with low temperature values. | |
220 | ||
71aa3693 TS |
221 | config THERMAL_MMIO |
222 | tristate "Generic Thermal MMIO driver" | |
223 | depends on OF || COMPILE_TEST | |
6ec8070b | 224 | depends on HAS_IOMEM |
71aa3693 TS |
225 | help |
226 | This option enables the generic thermal MMIO driver that will use | |
227 | memory-mapped reads to get the temperature. Any HW/System that | |
228 | allows temperature reading by a single memory-mapped reading, be it | |
229 | register or shared memory, is a potential candidate to work with this | |
230 | driver. | |
231 | ||
9a5238a9 | 232 | config HISI_THERMAL |
233 | tristate "Hisilicon thermal driver" | |
f05f4821 | 234 | depends on ARCH_HISI || COMPILE_TEST |
bf82c350 | 235 | depends on HAS_IOMEM |
f05f4821 LY |
236 | depends on OF |
237 | default y | |
9a5238a9 | 238 | help |
239 | Enable this to plug hisilicon's thermal sensor driver into the Linux | |
240 | thermal framework. cpufreq is used as the cooling device to throttle | |
241 | CPUs when the passive trip is crossed. | |
242 | ||
ca3de46b SG |
243 | config IMX_THERMAL |
244 | tristate "Temperature sensor driver for Freescale i.MX SoCs" | |
c589c566 | 245 | depends on ARCH_MXC || COMPILE_TEST |
531fcdeb | 246 | depends on NVMEM || !NVMEM |
ca3de46b SG |
247 | depends on MFD_SYSCON |
248 | depends on OF | |
249 | help | |
250 | Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs. | |
251 | It supports one critical trip point and one passive trip point. The | |
252 | cpufreq is used as the cooling device to throttle CPUs when the | |
253 | passive trip is crossed. | |
254 | ||
e20db70d AH |
255 | config IMX_SC_THERMAL |
256 | tristate "Temperature sensor driver for NXP i.MX SoCs with System Controller" | |
ef502fc1 | 257 | depends on IMX_SCU |
e20db70d AH |
258 | depends on OF |
259 | help | |
260 | Support for Temperature Monitor (TEMPMON) found on NXP i.MX SoCs with | |
261 | system controller inside, Linux kernel has to communicate with system | |
262 | controller via MU (message unit) IPC to get temperature from thermal | |
263 | sensor. It supports one critical trip point and one | |
264 | passive trip point for each thermal sensor. | |
265 | ||
5eed800a AH |
266 | config IMX8MM_THERMAL |
267 | tristate "Temperature sensor driver for Freescale i.MX8MM SoC" | |
268 | depends on ARCH_MXC | |
269 | depends on OF | |
270 | help | |
271 | Support for Thermal Monitoring Unit (TMU) found on Freescale i.MX8MM SoC. | |
272 | It supports one critical trip point and one passive trip point. The | |
273 | cpufreq is used as the cooling device to throttle CPUs when the passive | |
274 | trip is crossed. | |
275 | ||
ec4664b3 LD |
276 | config MAX77620_THERMAL |
277 | tristate "Temperature sensor driver for Maxim MAX77620 PMIC" | |
278 | depends on MFD_MAX77620 | |
279 | depends on OF | |
280 | help | |
281 | Support for die junction temperature warning alarm for Maxim | |
282 | Semiconductor PMIC MAX77620 device. Device generates two alarm | |
283 | interrupts when PMIC die temperature cross the threshold of | |
284 | 120 degC and 140 degC. | |
285 | ||
43528445 JH |
286 | config QORIQ_THERMAL |
287 | tristate "QorIQ Thermal Monitoring Unit" | |
288 | depends on THERMAL_OF | |
289 | depends on HAS_IOMEM | |
290 | help | |
291 | Support for Thermal Monitoring Unit (TMU) found on QorIQ platforms. | |
292 | It supports one critical trip point and one passive trip point. The | |
293 | cpufreq is used as the cooling device to throttle CPUs when the | |
294 | passive trip is crossed. | |
295 | ||
6a92c366 | 296 | config SPEAR_THERMAL |
4d2f1794 | 297 | tristate "SPEAr thermal sensor driver" |
aa2937b7 | 298 | depends on PLAT_SPEAR || COMPILE_TEST |
bf82c350 | 299 | depends on HAS_IOMEM |
b9c7aff4 | 300 | depends on OF |
6a92c366 VF |
301 | help |
302 | Enable this to plug the SPEAr thermal sensor driver into the Linux | |
a8227948 | 303 | thermal framework. |
1e426ffd | 304 | |
dccc5c3b YL |
305 | config SUN8I_THERMAL |
306 | tristate "Allwinner sun8i thermal driver" | |
307 | depends on ARCH_SUNXI || COMPILE_TEST | |
308 | depends on HAS_IOMEM | |
309 | depends on NVMEM | |
310 | depends on OF | |
311 | depends on RESET_CONTROLLER | |
312 | help | |
313 | Support for the sun8i thermal sensor driver into the Linux thermal | |
314 | framework. | |
315 | ||
316 | To compile this driver as a module, choose M here: the | |
317 | module will be called sun8i-thermal. | |
318 | ||
cbac8f63 CW |
319 | config ROCKCHIP_THERMAL |
320 | tristate "Rockchip thermal driver" | |
444f9b00 | 321 | depends on ARCH_ROCKCHIP || COMPILE_TEST |
cbac8f63 | 322 | depends on RESET_CONTROLLER |
bf82c350 | 323 | depends on HAS_IOMEM |
cbac8f63 CW |
324 | help |
325 | Rockchip thermal driver provides support for Temperature sensor | |
326 | ADC (TS-ADC) found on Rockchip SoCs. It supports one critical | |
327 | trip point. Cpufreq is used as the cooling device and will throttle | |
328 | CPUs when the Temperature crosses the passive trip point. | |
329 | ||
1e426ffd KM |
330 | config RCAR_THERMAL |
331 | tristate "Renesas R-Car thermal driver" | |
8255e4e2 | 332 | depends on ARCH_RENESAS || COMPILE_TEST |
d1c8b041 | 333 | depends on HAS_IOMEM |
1e426ffd KM |
334 | help |
335 | Enable this to plug the R-Car thermal sensor driver into the Linux | |
a8227948 | 336 | thermal framework. |
c48cbba6 | 337 | |
564e73d2 WS |
338 | config RCAR_GEN3_THERMAL |
339 | tristate "Renesas R-Car Gen3 thermal driver" | |
340 | depends on ARCH_RENESAS || COMPILE_TEST | |
341 | depends on HAS_IOMEM | |
342 | depends on OF | |
343 | help | |
344 | Enable this to plug the R-Car Gen3 thermal sensor driver into the Linux | |
345 | thermal framework. | |
346 | ||
7060aa36 NI |
347 | config KIRKWOOD_THERMAL |
348 | tristate "Temperature sensor on Marvell Kirkwood SoCs" | |
9c8aa959 | 349 | depends on MACH_KIRKWOOD || COMPILE_TEST |
bf82c350 | 350 | depends on HAS_IOMEM |
7060aa36 NI |
351 | depends on OF |
352 | help | |
353 | Support for the Kirkwood thermal sensor driver into the Linux thermal | |
354 | framework. Only kirkwood 88F6282 and 88F6283 have this sensor. | |
355 | ||
74ffa64c AL |
356 | config DOVE_THERMAL |
357 | tristate "Temperature sensor on Marvell Dove SoCs" | |
07fffd5c | 358 | depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST |
bf82c350 | 359 | depends on HAS_IOMEM |
74ffa64c AL |
360 | depends on OF |
361 | help | |
362 | Support for the Dove thermal sensor driver in the Linux thermal | |
363 | framework. | |
364 | ||
aa1acb04 | 365 | config DB8500_THERMAL |
26716ce1 | 366 | tristate "DB8500 thermal management" |
cb063a83 | 367 | depends on MFD_DB8500_PRCMU && OF |
aa1acb04 | 368 | default y |
369 | help | |
370 | Adds DB8500 thermal management implementation according to the thermal | |
371 | management framework. A thermal zone with several trip points will be | |
372 | created. Cooling devices can be bound to the trip points to cool this | |
373 | thermal zone if trip points reached. | |
374 | ||
fa0d654c | 375 | config ARMADA_THERMAL |
a9d58a1a | 376 | tristate "Marvell EBU Armada SoCs thermal management" |
1b158267 | 377 | depends on ARCH_MVEBU || COMPILE_TEST |
bf82c350 | 378 | depends on HAS_IOMEM |
fa0d654c EG |
379 | depends on OF |
380 | help | |
381 | Enable this option if you want to have support for thermal management | |
a9d58a1a | 382 | controller present in Marvell EBU Armada SoCs (370,375,XP,38x,7K,8K). |
fa0d654c | 383 | |
608567aa ST |
384 | config DA9062_THERMAL |
385 | tristate "DA9062/DA9061 Dialog Semiconductor thermal driver" | |
386 | depends on MFD_DA9062 || COMPILE_TEST | |
387 | depends on OF | |
388 | help | |
389 | Enable this for the Dialog Semiconductor thermal sensor driver. | |
390 | This will report PMIC junction over-temperature for one thermal trip | |
391 | zone. | |
392 | Compatible with the DA9062 and DA9061 PMICs. | |
393 | ||
a92db1c8 SH |
394 | config MTK_THERMAL |
395 | tristate "Temperature sensor driver for mediatek SoCs" | |
396 | depends on ARCH_MEDIATEK || COMPILE_TEST | |
74e5053c | 397 | depends on HAS_IOMEM |
62e14f6f | 398 | depends on NVMEM || NVMEM=n |
a6f4850d | 399 | depends on RESET_CONTROLLER |
a92db1c8 SH |
400 | default y |
401 | help | |
402 | Enable this option if you want to have support for thermal management | |
403 | controller present in Mediatek SoCs | |
404 | ||
421eda10 GLR |
405 | config AMLOGIC_THERMAL |
406 | tristate "Amlogic Thermal Support" | |
407 | default ARCH_MESON | |
408 | depends on OF && ARCH_MESON | |
409 | help | |
410 | If you say yes here you get support for Amlogic Thermal | |
411 | for G12 SoC Family. | |
412 | ||
413 | This driver can also be built as a module. If so, the module will | |
414 | be called amlogic_thermal. | |
415 | ||
3e8c4d31 AK |
416 | menu "Intel thermal drivers" |
417 | depends on X86 || X86_INTEL_QUARK || COMPILE_TEST | |
418 | source "drivers/thermal/intel/Kconfig" | |
419 | endmenu | |
420 | ||
a94cb7ee | 421 | menu "Broadcom thermal drivers" |
250e2110 PK |
422 | depends on ARCH_BCM || ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM_IPROC || \ |
423 | COMPILE_TEST | |
a94cb7ee RM |
424 | source "drivers/thermal/broadcom/Kconfig" |
425 | endmenu | |
426 | ||
eb982001 | 427 | menu "Texas Instruments thermal drivers" |
ec2feb47 | 428 | depends on ARCH_HAS_BANDGAP || COMPILE_TEST |
bf82c350 | 429 | depends on HAS_IOMEM |
eb982001 EV |
430 | source "drivers/thermal/ti-soc-thermal/Kconfig" |
431 | endmenu | |
f157f596 | 432 | |
c6821378 | 433 | menu "Samsung thermal drivers" |
2bf42735 | 434 | depends on ARCH_EXYNOS || COMPILE_TEST |
c6821378 ADK |
435 | source "drivers/thermal/samsung/Kconfig" |
436 | endmenu | |
437 | ||
60aef7ce | 438 | menu "STMicroelectronics thermal drivers" |
1d693155 | 439 | depends on (ARCH_STI || ARCH_STM32) && OF |
60aef7ce LJ |
440 | source "drivers/thermal/st/Kconfig" |
441 | endmenu | |
442 | ||
0b58c08b MG |
443 | config TANGO_THERMAL |
444 | tristate "Tango thermal management" | |
445 | depends on ARCH_TANGO || COMPILE_TEST | |
446 | help | |
447 | Enable the Tango thermal driver, which supports the primitive | |
448 | temperature sensor embedded in Tango chips since the SMP8758. | |
449 | This sensor only generates a 1-bit signal to indicate whether | |
450 | the die temperature exceeds a programmable threshold. | |
451 | ||
a4dff94f WN |
452 | source "drivers/thermal/tegra/Kconfig" |
453 | ||
b3aef78f LD |
454 | config GENERIC_ADC_THERMAL |
455 | tristate "Generic ADC based thermal sensor" | |
456 | depends on IIO | |
457 | help | |
458 | This enabled a thermal sysfs driver for the temperature sensor | |
459 | which is connected to the General Purpose ADC. The ADC channel | |
460 | is read via IIO framework and the channel information is provided | |
461 | to this driver. This driver reports the temperature by reading ADC | |
462 | channel and converts it to temperature based on lookup table. | |
463 | ||
9066073c RN |
464 | menu "Qualcomm thermal drivers" |
465 | depends on (ARCH_QCOM && OF) || COMPILE_TEST | |
466 | source "drivers/thermal/qcom/Kconfig" | |
467 | endmenu | |
468 | ||
50fdd36f BX |
469 | config ZX2967_THERMAL |
470 | tristate "Thermal sensors on zx2967 SoC" | |
471 | depends on ARCH_ZX || COMPILE_TEST | |
472 | help | |
473 | Enable the zx2967 thermal sensors driver, which supports | |
474 | the primitive temperature sensor embedded in zx2967 SoCs. | |
475 | This sensor generates the real time die temperature. | |
476 | ||
86da4391 KH |
477 | config UNIPHIER_THERMAL |
478 | tristate "Socionext UniPhier thermal driver" | |
479 | depends on ARCH_UNIPHIER || COMPILE_TEST | |
480 | depends on THERMAL_OF && MFD_SYSCON | |
481 | help | |
482 | Enable this to plug in UniPhier on-chip PVT thermal driver into the | |
483 | thermal framework. The driver supports CPU thermal zone temperature | |
484 | reporting and a couple of trip points. | |
554fdbaf FL |
485 | |
486 | config SPRD_THERMAL | |
487 | tristate "Temperature sensor on Spreadtrum SoCs" | |
488 | depends on ARCH_SPRD || COMPILE_TEST | |
489 | help | |
490 | Support for the Spreadtrum thermal sensor driver in the Linux thermal | |
491 | framework. | |
72e19897 | 492 | endif |