xref: /linux/drivers/thermal/Kconfig (revision f9df89d897ee0928aa4e03b30250e87f5d1e788a)
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
74a56757afSDurgadoss Rendchoice
7572e19897SZhang Rui
769d185d04SZhang Ruiconfig THERMAL_GOV_FAIR_SHARE
7772e19897SZhang Rui	bool "Fair-share thermal governor"
7872e19897SZhang Rui	help
7972e19897SZhang Rui	  Enable this to manage platform thermals using fair-share governor.
8072e19897SZhang Rui
819d185d04SZhang Ruiconfig THERMAL_GOV_STEP_WISE
8272e19897SZhang Rui	bool "Step_wise thermal governor"
8372e19897SZhang Rui	help
8472e19897SZhang Rui	  Enable this to manage platform thermals using a simple linear
85a8227948SLuka Perkov	  governor.
8672e19897SZhang Rui
87e4dbf98fSPeter Feuererconfig THERMAL_GOV_BANG_BANG
88e4dbf98fSPeter Feuerer	bool "Bang Bang thermal governor"
89e4dbf98fSPeter Feuerer	default n
90e4dbf98fSPeter Feuerer	help
91e4dbf98fSPeter Feuerer	  Enable this to manage platform thermals using bang bang governor.
92e4dbf98fSPeter Feuerer
93e4dbf98fSPeter Feuerer	  Say 'Y' here if you want to use two point temperature regulation
94e4dbf98fSPeter Feuerer	  used for fans without throttling.  Some fan drivers depend on this
95e4dbf98fSPeter Feuerer	  governor to be enabled (e.g. acerhdf).
96e4dbf98fSPeter Feuerer
979d185d04SZhang Ruiconfig THERMAL_GOV_USER_SPACE
9872e19897SZhang Rui	bool "User_space thermal governor"
9972e19897SZhang Rui	help
10072e19897SZhang Rui	  Enable this to let the user space manage the platform thermals.
10172e19897SZhang Rui
10272e19897SZhang Ruiconfig CPU_THERMAL
103bbf7fc88SZhang Rui	bool "generic cpu cooling support"
10472e19897SZhang Rui	depends on CPU_FREQ
10539d99cffSEduardo Valentin	depends on THERMAL_OF
10672e19897SZhang Rui	help
10772e19897SZhang Rui	  This implements the generic cpu cooling mechanism through frequency
108f7188b3dSEduardo Valentin	  reduction. An ACPI version of this already exists
109f7188b3dSEduardo Valentin	  (drivers/acpi/processor_thermal.c).
11072e19897SZhang Rui	  This will be useful for platforms using the generic thermal interface
11172e19897SZhang Rui	  and not the ACPI interface.
112f7188b3dSEduardo Valentin
11372e19897SZhang Rui	  If you want this support, you should say Y here.
11472e19897SZhang Rui
115*f9df89d8SEduardo Valentinconfig CLOCK_THERMAL
116*f9df89d8SEduardo Valentin	bool "Generic clock cooling support"
117*f9df89d8SEduardo Valentin	depends on COMMON_CLK
118*f9df89d8SEduardo Valentin	depends on PM_OPP
119*f9df89d8SEduardo Valentin	help
120*f9df89d8SEduardo Valentin	  This entry implements the generic clock cooling mechanism through
121*f9df89d8SEduardo Valentin	  frequency clipping. Typically used to cool off co-processors. The
122*f9df89d8SEduardo Valentin	  device that is configured to use this cooling mechanism will be
123*f9df89d8SEduardo Valentin	  controlled to reduce clock frequency whenever temperature is high.
124*f9df89d8SEduardo Valentin
125*f9df89d8SEduardo Valentin	  If you want this support, you should say Y here.
126*f9df89d8SEduardo Valentin
127e6e238c3SAmit Daniel Kachhapconfig THERMAL_EMULATION
128e6e238c3SAmit Daniel Kachhap	bool "Thermal emulation mode support"
129e6e238c3SAmit Daniel Kachhap	help
130e6e238c3SAmit Daniel Kachhap	  Enable this option to make a emul_temp sysfs node in thermal zone
131e6e238c3SAmit Daniel Kachhap	  directory to support temperature emulation. With emulation sysfs node,
132e6e238c3SAmit Daniel Kachhap	  user can manually input temperature and test the different trip
133e6e238c3SAmit Daniel Kachhap	  threshold behaviour for simulation purpose.
134e6e238c3SAmit Daniel Kachhap
1358837295aSEduardo Valentin	  WARNING: Be careful while enabling this option on production systems,
1368837295aSEduardo Valentin	  because userland can easily disable the thermal policy by simply
1378837295aSEduardo Valentin	  flooding this sysfs node with low temperature values.
1388837295aSEduardo Valentin
139ca3de46bSShawn Guoconfig IMX_THERMAL
140ca3de46bSShawn Guo	tristate "Temperature sensor driver for Freescale i.MX SoCs"
141ca3de46bSShawn Guo	depends on CPU_THERMAL
142ca3de46bSShawn Guo	depends on MFD_SYSCON
143ca3de46bSShawn Guo	depends on OF
144ca3de46bSShawn Guo	help
145ca3de46bSShawn Guo	  Support for Temperature Monitor (TEMPMON) found on Freescale i.MX SoCs.
146ca3de46bSShawn Guo	  It supports one critical trip point and one passive trip point.  The
147ca3de46bSShawn Guo	  cpufreq is used as the cooling device to throttle CPUs when the
148ca3de46bSShawn Guo	  passive trip is crossed.
149ca3de46bSShawn Guo
15072e19897SZhang Ruiconfig SPEAR_THERMAL
15172e19897SZhang Rui	bool "SPEAr thermal sensor driver"
15272e19897SZhang Rui	depends on PLAT_SPEAR
15372e19897SZhang Rui	depends on OF
15472e19897SZhang Rui	help
15572e19897SZhang Rui	  Enable this to plug the SPEAr thermal sensor driver into the Linux
156a8227948SLuka Perkov	  thermal framework.
15772e19897SZhang Rui
15872e19897SZhang Ruiconfig RCAR_THERMAL
15972e19897SZhang Rui	tristate "Renesas R-Car thermal driver"
160beeb5a1eSLaurent Pinchart	depends on ARCH_SHMOBILE || COMPILE_TEST
161d1c8b041SRichard Weinberger	depends on HAS_IOMEM
16272e19897SZhang Rui	help
16372e19897SZhang Rui	  Enable this to plug the R-Car thermal sensor driver into the Linux
164a8227948SLuka Perkov	  thermal framework.
16572e19897SZhang Rui
1667060aa36SNobuhiro Iwamatsuconfig KIRKWOOD_THERMAL
1677060aa36SNobuhiro Iwamatsu	tristate "Temperature sensor on Marvell Kirkwood SoCs"
168575be653SAndrew Lunn	depends on MACH_KIRKWOOD
1697060aa36SNobuhiro Iwamatsu	depends on OF
1707060aa36SNobuhiro Iwamatsu	help
1717060aa36SNobuhiro Iwamatsu	  Support for the Kirkwood thermal sensor driver into the Linux thermal
1727060aa36SNobuhiro Iwamatsu	  framework. Only kirkwood 88F6282 and 88F6283 have this sensor.
1737060aa36SNobuhiro Iwamatsu
17474ffa64cSAndrew Lunnconfig DOVE_THERMAL
17574ffa64cSAndrew Lunn	tristate "Temperature sensor on Marvell Dove SoCs"
176b3dee390SRiku Voipio	depends on ARCH_DOVE || MACH_DOVE
17774ffa64cSAndrew Lunn	depends on OF
17874ffa64cSAndrew Lunn	help
17974ffa64cSAndrew Lunn	  Support for the Dove thermal sensor driver in the Linux thermal
18074ffa64cSAndrew Lunn	  framework.
18174ffa64cSAndrew Lunn
182aa1acb04Shongbo.zhangconfig DB8500_THERMAL
183aa1acb04Shongbo.zhang	bool "DB8500 thermal management"
184aa1acb04Shongbo.zhang	depends on ARCH_U8500
185aa1acb04Shongbo.zhang	default y
186aa1acb04Shongbo.zhang	help
187aa1acb04Shongbo.zhang	  Adds DB8500 thermal management implementation according to the thermal
188aa1acb04Shongbo.zhang	  management framework. A thermal zone with several trip points will be
189aa1acb04Shongbo.zhang	  created. Cooling devices can be bound to the trip points to cool this
190aa1acb04Shongbo.zhang	  thermal zone if trip points reached.
191aa1acb04Shongbo.zhang
192fa0d654cSEzequiel Garciaconfig ARMADA_THERMAL
193fa0d654cSEzequiel Garcia	tristate "Armada 370/XP thermal management"
194fa0d654cSEzequiel Garcia	depends on ARCH_MVEBU
195fa0d654cSEzequiel Garcia	depends on OF
196fa0d654cSEzequiel Garcia	help
197fa0d654cSEzequiel Garcia	  Enable this option if you want to have support for thermal management
198fa0d654cSEzequiel Garcia	  controller present in Armada 370 and Armada XP SoC.
199fa0d654cSEzequiel Garcia
200aa1acb04Shongbo.zhangconfig DB8500_CPUFREQ_COOLING
201aa1acb04Shongbo.zhang	tristate "DB8500 cpufreq cooling"
202aa1acb04Shongbo.zhang	depends on ARCH_U8500
203aa1acb04Shongbo.zhang	depends on CPU_THERMAL
204aa1acb04Shongbo.zhang	default y
205aa1acb04Shongbo.zhang	help
206aa1acb04Shongbo.zhang	  Adds DB8500 cpufreq cooling devices, and these cooling devices can be
207aa1acb04Shongbo.zhang	  bound to thermal zone trip points. When a trip point reached, the
208aa1acb04Shongbo.zhang	  bound cpufreq cooling device turns active to set CPU frequency low to
209aa1acb04Shongbo.zhang	  cool down the CPU.
21072e19897SZhang Rui
211d6d71ee4SJacob Panconfig INTEL_POWERCLAMP
212d6d71ee4SJacob Pan	tristate "Intel PowerClamp idle injection driver"
213d6d71ee4SJacob Pan	depends on THERMAL
214d6d71ee4SJacob Pan	depends on X86
215d6d71ee4SJacob Pan	depends on CPU_SUP_INTEL
216d6d71ee4SJacob Pan	help
217d6d71ee4SJacob Pan	  Enable this to enable Intel PowerClamp idle injection driver. This
218d6d71ee4SJacob Pan	  enforce idle time which results in more package C-state residency. The
219d6d71ee4SJacob Pan	  user interface is exposed via generic thermal framework.
220d6d71ee4SJacob Pan
221f1a18a10SSrinivas Pandruvadaconfig X86_PKG_TEMP_THERMAL
222f1a18a10SSrinivas Pandruvada	tristate "X86 package temperature thermal driver"
223b3ba0206SRandy Dunlap	depends on X86_THERMAL_VECTOR
224f1a18a10SSrinivas Pandruvada	select THERMAL_GOV_USER_SPACE
225f1a18a10SSrinivas Pandruvada	default m
226f1a18a10SSrinivas Pandruvada	help
227f1a18a10SSrinivas Pandruvada	  Enable this to register CPU digital sensor for package temperature as
228f1a18a10SSrinivas Pandruvada	  thermal zone. Each package will have its own thermal zone. There are
229f1a18a10SSrinivas Pandruvada	  two trip points which can be set by user to get notifications via thermal
230f1a18a10SSrinivas Pandruvada	  notification methods.
231f1a18a10SSrinivas Pandruvada
232bc40b5e3SSrinivas Pandruvadaconfig INTEL_SOC_DTS_THERMAL
233bc40b5e3SSrinivas Pandruvada	tristate "Intel SoCs DTS thermal driver"
234bc40b5e3SSrinivas Pandruvada	depends on X86 && IOSF_MBI
235bc40b5e3SSrinivas Pandruvada	help
236bc40b5e3SSrinivas Pandruvada	  Enable this to register Intel SoCs (e.g. Bay Trail) platform digital
237bc40b5e3SSrinivas Pandruvada	  temperature sensor (DTS). These SoCs have two additional DTSs in
238bc40b5e3SSrinivas Pandruvada	  addition to DTSs on CPU cores. Each DTS will be registered as a
239bc40b5e3SSrinivas Pandruvada	  thermal zone. There are two trip points. One of the trip point can
240bc40b5e3SSrinivas Pandruvada	  be set by user mode programs to get notifications via Linux thermal
241bc40b5e3SSrinivas Pandruvada	  notification methods.The other trip is a critical trip point, which
242bc40b5e3SSrinivas Pandruvada	  was set by the driver based on the TJ MAX temperature.
243bc40b5e3SSrinivas Pandruvada
2443230bbfcSZhang Ruiconfig INT340X_THERMAL
245816cab93SZhang Rui	tristate "ACPI INT340X thermal drivers"
2463230bbfcSZhang Rui	depends on X86 && ACPI
2470ab15365SZhang Rui	select THERMAL_GOV_USER_SPACE
24852b1c69dSJacob Pan	select ACPI_THERMAL_REL
249d8054749SZhang Rui	select ACPI_FAN
2503230bbfcSZhang Rui	help
2513230bbfcSZhang Rui	  Newer laptops and tablets that use ACPI may have thermal sensors and
2523230bbfcSZhang Rui	  other devices with thermal control capabilities outside the core
2533230bbfcSZhang Rui	  CPU/SOC, for thermal safety reasons.
2543230bbfcSZhang Rui	  They are exposed for the OS to use via the INT3400 ACPI device object
2553230bbfcSZhang Rui	  as the master, and INT3401~INT340B ACPI device objects as the slaves.
2563230bbfcSZhang Rui	  Enable this to expose the temperature information and cooling ability
2573230bbfcSZhang Rui	  from these objects to userspace via the normal thermal framework.
2583230bbfcSZhang Rui	  This means that a wide range of applications and GUI widgets can show
2593230bbfcSZhang Rui	  the information to the user or use this information for making
2603230bbfcSZhang Rui	  decisions. For example, the Intel Thermal Daemon can use this
2613230bbfcSZhang Rui	  information to allow the user to select his laptop to run without
2623230bbfcSZhang Rui	  turning on the fans.
2633230bbfcSZhang Rui
26452b1c69dSJacob Panconfig ACPI_THERMAL_REL
26552b1c69dSJacob Pan	tristate
26652b1c69dSJacob Pan	depends on ACPI
26752b1c69dSJacob Pan
268eb982001SEduardo Valentinmenu "Texas Instruments thermal drivers"
269eb982001SEduardo Valentinsource "drivers/thermal/ti-soc-thermal/Kconfig"
270eb982001SEduardo Valentinendmenu
271f157f596SZhang Rui
272c6821378SAmit Daniel Kachhapmenu "Samsung thermal drivers"
2734de45817SBartlomiej Zolnierkiewiczdepends on ARCH_EXYNOS
274c6821378SAmit Daniel Kachhapsource "drivers/thermal/samsung/Kconfig"
275c6821378SAmit Daniel Kachhapendmenu
276c6821378SAmit Daniel Kachhap
27760aef7ceSLee Jonesmenu "STMicroelectronics thermal drivers"
27860aef7ceSLee Jonesdepends on ARCH_STI && OF
27960aef7ceSLee Jonessource "drivers/thermal/st/Kconfig"
28060aef7ceSLee Jonesendmenu
28160aef7ceSLee Jones
28272e19897SZhang Ruiendif
283