hc
2024-05-10 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb
kernel/drivers/thermal/Kconfig
....@@ -1,19 +1,30 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 #
2
-# Generic thermal sysfs drivers configuration
3
+# Generic thermal drivers configuration
34 #
45
56 menuconfig THERMAL
6
- tristate "Generic Thermal sysfs driver"
7
+ bool "Thermal drivers"
78 help
8
- Generic Thermal Sysfs driver offers a generic mechanism for
9
+ Thermal drivers offer a generic mechanism for
910 thermal management. Usually it's made up of one or more thermal
10
- zone and cooling device.
11
+ zones and cooling devices.
1112 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.
13
+ and cooling devices.
14
+ All platforms with ACPI or Open Firmware thermal support can use
15
+ this driver.
16
+ If you want this support, you should say Y here.
1517
1618 if THERMAL
19
+
20
+config THERMAL_NETLINK
21
+ bool "Thermal netlink management"
22
+ depends on NET
23
+ help
24
+ The thermal framework has a netlink interface to do thermal
25
+ zones discovery, temperature readings and events such as
26
+ trip point crossed, cooling device update or governor
27
+ change. It is recommended to enable the feature.
1728
1829 config THERMAL_STATISTICS
1930 bool "Thermal state transition statistics"
....@@ -24,7 +35,6 @@
2435
2536 config THERMAL_EMERGENCY_POWEROFF_DELAY_MS
2637 int "Emergency poweroff delay in milli-seconds"
27
- depends on THERMAL
2838 default 0
2939 help
3040 Thermal subsystem will issue a graceful shutdown when
....@@ -108,7 +118,7 @@
108118
109119 config THERMAL_DEFAULT_GOV_POWER_ALLOCATOR
110120 bool "power_allocator"
111
- select THERMAL_GOV_POWER_ALLOCATOR
121
+ depends on THERMAL_GOV_POWER_ALLOCATOR
112122 help
113123 Select this if you want to control temperature based on
114124 system and device power allocation. This governor can only
....@@ -144,14 +154,25 @@
144154
145155 config THERMAL_GOV_POWER_ALLOCATOR
146156 bool "Power allocator thermal governor"
157
+ depends on ENERGY_MODEL
147158 help
148159 Enable this to manage platform thermals by dynamically
149160 allocating and limiting power to devices.
150161
151162 config CPU_THERMAL
152
- bool "generic cpu cooling support"
153
- depends on CPU_FREQ
163
+ bool "Generic cpu cooling support"
154164 depends on THERMAL_OF
165
+ help
166
+ Enable the CPU cooling features. If the system has no active
167
+ cooling device available, this option allows to use the CPU
168
+ as a cooling device.
169
+
170
+if CPU_THERMAL
171
+
172
+config CPU_FREQ_THERMAL
173
+ bool "CPU frequency cooling device"
174
+ depends on CPU_FREQ
175
+ default y
155176 help
156177 This implements the generic cpu cooling mechanism through frequency
157178 reduction. An ACPI version of this already exists
....@@ -159,17 +180,14 @@
159180 This will be useful for platforms using the generic thermal interface
160181 and not the ACPI interface.
161182
162
- If you want this support, you should say Y here.
163
-
164
-config CLOCK_THERMAL
165
- bool "Generic clock cooling support"
166
- depends on COMMON_CLK
167
- depends on PM_OPP
183
+config CPU_IDLE_THERMAL
184
+ bool "CPU idle cooling device"
185
+ depends on IDLE_INJECT
168186 help
169
- This entry implements the generic clock cooling mechanism through
170
- frequency clipping. Typically used to cool off co-processors. The
171
- device that is configured to use this cooling mechanism will be
172
- controlled to reduce clock frequency whenever temperature is high.
187
+ This implements the CPU cooling mechanism through
188
+ idle injection. This will throttle the CPU by injecting
189
+ idle cycle.
190
+endif
173191
174192 config DEVFREQ_THERMAL
175193 bool "Generic device cooling support"
....@@ -199,6 +217,17 @@
199217 because userland can easily disable the thermal policy by simply
200218 flooding this sysfs node with low temperature values.
201219
220
+config THERMAL_MMIO
221
+ tristate "Generic Thermal MMIO driver"
222
+ depends on OF || COMPILE_TEST
223
+ depends on HAS_IOMEM
224
+ help
225
+ This option enables the generic thermal MMIO driver that will use
226
+ memory-mapped reads to get the temperature. Any HW/System that
227
+ allows temperature reading by a single memory-mapped reading, be it
228
+ register or shared memory, is a potential candidate to work with this
229
+ driver.
230
+
202231 config HISI_THERMAL
203232 tristate "Hisilicon thermal driver"
204233 depends on ARCH_HISI || COMPILE_TEST
....@@ -212,7 +241,7 @@
212241
213242 config IMX_THERMAL
214243 tristate "Temperature sensor driver for Freescale i.MX SoCs"
215
- depends on (ARCH_MXC && CPU_THERMAL) || COMPILE_TEST
244
+ depends on ARCH_MXC || COMPILE_TEST
216245 depends on NVMEM || !NVMEM
217246 depends on MFD_SYSCON
218247 depends on OF
....@@ -221,6 +250,37 @@
221250 It supports one critical trip point and one passive trip point. The
222251 cpufreq is used as the cooling device to throttle CPUs when the
223252 passive trip is crossed.
253
+
254
+config IMX_SC_THERMAL
255
+ tristate "Temperature sensor driver for NXP i.MX SoCs with System Controller"
256
+ depends on IMX_SCU
257
+ depends on OF
258
+ help
259
+ Support for Temperature Monitor (TEMPMON) found on NXP i.MX SoCs with
260
+ system controller inside, Linux kernel has to communicate with system
261
+ controller via MU (message unit) IPC to get temperature from thermal
262
+ sensor. It supports one critical trip point and one
263
+ passive trip point for each thermal sensor.
264
+
265
+config IMX8MM_THERMAL
266
+ tristate "Temperature sensor driver for Freescale i.MX8MM SoC"
267
+ depends on ARCH_MXC || COMPILE_TEST
268
+ depends on OF
269
+ help
270
+ Support for Thermal Monitoring Unit (TMU) found on Freescale i.MX8MM SoC.
271
+ It supports one critical trip point and one passive trip point. The
272
+ cpufreq is used as the cooling device to throttle CPUs when the passive
273
+ trip is crossed.
274
+
275
+config K3_THERMAL
276
+ tristate "Texas Instruments K3 thermal support"
277
+ depends on ARCH_K3 || COMPILE_TEST
278
+ help
279
+ If you say yes here you get thermal support for the Texas Instruments
280
+ K3 SoC family. The current chip supported is:
281
+ - AM654
282
+
283
+ This includes temperature reading functionality.
224284
225285 config MAX77620_THERMAL
226286 tristate "Temperature sensor driver for Maxim MAX77620 PMIC"
....@@ -234,8 +294,9 @@
234294
235295 config QORIQ_THERMAL
236296 tristate "QorIQ Thermal Monitoring Unit"
237
- depends on THERMAL_OF
238
- depends on HAS_IOMEM
297
+ depends on THERMAL_OF && HAS_IOMEM
298
+ depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || (ARCH_MXC && ARM64) || COMPILE_TEST
299
+ select REGMAP_MMIO
239300 help
240301 Support for Thermal Monitoring Unit (TMU) found on QorIQ platforms.
241302 It supports one critical trip point and one passive trip point. The
....@@ -250,6 +311,20 @@
250311 help
251312 Enable this to plug the SPEAr thermal sensor driver into the Linux
252313 thermal framework.
314
+
315
+config SUN8I_THERMAL
316
+ tristate "Allwinner sun8i thermal driver"
317
+ depends on ARCH_SUNXI || COMPILE_TEST
318
+ depends on HAS_IOMEM
319
+ depends on NVMEM
320
+ depends on OF
321
+ depends on RESET_CONTROLLER
322
+ help
323
+ Support for the sun8i thermal sensor driver into the Linux thermal
324
+ framework.
325
+
326
+ To compile this driver as a module, choose M here: the
327
+ module will be called sun8i-thermal.
253328
254329 config ROCKCHIP_THERMAL
255330 tristate "Rockchip thermal driver"
....@@ -272,15 +347,6 @@
272347 Cpufreq is used as the cooling device and will throttle CPUs when
273348 the Temperature crosses the passive trip point.
274349
275
-config RK3368_THERMAL
276
- tristate "rk3368 thermal driver legacy"
277
- depends on ROCKCHIP_THERMAL
278
- help
279
- Rk3368 thermal legacy driver provides support for Temperature sensor
280
- ADC (TS-ADC) for rk3368 soc only. It supports one critical
281
- trip point. Cpufreq is used as the cooling device and will throttle
282
- CPUs when the Temperature crosses the passive trip point.
283
-
284350 config RCAR_THERMAL
285351 tristate "Renesas R-Car thermal driver"
286352 depends on ARCH_RENESAS || COMPILE_TEST
....@@ -290,13 +356,13 @@
290356 thermal framework.
291357
292358 config RCAR_GEN3_THERMAL
293
- tristate "Renesas R-Car Gen3 thermal driver"
359
+ tristate "Renesas R-Car Gen3 and RZ/G2 thermal driver"
294360 depends on ARCH_RENESAS || COMPILE_TEST
295361 depends on HAS_IOMEM
296362 depends on OF
297363 help
298
- Enable this to plug the R-Car Gen3 thermal sensor driver into the Linux
299
- thermal framework.
364
+ Enable this to plug the R-Car Gen3 or RZ/G2 thermal sensor driver into
365
+ the Linux thermal framework.
300366
301367 config KIRKWOOD_THERMAL
302368 tristate "Temperature sensor on Marvell Kirkwood SoCs"
....@@ -318,7 +384,7 @@
318384
319385 config DB8500_THERMAL
320386 tristate "DB8500 thermal management"
321
- depends on MFD_DB8500_PRCMU
387
+ depends on MFD_DB8500_PRCMU && OF
322388 default y
323389 help
324390 Adds DB8500 thermal management implementation according to the thermal
....@@ -345,84 +411,6 @@
345411 zone.
346412 Compatible with the DA9062 and DA9061 PMICs.
347413
348
-config INTEL_POWERCLAMP
349
- tristate "Intel PowerClamp idle injection driver"
350
- depends on THERMAL
351
- depends on X86
352
- depends on CPU_SUP_INTEL
353
- help
354
- Enable this to enable Intel PowerClamp idle injection driver. This
355
- enforce idle time which results in more package C-state residency. The
356
- user interface is exposed via generic thermal framework.
357
-
358
-config X86_PKG_TEMP_THERMAL
359
- tristate "X86 package temperature thermal driver"
360
- depends on X86_THERMAL_VECTOR
361
- select THERMAL_GOV_USER_SPACE
362
- select THERMAL_WRITABLE_TRIPS
363
- default m
364
- help
365
- Enable this to register CPU digital sensor for package temperature as
366
- thermal zone. Each package will have its own thermal zone. There are
367
- two trip points which can be set by user to get notifications via thermal
368
- notification methods.
369
-
370
-config INTEL_SOC_DTS_IOSF_CORE
371
- tristate
372
- depends on X86 && PCI
373
- select IOSF_MBI
374
- help
375
- This is becoming a common feature for Intel SoCs to expose the additional
376
- digital temperature sensors (DTSs) using side band interface (IOSF). This
377
- implements the common set of helper functions to register, get temperature
378
- and get/set thresholds on DTSs.
379
-
380
-config INTEL_SOC_DTS_THERMAL
381
- tristate "Intel SoCs DTS thermal driver"
382
- depends on X86 && PCI && ACPI
383
- select INTEL_SOC_DTS_IOSF_CORE
384
- select THERMAL_WRITABLE_TRIPS
385
- help
386
- Enable this to register Intel SoCs (e.g. Bay Trail) platform digital
387
- temperature sensor (DTS). These SoCs have two additional DTSs in
388
- addition to DTSs on CPU cores. Each DTS will be registered as a
389
- thermal zone. There are two trip points. One of the trip point can
390
- be set by user mode programs to get notifications via Linux thermal
391
- notification methods.The other trip is a critical trip point, which
392
- was set by the driver based on the TJ MAX temperature.
393
-
394
-config INTEL_QUARK_DTS_THERMAL
395
- tristate "Intel Quark DTS thermal driver"
396
- depends on X86_INTEL_QUARK
397
- help
398
- Enable this to register Intel Quark SoC (e.g. X1000) platform digital
399
- temperature sensor (DTS). For X1000 SoC, it has one on-die DTS.
400
- The DTS will be registered as a thermal zone. There are two trip points:
401
- hot & critical. The critical trip point default value is set by
402
- underlying BIOS/Firmware.
403
-
404
-menu "ACPI INT340X thermal drivers"
405
-source drivers/thermal/int340x_thermal/Kconfig
406
-endmenu
407
-
408
-config INTEL_BXT_PMIC_THERMAL
409
- tristate "Intel Broxton PMIC thermal driver"
410
- depends on X86 && INTEL_SOC_PMIC_BXTWC && REGMAP
411
- help
412
- Select this driver for Intel Broxton PMIC with ADC channels monitoring
413
- system temperature measurements and alerts.
414
- This driver is used for monitoring the ADC channels of PMIC and handles
415
- the alert trip point interrupts and notifies the thermal framework with
416
- the trip point and temperature details of the zone.
417
-
418
-config INTEL_PCH_THERMAL
419
- tristate "Intel PCH Thermal Reporting Driver"
420
- depends on X86 && PCI
421
- help
422
- Enable this to support thermal reporting on certain intel PCHs.
423
- Thermal reporting device will provide temperature reading,
424
- programmable trip points and other information.
425
-
426414 config MTK_THERMAL
427415 tristate "Temperature sensor driver for mediatek SoCs"
428416 depends on ARCH_MEDIATEK || COMPILE_TEST
....@@ -434,8 +422,25 @@
434422 Enable this option if you want to have support for thermal management
435423 controller present in Mediatek SoCs
436424
425
+config AMLOGIC_THERMAL
426
+ tristate "Amlogic Thermal Support"
427
+ default ARCH_MESON
428
+ depends on OF && ARCH_MESON
429
+ help
430
+ If you say yes here you get support for Amlogic Thermal
431
+ for G12 SoC Family.
432
+
433
+ This driver can also be built as a module. If so, the module will
434
+ be called amlogic_thermal.
435
+
436
+menu "Intel thermal drivers"
437
+depends on X86 || X86_INTEL_QUARK || COMPILE_TEST
438
+source "drivers/thermal/intel/Kconfig"
439
+endmenu
440
+
437441 menu "Broadcom thermal drivers"
438
-depends on ARCH_BCM || ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST
442
+depends on ARCH_BCM || ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM_IPROC || \
443
+ COMPILE_TEST
439444 source "drivers/thermal/broadcom/Kconfig"
440445 endmenu
441446
....@@ -451,7 +456,7 @@
451456 endmenu
452457
453458 menu "STMicroelectronics thermal drivers"
454
-depends on ARCH_STI && OF
459
+depends on (ARCH_STI || ARCH_STM32) && OF
455460 source "drivers/thermal/st/Kconfig"
456461 endmenu
457462
....@@ -465,17 +470,6 @@
465470 the die temperature exceeds a programmable threshold.
466471
467472 source "drivers/thermal/tegra/Kconfig"
468
-
469
-config QCOM_SPMI_TEMP_ALARM
470
- tristate "Qualcomm SPMI PMIC Temperature Alarm"
471
- depends on OF && SPMI && IIO
472
- select REGMAP_SPMI
473
- help
474
- This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP)
475
- PMIC devices. It shows up in sysfs as a thermal sensor with multiple
476
- trip points. The temperature reported by the thermal sensor reflects the
477
- real time die temperature if an ADC is present or an estimate of the
478
- temperature based upon the over temperature stage value.
479473
480474 config GENERIC_ADC_THERMAL
481475 tristate "Generic ADC based thermal sensor"
....@@ -508,4 +502,22 @@
508502 Enable this to plug in UniPhier on-chip PVT thermal driver into the
509503 thermal framework. The driver supports CPU thermal zone temperature
510504 reporting and a couple of trip points.
505
+
506
+config SPRD_THERMAL
507
+ tristate "Temperature sensor on Spreadtrum SoCs"
508
+ depends on ARCH_SPRD || COMPILE_TEST
509
+ help
510
+ Support for the Spreadtrum thermal sensor driver in the Linux thermal
511
+ framework.
512
+
513
+config KHADAS_MCU_FAN_THERMAL
514
+ tristate "Khadas MCU controller FAN cooling support"
515
+ depends on OF || COMPILE_TEST
516
+ depends on MFD_KHADAS_MCU
517
+ select MFD_CORE
518
+ select REGMAP
519
+ help
520
+ If you say yes here you get support for the FAN controlled
521
+ by the Microcontroller found on the Khadas VIM boards.
522
+
511523 endif