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