cpufreq: Support for fast frequency switching
[deliverable/linux.git] / drivers / cpufreq / Kconfig
CommitLineData
bb0a56ec
DJ
1menu "CPU Frequency scaling"
2
1da177e4
LT
3config CPU_FREQ
4 bool "CPU Frequency scaling"
83fe27ea 5 select SRCU
1da177e4
LT
6 help
7 CPU Frequency scaling allows you to change the clock speed of
8 CPUs on the fly. This is a nice method to save power, because
9 the lower the CPU clock speed, the less power the CPU consumes.
10
11 Note that this driver doesn't automatically change the CPU
12 clock speed, you need to either enable a dynamic cpufreq governor
13 (see below) after boot, or use a userspace tool.
14
15 For details, take a look at <file:Documentation/cpu-freq>.
16
17 If in doubt, say N.
18
19if CPU_FREQ
20
2d0c58ad
RW
21config CPU_FREQ_GOV_ATTR_SET
22 bool
23
1e15f295 24config CPU_FREQ_GOV_COMMON
2d0c58ad 25 select CPU_FREQ_GOV_ATTR_SET
e6f03657 26 select IRQ_WORK
1e15f295
LF
27 bool
28
2fb4719b
LM
29config CPU_FREQ_BOOST_SW
30 bool
31 depends on THERMAL
32
1da177e4 33config CPU_FREQ_STAT
9101be53 34 tristate "CPU frequency translation statistics"
9101be53
MF
35 default y
36 help
37 This driver exports CPU frequency statistics information through sysfs
38 file system.
39
40 To compile this driver as a module, choose M here: the
41 module will be called cpufreq_stats.
42
43 If in doubt, say N.
1da177e4
LT
44
45config CPU_FREQ_STAT_DETAILS
9101be53
MF
46 bool "CPU frequency translation statistics details"
47 depends on CPU_FREQ_STAT
48 help
49 This will show detail CPU frequency translation table in sysfs file
50 system.
51
52 If in doubt, say N.
1da177e4
LT
53
54choice
55 prompt "Default CPUFreq governor"
559f56c7 56 default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
1da177e4
LT
57 default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
58 help
59 This option sets which CPUFreq governor shall be loaded at
60 startup. If in doubt, select 'performance'.
61
62config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
63 bool "performance"
64 select CPU_FREQ_GOV_PERFORMANCE
65 help
66 Use the CPUFreq governor 'performance' as default. This sets
67 the frequency statically to the highest frequency supported by
68 the CPU.
69
30d221db
AG
70config CPU_FREQ_DEFAULT_GOV_POWERSAVE
71 bool "powersave"
30d221db
AG
72 select CPU_FREQ_GOV_POWERSAVE
73 help
74 Use the CPUFreq governor 'powersave' as default. This sets
75 the frequency statically to the lowest frequency supported by
76 the CPU.
77
1da177e4
LT
78config CPU_FREQ_DEFAULT_GOV_USERSPACE
79 bool "userspace"
80 select CPU_FREQ_GOV_USERSPACE
81 help
82 Use the CPUFreq governor 'userspace' as default. This allows
0211a9c8 83 you to set the CPU frequency manually or when a userspace
1da177e4
LT
84 program shall be able to set the CPU dynamically without having
85 to enable the userspace governor manually.
86
1c256245
TR
87config CPU_FREQ_DEFAULT_GOV_ONDEMAND
88 bool "ondemand"
89 select CPU_FREQ_GOV_ONDEMAND
90 select CPU_FREQ_GOV_PERFORMANCE
91 help
92 Use the CPUFreq governor 'ondemand' as default. This allows
93 you to get a full dynamic frequency capable system by simply
94 loading your cpufreq low-level hardware driver.
95 Be aware that not all cpufreq drivers support the ondemand
96 governor. If unsure have a look at the help section of the
97 driver. Fallback governor will be the performance governor.
98
99config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
100 bool "conservative"
101 select CPU_FREQ_GOV_CONSERVATIVE
102 select CPU_FREQ_GOV_PERFORMANCE
103 help
104 Use the CPUFreq governor 'conservative' as default. This allows
105 you to get a full dynamic frequency capable system by simply
106 loading your cpufreq low-level hardware driver.
107 Be aware that not all cpufreq drivers support the conservative
108 governor. If unsure have a look at the help section of the
109 driver. Fallback governor will be the performance governor.
1da177e4
LT
110endchoice
111
112config CPU_FREQ_GOV_PERFORMANCE
9101be53
MF
113 tristate "'performance' governor"
114 help
1da177e4
LT
115 This cpufreq governor sets the frequency statically to the
116 highest available CPU frequency.
117
9101be53
MF
118 To compile this driver as a module, choose M here: the
119 module will be called cpufreq_performance.
120
1da177e4
LT
121 If in doubt, say Y.
122
123config CPU_FREQ_GOV_POWERSAVE
9101be53
MF
124 tristate "'powersave' governor"
125 help
1da177e4
LT
126 This cpufreq governor sets the frequency statically to the
127 lowest available CPU frequency.
128
9101be53
MF
129 To compile this driver as a module, choose M here: the
130 module will be called cpufreq_powersave.
131
1da177e4
LT
132 If in doubt, say Y.
133
134config CPU_FREQ_GOV_USERSPACE
9101be53
MF
135 tristate "'userspace' governor for userspace frequency scaling"
136 help
1da177e4 137 Enable this cpufreq governor when you either want to set the
0211a9c8 138 CPU frequency manually or when a userspace program shall
1da177e4 139 be able to set the CPU dynamically, like on LART
4c41251e 140 <http://www.lartmaker.nl/>.
1da177e4 141
9101be53
MF
142 To compile this driver as a module, choose M here: the
143 module will be called cpufreq_userspace.
144
1da177e4
LT
145 For details, take a look at <file:Documentation/cpu-freq/>.
146
147 If in doubt, say Y.
148
149config CPU_FREQ_GOV_ONDEMAND
150 tristate "'ondemand' cpufreq policy governor"
1e15f295 151 select CPU_FREQ_GOV_COMMON
1da177e4
LT
152 help
153 'ondemand' - This driver adds a dynamic cpufreq policy governor.
154 The governor does a periodic polling and
155 changes frequency based on the CPU utilization.
156 The support for this governor depends on CPU capability to
157 do fast frequency switching (i.e, very low latency frequency
158 transitions).
159
9101be53
MF
160 To compile this driver as a module, choose M here: the
161 module will be called cpufreq_ondemand.
162
1da177e4
LT
163 For details, take a look at linux/Documentation/cpu-freq.
164
165 If in doubt, say N.
166
b9170836
DJ
167config CPU_FREQ_GOV_CONSERVATIVE
168 tristate "'conservative' cpufreq governor"
169 depends on CPU_FREQ
1e15f295 170 select CPU_FREQ_GOV_COMMON
b9170836
DJ
171 help
172 'conservative' - this driver is rather similar to the 'ondemand'
173 governor both in its source code and its purpose, the difference is
174 its optimisation for better suitability in a battery powered
175 environment. The frequency is gracefully increased and decreased
176 rather than jumping to 100% when speed is required.
177
178 If you have a desktop machine then you should really be considering
179 the 'ondemand' governor instead, however if you are using a laptop,
180 PDA or even an AMD64 based computer (due to the unacceptable
181 step-by-step latency issues between the minimum and maximum frequency
182 transitions in the CPU) you will probably want to use this governor.
183
9101be53
MF
184 To compile this driver as a module, choose M here: the
185 module will be called cpufreq_conservative.
186
b9170836
DJ
187 For details, take a look at linux/Documentation/cpu-freq.
188
189 If in doubt, say N.
190
f41f4815
VK
191comment "CPU frequency scaling drivers"
192
bbcf0719
VK
193config CPUFREQ_DT
194 tristate "Generic DT based cpufreq driver"
5fbfbcd3 195 depends on HAVE_CLK && OF
bbcf0719 196 # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
217886d3 197 depends on !CPU_THERMAL || THERMAL
109df086 198 select PM_OPP
95ceafd4 199 help
bbcf0719 200 This adds a generic DT based cpufreq driver for frequency management.
95ceafd4
SG
201 It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
202 systems which share clock and voltage across all CPUs.
203
204 If in doubt, say N.
205
f41f4815 206if X86
bb0a56ec 207source "drivers/cpufreq/Kconfig.x86"
f41f4815 208endif
bb0a56ec 209
f41f4815 210if ARM || ARM64
f7d77079 211source "drivers/cpufreq/Kconfig.arm"
f41f4815 212endif
f7d77079 213
f41f4815
VK
214if PPC32 || PPC64
215source "drivers/cpufreq/Kconfig.powerpc"
216endif
81c720c9 217
f41f4815 218if AVR32
81c720c9
VK
219config AVR32_AT32AP_CPUFREQ
220 bool "CPU frequency driver for AT32AP"
221 depends on PLATFORM_AT32AP
222 default n
223 help
224 This enables the CPU frequency driver for AT32AP processors.
225 If in doubt, say N.
f41f4815 226endif
81c720c9 227
f41f4815 228if IA64
ab423e43
VK
229config IA64_ACPI_CPUFREQ
230 tristate "ACPI Processor P-States driver"
ab423e43
VK
231 depends on ACPI_PROCESSOR
232 help
233 This driver adds a CPUFreq driver which utilizes the ACPI
234 Processor Performance States.
235
236 For details, take a look at <file:Documentation/cpu-freq/>.
237
238 If in doubt, say N.
f41f4815 239endif
ab423e43 240
f41f4815 241if MIPS
7a998935
VK
242config LOONGSON2_CPUFREQ
243 tristate "Loongson2 CPUFreq Driver"
7a998935
VK
244 help
245 This option adds a CPUFreq driver for loongson processors which
246 support software configurable cpu frequency.
247
248 Loongson2F and it's successors support this feature.
249
250 For details, take a look at <file:Documentation/cpu-freq/>.
251
252 If in doubt, say N.
253
a0a22cf1
KC
254config LOONGSON1_CPUFREQ
255 tristate "Loongson1 CPUFreq Driver"
256 help
257 This option adds a CPUFreq driver for loongson1 processors which
258 support software configurable cpu frequency.
259
260 For details, take a look at <file:Documentation/cpu-freq/>.
261
262 If in doubt, say N.
f41f4815 263endif
a0a22cf1 264
f41f4815 265if SPARC64
764295ae
VK
266config SPARC_US3_CPUFREQ
267 tristate "UltraSPARC-III CPU Frequency driver"
764295ae
VK
268 help
269 This adds the CPUFreq driver for UltraSPARC-III processors.
270
271 For details, take a look at <file:Documentation/cpu-freq>.
272
273 If in doubt, say N.
274
275config SPARC_US2E_CPUFREQ
276 tristate "UltraSPARC-IIe CPU Frequency driver"
764295ae
VK
277 help
278 This adds the CPUFreq driver for UltraSPARC-IIe processors.
279
280 For details, take a look at <file:Documentation/cpu-freq>.
281
282 If in doubt, say N.
f41f4815 283endif
764295ae 284
f41f4815 285if SUPERH
7258267e
VK
286config SH_CPU_FREQ
287 tristate "SuperH CPU Frequency driver"
7258267e
VK
288 help
289 This adds the cpufreq driver for SuperH. Any CPU that supports
290 clock rate rounding through the clock framework can use this
291 driver. While it will make the kernel slightly larger, this is
292 harmless for CPUs that don't support rate rounding. The driver
293 will also generate a notice in the boot log before disabling
294 itself if the CPU in question is not capable of rate rounding.
295
296 For details, take a look at <file:Documentation/cpu-freq>.
297
298 If unsure, say N.
f41f4815 299endif
7258267e 300
2f249358
TY
301config QORIQ_CPUFREQ
302 tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
303 depends on OF && COMMON_CLK && (PPC_E500MC || ARM)
ddd30ef4 304 depends on !CPU_THERMAL || THERMAL
2f249358
TY
305 select CLK_QORIQ
306 help
307 This adds the CPUFreq driver support for Freescale QorIQ SoCs
308 which are capable of changing the CPU's frequency dynamically.
309
bb0a56ec
DJ
310endif
311endmenu
This page took 1.208892 seconds and 5 git commands to generate.