xref: /linux/drivers/thermal/Kconfig (revision 6b775e870c56c59c3e16531ea2307b797395f9f7)
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
45a56757afSDurgadoss Rchoice
46a56757afSDurgadoss R	prompt "Default Thermal governor"
47a56757afSDurgadoss R	default THERMAL_DEFAULT_GOV_STEP_WISE
48a56757afSDurgadoss R	help
49a56757afSDurgadoss R	  This option sets which thermal governor shall be loaded at
50a56757afSDurgadoss R	  startup. If in doubt, select 'step_wise'.
51a56757afSDurgadoss R
52a56757afSDurgadoss Rconfig THERMAL_DEFAULT_GOV_STEP_WISE
53a56757afSDurgadoss R	bool "step_wise"
549d185d04SZhang Rui	select THERMAL_GOV_STEP_WISE
55a56757afSDurgadoss R	help
56a56757afSDurgadoss R	  Use the step_wise governor as default. This throttles the
57a56757afSDurgadoss R	  devices one step at a time.
58a56757afSDurgadoss R
59a56757afSDurgadoss Rconfig THERMAL_DEFAULT_GOV_FAIR_SHARE
60a56757afSDurgadoss R	bool "fair_share"
619d185d04SZhang Rui	select THERMAL_GOV_FAIR_SHARE
62a56757afSDurgadoss R	help
63a56757afSDurgadoss R	  Use the fair_share governor as default. This throttles the
64a56757afSDurgadoss R	  devices based on their 'contribution' to a zone. The
65a56757afSDurgadoss R	  contribution should be provided through platform data.
66a56757afSDurgadoss R
67a56757afSDurgadoss Rconfig THERMAL_DEFAULT_GOV_USER_SPACE
68a56757afSDurgadoss R	bool "user_space"
699d185d04SZhang Rui	select THERMAL_GOV_USER_SPACE
70a56757afSDurgadoss R	help
71a56757afSDurgadoss R	  Select this if you want to let the user space manage the
72ece238feSRegid Ichira	  platform thermals.
7372e19897SZhang Rui
74*6b775e87SJavi Merinoconfig THERMAL_DEFAULT_GOV_POWER_ALLOCATOR
75*6b775e87SJavi Merino	bool "power_allocator"
76*6b775e87SJavi Merino	select THERMAL_GOV_POWER_ALLOCATOR
77*6b775e87SJavi Merino	help
78*6b775e87SJavi Merino	  Select this if you want to control temperature based on
79*6b775e87SJavi Merino	  system and device power allocation. This governor can only
80*6b775e87SJavi Merino	  operate on cooling devices that implement the power API.
81*6b775e87SJavi Merino
82a56757afSDurgadoss Rendchoice
8372e19897SZhang Rui
849d185d04SZhang Ruiconfig THERMAL_GOV_FAIR_SHARE
8572e19897SZhang Rui	bool "Fair-share thermal governor"
8672e19897SZhang Rui	help
8772e19897SZhang Rui	  Enable this to manage platform thermals using fair-share governor.
8872e19897SZhang Rui
899d185d04SZhang Ruiconfig THERMAL_GOV_STEP_WISE
9072e19897SZhang Rui	bool "Step_wise thermal governor"
9172e19897SZhang Rui	help
9272e19897SZhang Rui	  Enable this to manage platform thermals using a simple linear
93a8227948SLuka Perkov	  governor.
9472e19897SZhang Rui
95e4dbf98fSPeter Feuererconfig THERMAL_GOV_BANG_BANG
96e4dbf98fSPeter Feuerer	bool "Bang Bang thermal governor"
97e4dbf98fSPeter Feuerer	default n
98e4dbf98fSPeter Feuerer	help
99e4dbf98fSPeter Feuerer	  Enable this to manage platform thermals using bang bang governor.
100e4dbf98fSPeter Feuerer
101e4dbf98fSPeter Feuerer	  Say 'Y' here if you want to use two point temperature regulation
102e4dbf98fSPeter Feuerer	  used for fans without throttling.  Some fan drivers depend on this
103e4dbf98fSPeter Feuerer	  governor to be enabled (e.g. acerhdf).
104e4dbf98fSPeter Feuerer
1059d185d04SZhang Ruiconfig THERMAL_GOV_USER_SPACE
10672e19897SZhang Rui	bool "User_space thermal governor"
10772e19897SZhang Rui	help
10872e19897SZhang Rui	  Enable this to let the user space manage the platform thermals.
10972e19897SZhang Rui
110*6b775e87SJavi Merinoconfig THERMAL_GOV_POWER_ALLOCATOR
111*6b775e87SJavi Merino	bool "Power allocator thermal governor"
112*6b775e87SJavi Merino	select THERMAL_POWER_ACTOR
113*6b775e87SJavi Merino	help
114*6b775e87SJavi Merino	  Enable this to manage platform thermals by dynamically
115*6b775e87SJavi Merino	  allocating and limiting power to devices.
116*6b775e87SJavi Merino
11772e19897SZhang Ruiconfig CPU_THERMAL
118bbf7fc88SZhang Rui	bool "generic cpu cooling support"
11972e19897SZhang Rui	depends on CPU_FREQ
12039d99cffSEduardo Valentin	depends on THERMAL_OF
12172e19897SZhang Rui	help
12272e19897SZhang Rui	  This implements the generic cpu cooling mechanism through frequency
123f7188b3dSEduardo Valentin	  reduction. An ACPI version of this already exists
124f7188b3dSEduardo Valentin	  (drivers/acpi/processor_thermal.c).
12572e19897SZhang Rui	  This will be useful for platforms using the generic thermal interface
12672e19897SZhang Rui	  and not the ACPI interface.
127f7188b3dSEduardo Valentin
12872e19897SZhang Rui	  If you want this support, you should say Y here.
12972e19897SZhang Rui
130f9df89d8SEduardo Valentinconfig CLOCK_THERMAL
131f9df89d8SEduardo Valentin	bool "Generic clock cooling support"
132f9df89d8SEduardo Valentin	depends on COMMON_CLK
133f9df89d8SEduardo Valentin	depends on PM_OPP
134f9df89d8SEduardo Valentin	help
135f9df89d8SEduardo Valentin	  This entry implements the generic clock cooling mechanism through
136f9df89d8SEduardo Valentin	  frequency clipping. Typically used to cool off co-processors. The
137f9df89d8SEduardo Valentin	  device that is configured to use this cooling mechanism will be
138f9df89d8SEduardo Valentin	  controlled to reduce clock frequency whenever temperature is high.
139f9df89d8SEduardo Valentin
140f9df89d8SEduardo Valentin	  If you want this support, you should say Y here.
141f9df89d8SEduardo Valentin
142e6e238c3SAmit Daniel Kachhapconfig THERMAL_EMULATION
143e6e238c3SAmit Daniel Kachhap	bool "Thermal emulation mode support"
144e6e238c3SAmit Daniel Kachhap	help
145e6e238c3SAmit Daniel Kachhap	  Enable this option to make a emul_temp sysfs node in thermal zone
146e6e238c3SAmit Daniel Kachhap	  directory to support temperature emulation. With emulation sysfs node,
147e6e238c3SAmit Daniel Kachhap	  user can manually input temperature and test the different trip
148e6e238c3SAmit Daniel Kachhap	  threshold behaviour for simulation purpose.
149e6e238c3SAmit Daniel Kachhap
1508837295aSEduardo Valentin	  WARNING: Be careful while enabling this option on production systems,
1518837295aSEduardo Valentin	  because userland can easily disable the thermal policy by simply
1528837295aSEduardo Valentin	  flooding this sysfs node with low temperature values.
1538837295aSEduardo Valentin
154ca3de46bSShawn Guoconfig IMX_THERMAL
155ca3de46bSShawn Guo	tristate "Temperature sensor driver for Freescale i.MX SoCs"
156ca3de46bSShawn Guo	depends on CPU_THERMAL
157ca3de46bSShawn Guo	depends on MFD_SYSCON
158ca3de46bSShawn Guo	depends on OF
159ca3de46bSShawn Guo	help
160ca3de46bSShawn Guo	  Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
161ca3de46bSShawn Guo	  It supports one critical trip point and one passive trip point.  The
162ca3de46bSShawn Guo	  cpufreq is used as the cooling device to throttle CPUs when the
163ca3de46bSShawn Guo	  passive trip is crossed.
164ca3de46bSShawn Guo
16572e19897SZhang Ruiconfig SPEAR_THERMAL
16672e19897SZhang Rui	bool "SPEAr thermal sensor driver"
16772e19897SZhang Rui	depends on PLAT_SPEAR
16872e19897SZhang Rui	depends on OF
16972e19897SZhang Rui	help
17072e19897SZhang Rui	  Enable this to plug the SPEAr thermal sensor driver into the Linux
171a8227948SLuka Perkov	  thermal framework.
17272e19897SZhang Rui
173cbac8f63SCaesar Wangconfig ROCKCHIP_THERMAL
174cbac8f63SCaesar Wang	tristate "Rockchip thermal driver"
175cbac8f63SCaesar Wang	depends on ARCH_ROCKCHIP
176cbac8f63SCaesar Wang	depends on RESET_CONTROLLER
177cbac8f63SCaesar Wang	help
178cbac8f63SCaesar Wang	  Rockchip thermal driver provides support for Temperature sensor
179cbac8f63SCaesar Wang	  ADC (TS-ADC) found on Rockchip SoCs. It supports one critical
180cbac8f63SCaesar Wang	  trip point. Cpufreq is used as the cooling device and will throttle
181cbac8f63SCaesar Wang	  CPUs when the Temperature crosses the passive trip point.
182cbac8f63SCaesar Wang
18372e19897SZhang Ruiconfig RCAR_THERMAL
18472e19897SZhang Rui	tristate "Renesas R-Car thermal driver"
185beeb5a1eSLaurent Pinchart	depends on ARCH_SHMOBILE || COMPILE_TEST
186d1c8b041SRichard Weinberger	depends on HAS_IOMEM
18772e19897SZhang Rui	help
18872e19897SZhang Rui	  Enable this to plug the R-Car thermal sensor driver into the Linux
189a8227948SLuka Perkov	  thermal framework.
19072e19897SZhang Rui
1917060aa36SNobuhiro Iwamatsuconfig KIRKWOOD_THERMAL
1927060aa36SNobuhiro Iwamatsu	tristate "Temperature sensor on Marvell Kirkwood SoCs"
193575be653SAndrew Lunn	depends on MACH_KIRKWOOD
1947060aa36SNobuhiro Iwamatsu	depends on OF
1957060aa36SNobuhiro Iwamatsu	help
1967060aa36SNobuhiro Iwamatsu	  Support for the Kirkwood thermal sensor driver into the Linux thermal
1977060aa36SNobuhiro Iwamatsu	  framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
1987060aa36SNobuhiro Iwamatsu
19974ffa64cSAndrew Lunnconfig DOVE_THERMAL
20074ffa64cSAndrew Lunn	tristate "Temperature sensor on Marvell Dove SoCs"
201b3dee390SRiku Voipio	depends on ARCH_DOVE || MACH_DOVE
20274ffa64cSAndrew Lunn	depends on OF
20374ffa64cSAndrew Lunn	help
20474ffa64cSAndrew Lunn	  Support for the Dove thermal sensor driver in the Linux thermal
20574ffa64cSAndrew Lunn	  framework.
20674ffa64cSAndrew Lunn
207aa1acb04Shongbo.zhangconfig DB8500_THERMAL
208aa1acb04Shongbo.zhang	bool "DB8500 thermal management"
209aa1acb04Shongbo.zhang	depends on ARCH_U8500
210aa1acb04Shongbo.zhang	default y
211aa1acb04Shongbo.zhang	help
212aa1acb04Shongbo.zhang	  Adds DB8500 thermal management implementation according to the thermal
213aa1acb04Shongbo.zhang	  management framework. A thermal zone with several trip points will be
214aa1acb04Shongbo.zhang	  created. Cooling devices can be bound to the trip points to cool this
215aa1acb04Shongbo.zhang	  thermal zone if trip points reached.
216aa1acb04Shongbo.zhang
217fa0d654cSEzequiel Garciaconfig ARMADA_THERMAL
218fa0d654cSEzequiel Garcia	tristate "Armada 370/XP thermal management"
219fa0d654cSEzequiel Garcia	depends on ARCH_MVEBU
220fa0d654cSEzequiel Garcia	depends on OF
221fa0d654cSEzequiel Garcia	help
222fa0d654cSEzequiel Garcia	  Enable this option if you want to have support for thermal management
223fa0d654cSEzequiel Garcia	  controller present in Armada 370 and Armada XP SoC.
224fa0d654cSEzequiel Garcia
22566fb8480SMikko Perttunenconfig TEGRA_SOCTHERM
22666fb8480SMikko Perttunen	tristate "Tegra SOCTHERM thermal management"
22766fb8480SMikko Perttunen	depends on ARCH_TEGRA
22866fb8480SMikko Perttunen	help
22966fb8480SMikko Perttunen	  Enable this option for integrated thermal management support on NVIDIA
23066fb8480SMikko Perttunen	  Tegra124 systems-on-chip. The driver supports four thermal zones
23166fb8480SMikko Perttunen	  (CPU, GPU, MEM, PLLX). Cooling devices can be bound to the thermal
23266fb8480SMikko Perttunen	  zones to manage temperatures. This option is also required for the
23366fb8480SMikko Perttunen	  emergency thermal reset (thermtrip) feature to function.
23466fb8480SMikko Perttunen
235aa1acb04Shongbo.zhangconfig DB8500_CPUFREQ_COOLING
236aa1acb04Shongbo.zhang	tristate "DB8500 cpufreq cooling"
237aa1acb04Shongbo.zhang	depends on ARCH_U8500
238aa1acb04Shongbo.zhang	depends on CPU_THERMAL
239aa1acb04Shongbo.zhang	default y
240aa1acb04Shongbo.zhang	help
241aa1acb04Shongbo.zhang	  Adds DB8500 cpufreq cooling devices, and these cooling devices can be
242aa1acb04Shongbo.zhang	  bound to thermal zone trip points. When a trip point reached, the
243aa1acb04Shongbo.zhang	  bound cpufreq cooling device turns active to set CPU frequency low to
244aa1acb04Shongbo.zhang	  cool down the CPU.
24572e19897SZhang Rui
246d6d71ee4SJacob Panconfig INTEL_POWERCLAMP
247d6d71ee4SJacob Pan	tristate "Intel PowerClamp idle injection driver"
248d6d71ee4SJacob Pan	depends on THERMAL
249d6d71ee4SJacob Pan	depends on X86
250d6d71ee4SJacob Pan	depends on CPU_SUP_INTEL
251d6d71ee4SJacob Pan	help
252d6d71ee4SJacob Pan	  Enable this to enable Intel PowerClamp idle injection driver. This
253d6d71ee4SJacob Pan	  enforce idle time which results in more package C-state residency. The
254d6d71ee4SJacob Pan	  user interface is exposed via generic thermal framework.
255d6d71ee4SJacob Pan
256f1a18a10SSrinivas Pandruvadaconfig X86_PKG_TEMP_THERMAL
257f1a18a10SSrinivas Pandruvada	tristate "X86 package temperature thermal driver"
258b3ba0206SRandy Dunlap	depends on X86_THERMAL_VECTOR
259f1a18a10SSrinivas Pandruvada	select THERMAL_GOV_USER_SPACE
260f1a18a10SSrinivas Pandruvada	default m
261f1a18a10SSrinivas Pandruvada	help
262f1a18a10SSrinivas Pandruvada	  Enable this to register CPU digital sensor for package temperature as
263f1a18a10SSrinivas Pandruvada	  thermal zone. Each package will have its own thermal zone. There are
264f1a18a10SSrinivas Pandruvada	  two trip points which can be set by user to get notifications via thermal
265f1a18a10SSrinivas Pandruvada	  notification methods.
266f1a18a10SSrinivas Pandruvada
267bc40b5e3SSrinivas Pandruvadaconfig INTEL_SOC_DTS_THERMAL
268bc40b5e3SSrinivas Pandruvada	tristate "Intel SoCs DTS thermal driver"
269bc40b5e3SSrinivas Pandruvada	depends on X86 && IOSF_MBI
270bc40b5e3SSrinivas Pandruvada	help
271bc40b5e3SSrinivas Pandruvada	  Enable this to register Intel SoCs (e.g. Bay Trail) platform digital
272bc40b5e3SSrinivas Pandruvada	  temperature sensor (DTS). These SoCs have two additional DTSs in
273bc40b5e3SSrinivas Pandruvada	  addition to DTSs on CPU cores. Each DTS will be registered as a
274bc40b5e3SSrinivas Pandruvada	  thermal zone. There are two trip points. One of the trip point can
275bc40b5e3SSrinivas Pandruvada	  be set by user mode programs to get notifications via Linux thermal
276bc40b5e3SSrinivas Pandruvada	  notification methods.The other trip is a critical trip point, which
277bc40b5e3SSrinivas Pandruvada	  was set by the driver based on the TJ MAX temperature.
278bc40b5e3SSrinivas Pandruvada
2793230bbfcSZhang Ruiconfig INT340X_THERMAL
280816cab93SZhang Rui	tristate "ACPI INT340X thermal drivers"
2813230bbfcSZhang Rui	depends on X86 && ACPI
2820ab15365SZhang Rui	select THERMAL_GOV_USER_SPACE
28352b1c69dSJacob Pan	select ACPI_THERMAL_REL
284d8054749SZhang Rui	select ACPI_FAN
2853230bbfcSZhang Rui	help
2863230bbfcSZhang Rui	  Newer laptops and tablets that use ACPI may have thermal sensors and
2873230bbfcSZhang Rui	  other devices with thermal control capabilities outside the core
2883230bbfcSZhang Rui	  CPU/SOC, for thermal safety reasons.
2893230bbfcSZhang Rui	  They are exposed for the OS to use via the INT3400 ACPI device object
2903230bbfcSZhang Rui	  as the master, and INT3401~INT340B ACPI device objects as the slaves.
2913230bbfcSZhang Rui	  Enable this to expose the temperature information and cooling ability
2923230bbfcSZhang Rui	  from these objects to userspace via the normal thermal framework.
2933230bbfcSZhang Rui	  This means that a wide range of applications and GUI widgets can show
2943230bbfcSZhang Rui	  the information to the user or use this information for making
2953230bbfcSZhang Rui	  decisions. For example, the Intel Thermal Daemon can use this
2963230bbfcSZhang Rui	  information to allow the user to select his laptop to run without
2973230bbfcSZhang Rui	  turning on the fans.
2983230bbfcSZhang Rui
29952b1c69dSJacob Panconfig ACPI_THERMAL_REL
30052b1c69dSJacob Pan	tristate
30152b1c69dSJacob Pan	depends on ACPI
30252b1c69dSJacob Pan
303eb982001SEduardo Valentinmenu "Texas Instruments thermal drivers"
304eb982001SEduardo Valentinsource "drivers/thermal/ti-soc-thermal/Kconfig"
305eb982001SEduardo Valentinendmenu
306f157f596SZhang Rui
307c6821378SAmit Daniel Kachhapmenu "Samsung thermal drivers"
3084de45817SBartlomiej Zolnierkiewiczdepends on ARCH_EXYNOS
309c6821378SAmit Daniel Kachhapsource "drivers/thermal/samsung/Kconfig"
310c6821378SAmit Daniel Kachhapendmenu
311c6821378SAmit Daniel Kachhap
31260aef7ceSLee Jonesmenu "STMicroelectronics thermal drivers"
31360aef7ceSLee Jonesdepends on ARCH_STI && OF
31460aef7ceSLee Jonessource "drivers/thermal/st/Kconfig"
31560aef7ceSLee Jonesendmenu
31660aef7ceSLee Jones
317c610afaaSIvan T. Ivanovconfig QCOM_SPMI_TEMP_ALARM
318c610afaaSIvan T. Ivanov	tristate "Qualcomm SPMI PMIC Temperature Alarm"
319c610afaaSIvan T. Ivanov	depends on OF && SPMI && IIO
320c610afaaSIvan T. Ivanov	select REGMAP_SPMI
321c610afaaSIvan T. Ivanov	help
322c610afaaSIvan T. Ivanov	  This enables a thermal sysfs driver for Qualcomm plug-and-play (QPNP)
323c610afaaSIvan T. Ivanov	  PMIC devices. It shows up in sysfs as a thermal sensor with multiple
324c610afaaSIvan T. Ivanov	  trip points. The temperature reported by the thermal sensor reflects the
325c610afaaSIvan T. Ivanov	  real time die temperature if an ADC is present or an estimate of the
326c610afaaSIvan T. Ivanov	  temperature based upon the over temperature stage value.
327c610afaaSIvan T. Ivanov
32872e19897SZhang Ruiendif
329