blob: 00ee79c5f8284781f09fbffe3760fc80ee8590e4 [file] [log] [blame]
rjw1f884582022-01-06 17:20:42 +08001#
2# Generic thermal sysfs drivers configuration
3#
4
5menuconfig THERMAL
6 tristate "Generic Thermal sysfs driver"
7 help
8 Generic Thermal Sysfs driver offers a generic mechanism for
9 thermal management. Usually it's made up of one or more thermal
10 zone and cooling device.
11 Each thermal zone contains its own temperature, trip points,
12 cooling devices.
13 All platforms with ACPI thermal support can use this driver.
14 If you want this support, you should say Y or M here.
15
16if THERMAL
17
18config THERMAL_EMERGENCY_POWEROFF_DELAY_MS
19 int "Emergency poweroff delay in milli-seconds"
20 depends on THERMAL
21 default 0
22 help
23 Thermal subsystem will issue a graceful shutdown when
24 critical temperatures are reached using orderly_poweroff(). In
25 case of failure of an orderly_poweroff(), the thermal emergency
26 poweroff kicks in after a delay has elapsed and shuts down the system.
27 This config is number of milliseconds to delay before emergency
28 poweroff kicks in. Similarly to the critical trip point,
29 the delay should be carefully profiled so as to give adequate
30 time for orderly_poweroff() to finish on regular execution.
31 If set to 0 emergency poweroff will not be supported.
32
33 In doubt, leave as 0.
34
35config THERMAL_HWMON
36 bool
37 prompt "Expose thermal sensors as hwmon device"
38 depends on HWMON=y || HWMON=THERMAL
39 default y
40 help
41 In case a sensor is registered with the thermal
42 framework, this option will also register it
43 as a hwmon. The sensor will then have the common
44 hwmon sysfs interface.
45
46 Say 'Y' here if you want all thermal sensors to
47 have hwmon sysfs interface too.
48
49config THERMAL_OF
50 bool
51 prompt "APIs to parse thermal data out of device tree"
52 depends on OF
53 default y
54 help
55 This options provides helpers to add the support to
56 read and parse thermal data definitions out of the
57 device tree blob.
58
59 Say 'Y' here if you need to build thermal infrastructure
60 based on device tree.
61
62config THERMAL_WRITABLE_TRIPS
63 bool "Enable writable trip points"
64 help
65 This option allows the system integrator to choose whether
66 trip temperatures can be changed from userspace. The
67 writable trips need to be specified when setting up the
68 thermal zone but the choice here takes precedence.
69
70 Say 'Y' here if you would like to allow userspace tools to
71 change trip temperatures.
72
73choice
74 prompt "Default Thermal governor"
75 default THERMAL_DEFAULT_GOV_STEP_WISE
76 help
77 This option sets which thermal governor shall be loaded at
78 startup. If in doubt, select 'step_wise'.
79
80config THERMAL_DEFAULT_GOV_BACKWARD_COMPATIBLE
81 bool "backward_compatible"
82 select THERMAL_BACKWARD_COMPATIBLE
83 help
84 Use the backward_compatible governor as default. This throttles the
85 devices when the temperature is over each trip point.
86 Backward-compatible governor resembles the behaviors of thermal
87 framework in Linux kernel 2.6. It sets cooler states whenever
88 temperature is updated no meter cooler state change or not.
89
90config THERMAL_DEFAULT_GOV_STEP_WISE
91 bool "step_wise"
92 select THERMAL_GOV_STEP_WISE
93 help
94 Use the step_wise governor as default. This throttles the
95 devices one step at a time.
96
97config THERMAL_DEFAULT_GOV_FAIR_SHARE
98 bool "fair_share"
99 select THERMAL_GOV_FAIR_SHARE
100 help
101 Use the fair_share governor as default. This throttles the
102 devices based on their 'contribution' to a zone. The
103 contribution should be provided through platform data.
104
105config THERMAL_DEFAULT_GOV_USER_SPACE
106 bool "user_space"
107 select THERMAL_GOV_USER_SPACE
108 help
109 Select this if you want to let the user space manage the
110 platform thermals.
111
112config THERMAL_DEFAULT_GOV_POWER_ALLOCATOR
113 bool "power_allocator"
114 select THERMAL_GOV_POWER_ALLOCATOR
115 help
116 Select this if you want to control temperature based on
117 system and device power allocation. This governor can only
118 operate on cooling devices that implement the power API.
119
120endchoice
121
122config THERMAL_BACKWARD_COMPATIBLE
123 bool "Backward-compatible thermal governor"
124 help
125 Enable this to manage platform thermals using backward-compatible governor.
126 Backward-compatible governor resembles the behaviors of thermal
127 framework in Linux kernel 2.6. It sets cooler states whenever
128 temperature is updated no meter cooler state change or not.
129
130config THERMAL_GOV_FAIR_SHARE
131 bool "Fair-share thermal governor"
132 help
133 Enable this to manage platform thermals using fair-share governor.
134
135config THERMAL_GOV_STEP_WISE
136 bool "Step_wise thermal governor"
137 help
138 Enable this to manage platform thermals using a simple linear
139 governor.
140
141config THERMAL_GOV_BANG_BANG
142 bool "Bang Bang thermal governor"
143 default n
144 help
145 Enable this to manage platform thermals using bang bang governor.
146
147 Say 'Y' here if you want to use two point temperature regulation
148 used for fans without throttling. Some fan drivers depend on this
149 governor to be enabled (e.g. acerhdf).
150
151config THERMAL_GOV_USER_SPACE
152 bool "User_space thermal governor"
153 help
154 Enable this to let the user space manage the platform thermals.
155
156config THERMAL_GOV_POWER_ALLOCATOR
157 bool "Power allocator thermal governor"
158 help
159 Enable this to manage platform thermals by dynamically
160 allocating and limiting power to devices.
161
162config CPU_THERMAL
163 bool "generic cpu cooling support"
164 depends on CPU_FREQ
165 depends on THERMAL_OF
166 help
167 This implements the generic cpu cooling mechanism through frequency
168 reduction. An ACPI version of this already exists
169 (drivers/acpi/processor_thermal.c).
170 This will be useful for platforms using the generic thermal interface
171 and not the ACPI interface.
172
173 If you want this support, you should say Y here.
174
175config CLOCK_THERMAL
176 bool "Generic clock cooling support"
177 depends on COMMON_CLK
178 depends on PM_OPP
179 help
180 This entry implements the generic clock cooling mechanism through
181 frequency clipping. Typically used to cool off co-processors. The
182 device that is configured to use this cooling mechanism will be
183 controlled to reduce clock frequency whenever temperature is high.
184
185config DEVFREQ_THERMAL
186 bool "Generic device cooling support"
187 depends on PM_DEVFREQ
188 depends on PM_OPP
189 help
190 This implements the generic devfreq cooling mechanism through
191 frequency reduction for devices using devfreq.
192
193 This will throttle the device by limiting the maximum allowed DVFS
194 frequency corresponding to the cooling level.
195
196 In order to use the power extensions of the cooling device,
197 devfreq should use the simple_ondemand governor.
198
199 If you want this support, you should say Y here.
200
201config THERMAL_EMULATION
202 bool "Thermal emulation mode support"
203 help
204 Enable this option to make a emul_temp sysfs node in thermal zone
205 directory to support temperature emulation. With emulation sysfs node,
206 user can manually input temperature and test the different trip
207 threshold behaviour for simulation purpose.
208
209 WARNING: Be careful while enabling this option on production systems,
210 because userland can easily disable the thermal policy by simply
211 flooding this sysfs node with low temperature values.
212
213config HISI_THERMAL
214 tristate "Hisilicon thermal driver"
215 depends on ARCH_HISI || COMPILE_TEST
216 depends on HAS_IOMEM
217 depends on OF
218 default y
219 help
220 Enable this to plug hisilicon's thermal sensor driver into the Linux
221 thermal framework. cpufreq is used as the cooling device to throttle
222 CPUs when the passive trip is crossed.
223
224config IMX_THERMAL
225 tristate "Temperature sensor driver for Freescale i.MX SoCs"
226 depends on (ARCH_MXC && CPU_THERMAL) || COMPILE_TEST
227 depends on MFD_SYSCON
228 depends on OF
229 help
230 Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
231 It supports one critical trip point and one passive trip point. The
232 cpufreq is used as the cooling device to throttle CPUs when the
233 passive trip is crossed.
234
235config MAX77620_THERMAL
236 tristate "Temperature sensor driver for Maxim MAX77620 PMIC"
237 depends on MFD_MAX77620
238 depends on OF
239 help
240 Support for die junction temperature warning alarm for Maxim
241 Semiconductor PMIC MAX77620 device. Device generates two alarm
242 interrupts when PMIC die temperature cross the threshold of
243 120 degC and 140 degC.
244
245config QORIQ_THERMAL
246 tristate "QorIQ Thermal Monitoring Unit"
247 depends on THERMAL_OF
248 depends on HAS_IOMEM
249 help
250 Support for Thermal Monitoring Unit (TMU) found on QorIQ platforms.
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
255config SPEAR_THERMAL
256 tristate "SPEAr thermal sensor driver"
257 depends on PLAT_SPEAR || COMPILE_TEST
258 depends on HAS_IOMEM
259 depends on OF
260 help
261 Enable this to plug the SPEAr thermal sensor driver into the Linux
262 thermal framework.
263
264config ROCKCHIP_THERMAL
265 tristate "Rockchip thermal driver"
266 depends on ARCH_ROCKCHIP || COMPILE_TEST
267 depends on RESET_CONTROLLER
268 depends on HAS_IOMEM
269 help
270 Rockchip thermal driver provides support for Temperature sensor
271 ADC (TS-ADC) found on Rockchip SoCs. It supports one critical
272 trip point. Cpufreq is used as the cooling device and will throttle
273 CPUs when the Temperature crosses the passive trip point.
274
275config RCAR_THERMAL
276 tristate "Renesas R-Car thermal driver"
277 depends on ARCH_RENESAS || COMPILE_TEST
278 depends on HAS_IOMEM
279 help
280 Enable this to plug the R-Car thermal sensor driver into the Linux
281 thermal framework.
282
283config RCAR_GEN3_THERMAL
284 tristate "Renesas R-Car Gen3 thermal driver"
285 depends on ARCH_RENESAS || COMPILE_TEST
286 depends on HAS_IOMEM
287 depends on OF
288 help
289 Enable this to plug the R-Car Gen3 thermal sensor driver into the Linux
290 thermal framework.
291
292config KIRKWOOD_THERMAL
293 tristate "Temperature sensor on Marvell Kirkwood SoCs"
294 depends on MACH_KIRKWOOD || COMPILE_TEST
295 depends on HAS_IOMEM
296 depends on OF
297 help
298 Support for the Kirkwood thermal sensor driver into the Linux thermal
299 framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
300
301config DOVE_THERMAL
302 tristate "Temperature sensor on Marvell Dove SoCs"
303 depends on ARCH_DOVE || MACH_DOVE || COMPILE_TEST
304 depends on HAS_IOMEM
305 depends on OF
306 help
307 Support for the Dove thermal sensor driver in the Linux thermal
308 framework.
309
310config DB8500_THERMAL
311 tristate "DB8500 thermal management"
312 depends on MFD_DB8500_PRCMU
313 default y
314 help
315 Adds DB8500 thermal management implementation according to the thermal
316 management framework. A thermal zone with several trip points will be
317 created. Cooling devices can be bound to the trip points to cool this
318 thermal zone if trip points reached.
319
320config ARMADA_THERMAL
321 tristate "Armada 370/XP thermal management"
322 depends on ARCH_MVEBU || COMPILE_TEST
323 depends on HAS_IOMEM
324 depends on OF
325 help
326 Enable this option if you want to have support for thermal management
327 controller present in Armada 370 and Armada XP SoC.
328
329config DA9062_THERMAL
330 tristate "DA9062/DA9061 Dialog Semiconductor thermal driver"
331 depends on MFD_DA9062 || COMPILE_TEST
332 depends on OF
333 help
334 Enable this for the Dialog Semiconductor thermal sensor driver.
335 This will report PMIC junction over-temperature for one thermal trip
336 zone.
337 Compatible with the DA9062 and DA9061 PMICs.
338
339config INTEL_POWERCLAMP
340 tristate "Intel PowerClamp idle injection driver"
341 depends on THERMAL
342 depends on X86
343 depends on CPU_SUP_INTEL
344 help
345 Enable this to enable Intel PowerClamp idle injection driver. This
346 enforce idle time which results in more package C-state residency. The
347 user interface is exposed via generic thermal framework.
348
349config X86_PKG_TEMP_THERMAL
350 tristate "X86 package temperature thermal driver"
351 depends on X86_THERMAL_VECTOR
352 select THERMAL_GOV_USER_SPACE
353 select THERMAL_WRITABLE_TRIPS
354 default m
355 help
356 Enable this to register CPU digital sensor for package temperature as
357 thermal zone. Each package will have its own thermal zone. There are
358 two trip points which can be set by user to get notifications via thermal
359 notification methods.
360
361config INTEL_SOC_DTS_IOSF_CORE
362 tristate
363 depends on X86 && PCI
364 select IOSF_MBI
365 help
366 This is becoming a common feature for Intel SoCs to expose the additional
367 digital temperature sensors (DTSs) using side band interface (IOSF). This
368 implements the common set of helper functions to register, get temperature
369 and get/set thresholds on DTSs.
370
371config INTEL_SOC_DTS_THERMAL
372 tristate "Intel SoCs DTS thermal driver"
373 depends on X86 && PCI
374 select INTEL_SOC_DTS_IOSF_CORE
375 select THERMAL_WRITABLE_TRIPS
376 help
377 Enable this to register Intel SoCs (e.g. Bay Trail) platform digital
378 temperature sensor (DTS). These SoCs have two additional DTSs in
379 addition to DTSs on CPU cores. Each DTS will be registered as a
380 thermal zone. There are two trip points. One of the trip point can
381 be set by user mode programs to get notifications via Linux thermal
382 notification methods.The other trip is a critical trip point, which
383 was set by the driver based on the TJ MAX temperature.
384
385config INTEL_QUARK_DTS_THERMAL
386 tristate "Intel Quark DTS thermal driver"
387 depends on X86_INTEL_QUARK
388 help
389 Enable this to register Intel Quark SoC (e.g. X1000) platform digital
390 temperature sensor (DTS). For X1000 SoC, it has one on-die DTS.
391 The DTS will be registered as a thermal zone. There are two trip points:
392 hot & critical. The critical trip point default value is set by
393 underlying BIOS/Firmware.
394
395menu "ACPI INT340X thermal drivers"
396source drivers/thermal/int340x_thermal/Kconfig
397endmenu
398
399config INTEL_BXT_PMIC_THERMAL
400 tristate "Intel Broxton PMIC thermal driver"
401 depends on X86 && INTEL_SOC_PMIC_BXTWC && REGMAP
402 help
403 Select this driver for Intel Broxton PMIC with ADC channels monitoring
404 system temperature measurements and alerts.
405 This driver is used for monitoring the ADC channels of PMIC and handles
406 the alert trip point interrupts and notifies the thermal framework with
407 the trip point and temperature details of the zone.
408
409config INTEL_PCH_THERMAL
410 tristate "Intel PCH Thermal Reporting Driver"
411 depends on X86 && PCI
412 help
413 Enable this to support thermal reporting on certain intel PCHs.
414 Thermal reporting device will provide temperature reading,
415 programmable trip points and other information.
416
417config MTK_THERMAL
418 tristate "Temperature sensor driver for mediatek SoCs"
419 depends on ARCH_MEDIATEK || COMPILE_TEST
420 depends on HAS_IOMEM
421 depends on NVMEM || NVMEM=n
422 depends on RESET_CONTROLLER
423 default y
424 help
425 Enable this option if you want to have support for thermal management
426 controller present in Mediatek SoCs
427
428menu "Broadcom thermal drivers"
429depends on ARCH_BCM || ARCH_BCM2835 || COMPILE_TEST
430source "drivers/thermal/broadcom/Kconfig"
431endmenu
432
433menu "Texas Instruments thermal drivers"
434depends on ARCH_HAS_BANDGAP || COMPILE_TEST
435depends on HAS_IOMEM
436source "drivers/thermal/ti-soc-thermal/Kconfig"
437endmenu
438
439menu "Samsung thermal drivers"
440depends on ARCH_EXYNOS || COMPILE_TEST
441source "drivers/thermal/samsung/Kconfig"
442endmenu
443
444menu "STMicroelectronics thermal drivers"
445depends on ARCH_STI && OF
446source "drivers/thermal/st/Kconfig"
447endmenu
448
449config TANGO_THERMAL
450 tristate "Tango thermal management"
451 depends on ARCH_TANGO || COMPILE_TEST
452 help
453 Enable the Tango thermal driver, which supports the primitive
454 temperature sensor embedded in Tango chips since the SMP8758.
455 This sensor only generates a 1-bit signal to indicate whether
456 the die temperature exceeds a programmable threshold.
457
458source "drivers/thermal/tegra/Kconfig"
459
460config QCOM_SPMI_TEMP_ALARM
461 tristate "Qualcomm SPMI PMIC Temperature Alarm"
462 depends on OF && SPMI && IIO
463 select REGMAP_SPMI
464 help
465 This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP)
466 PMIC devices. It shows up in sysfs as a thermal sensor with multiple
467 trip points. The temperature reported by the thermal sensor reflects the
468 real time die temperature if an ADC is present or an estimate of the
469 temperature based upon the over temperature stage value.
470
471config GENERIC_ADC_THERMAL
472 tristate "Generic ADC based thermal sensor"
473 depends on IIO
474 help
475 This enabled a thermal sysfs driver for the temperature sensor
476 which is connected to the General Purpose ADC. The ADC channel
477 is read via IIO framework and the channel information is provided
478 to this driver. This driver reports the temperature by reading ADC
479 channel and converts it to temperature based on lookup table.
480
481menu "Qualcomm thermal drivers"
482depends on (ARCH_QCOM && OF) || COMPILE_TEST
483source "drivers/thermal/qcom/Kconfig"
484endmenu
485
486config ZX2967_THERMAL
487 tristate "Thermal sensors on zx2967 SoC"
488 depends on ARCH_ZX || COMPILE_TEST
489 help
490 Enable the zx2967 thermal sensors driver, which supports
491 the primitive temperature sensor embedded in zx2967 SoCs.
492 This sensor generates the real time die temperature.
493
494config UNIPHIER_THERMAL
495 tristate "Socionext UniPhier thermal driver"
496 depends on ARCH_UNIPHIER || COMPILE_TEST
497 depends on THERMAL_OF && MFD_SYSCON
498 help
499 Enable this to plug in UniPhier on-chip PVT thermal driver into the
500 thermal framework. The driver supports CPU thermal zone temperature
501 reporting and a couple of trip points.
502endif