Merge branch 'pm-cpufreq-sched' into pm-cpufreq
[linux-2.6-block.git] / drivers / cpufreq / Kconfig
1 menu "CPU Frequency scaling"
2
3 config CPU_FREQ
4         bool "CPU Frequency scaling"
5         select SRCU
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
19 if CPU_FREQ
20
21 config CPU_FREQ_GOV_ATTR_SET
22         bool
23
24 config CPU_FREQ_GOV_COMMON
25         select CPU_FREQ_GOV_ATTR_SET
26         select IRQ_WORK
27         bool
28
29 config CPU_FREQ_BOOST_SW
30         bool
31         depends on THERMAL
32
33 config CPU_FREQ_STAT
34         tristate "CPU frequency translation statistics"
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.
44
45 config CPU_FREQ_STAT_DETAILS
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.
53
54 choice
55         prompt "Default CPUFreq governor"
56         default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
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
62 config 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
70 config CPU_FREQ_DEFAULT_GOV_POWERSAVE
71         bool "powersave"
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
78 config 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
83           you to set the CPU frequency manually or when a userspace 
84           program shall be able to set the CPU dynamically without having
85           to enable the userspace governor manually.
86
87 config 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
99 config 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.
110
111 config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
112         bool "schedutil"
113         select CPU_FREQ_GOV_SCHEDUTIL
114         select CPU_FREQ_GOV_PERFORMANCE
115         help
116           Use the 'schedutil' CPUFreq governor by default. If unsure,
117           have a look at the help section of that governor. The fallback
118           governor will be 'performance'.
119
120 endchoice
121
122 config CPU_FREQ_GOV_PERFORMANCE
123         tristate "'performance' governor"
124         help
125           This cpufreq governor sets the frequency statically to the
126           highest available CPU frequency.
127
128           To compile this driver as a module, choose M here: the
129           module will be called cpufreq_performance.
130
131           If in doubt, say Y.
132
133 config CPU_FREQ_GOV_POWERSAVE
134         tristate "'powersave' governor"
135         help
136           This cpufreq governor sets the frequency statically to the
137           lowest available CPU frequency.
138
139           To compile this driver as a module, choose M here: the
140           module will be called cpufreq_powersave.
141
142           If in doubt, say Y.
143
144 config CPU_FREQ_GOV_USERSPACE
145         tristate "'userspace' governor for userspace frequency scaling"
146         help
147           Enable this cpufreq governor when you either want to set the
148           CPU frequency manually or when a userspace program shall
149           be able to set the CPU dynamically, like on LART 
150           <http://www.lartmaker.nl/>.
151
152           To compile this driver as a module, choose M here: the
153           module will be called cpufreq_userspace.
154
155           For details, take a look at <file:Documentation/cpu-freq/>.
156
157           If in doubt, say Y.
158
159 config CPU_FREQ_GOV_ONDEMAND
160         tristate "'ondemand' cpufreq policy governor"
161         select CPU_FREQ_GOV_COMMON
162         help
163           'ondemand' - This driver adds a dynamic cpufreq policy governor.
164           The governor does a periodic polling and 
165           changes frequency based on the CPU utilization.
166           The support for this governor depends on CPU capability to
167           do fast frequency switching (i.e, very low latency frequency
168           transitions). 
169
170           To compile this driver as a module, choose M here: the
171           module will be called cpufreq_ondemand.
172
173           For details, take a look at linux/Documentation/cpu-freq.
174
175           If in doubt, say N.
176
177 config CPU_FREQ_GOV_CONSERVATIVE
178         tristate "'conservative' cpufreq governor"
179         depends on CPU_FREQ
180         select CPU_FREQ_GOV_COMMON
181         help
182           'conservative' - this driver is rather similar to the 'ondemand'
183           governor both in its source code and its purpose, the difference is
184           its optimisation for better suitability in a battery powered
185           environment.  The frequency is gracefully increased and decreased
186           rather than jumping to 100% when speed is required.
187
188           If you have a desktop machine then you should really be considering
189           the 'ondemand' governor instead, however if you are using a laptop,
190           PDA or even an AMD64 based computer (due to the unacceptable
191           step-by-step latency issues between the minimum and maximum frequency
192           transitions in the CPU) you will probably want to use this governor.
193
194           To compile this driver as a module, choose M here: the
195           module will be called cpufreq_conservative.
196
197           For details, take a look at linux/Documentation/cpu-freq.
198
199           If in doubt, say N.
200
201 config CPU_FREQ_GOV_SCHEDUTIL
202         tristate "'schedutil' cpufreq policy governor"
203         depends on CPU_FREQ && SMP
204         select CPU_FREQ_GOV_ATTR_SET
205         select IRQ_WORK
206         help
207           This governor makes decisions based on the utilization data provided
208           by the scheduler.  It sets the CPU frequency to be proportional to
209           the utilization/capacity ratio coming from the scheduler.  If the
210           utilization is frequency-invariant, the new frequency is also
211           proportional to the maximum available frequency.  If that is not the
212           case, it is proportional to the current frequency of the CPU.  The
213           frequency tipping point is at utilization/capacity equal to 80% in
214           both cases.
215
216           To compile this driver as a module, choose M here: the module will
217           be called cpufreq_schedutil.
218
219           If in doubt, say N.
220
221 comment "CPU frequency scaling drivers"
222
223 config CPUFREQ_DT
224         tristate "Generic DT based cpufreq driver"
225         depends on HAVE_CLK && OF
226         # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
227         depends on !CPU_THERMAL || THERMAL
228         select CPUFREQ_DT_PLATDEV
229         select PM_OPP
230         help
231           This adds a generic DT based cpufreq driver for frequency management.
232           It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
233           systems which share clock and voltage across all CPUs.
234
235           If in doubt, say N.
236
237 config CPUFREQ_DT_PLATDEV
238         bool
239         help
240           This adds a generic DT based cpufreq platdev driver for frequency
241           management.  This creates a 'cpufreq-dt' platform device, on the
242           supported platforms.
243
244           If in doubt, say N.
245
246 if X86
247 source "drivers/cpufreq/Kconfig.x86"
248 endif
249
250 if ARM || ARM64
251 source "drivers/cpufreq/Kconfig.arm"
252 endif
253
254 if PPC32 || PPC64
255 source "drivers/cpufreq/Kconfig.powerpc"
256 endif
257
258 if AVR32
259 config AVR32_AT32AP_CPUFREQ
260         bool "CPU frequency driver for AT32AP"
261         depends on PLATFORM_AT32AP
262         default n
263         help
264           This enables the CPU frequency driver for AT32AP processors.
265           If in doubt, say N.
266 endif
267
268 if IA64
269 config IA64_ACPI_CPUFREQ
270         tristate "ACPI Processor P-States driver"
271         depends on ACPI_PROCESSOR
272         help
273         This driver adds a CPUFreq driver which utilizes the ACPI
274         Processor Performance States.
275
276         For details, take a look at <file:Documentation/cpu-freq/>.
277
278         If in doubt, say N.
279 endif
280
281 if MIPS
282 config LOONGSON2_CPUFREQ
283         tristate "Loongson2 CPUFreq Driver"
284         help
285           This option adds a CPUFreq driver for loongson processors which
286           support software configurable cpu frequency.
287
288           Loongson2F and it's successors support this feature.
289
290           For details, take a look at <file:Documentation/cpu-freq/>.
291
292           If in doubt, say N.
293
294 config LOONGSON1_CPUFREQ
295         tristate "Loongson1 CPUFreq Driver"
296         help
297           This option adds a CPUFreq driver for loongson1 processors which
298           support software configurable cpu frequency.
299
300           For details, take a look at <file:Documentation/cpu-freq/>.
301
302           If in doubt, say N.
303 endif
304
305 if SPARC64
306 config SPARC_US3_CPUFREQ
307         tristate "UltraSPARC-III CPU Frequency driver"
308         help
309           This adds the CPUFreq driver for UltraSPARC-III processors.
310
311           For details, take a look at <file:Documentation/cpu-freq>.
312
313           If in doubt, say N.
314
315 config SPARC_US2E_CPUFREQ
316         tristate "UltraSPARC-IIe CPU Frequency driver"
317         help
318           This adds the CPUFreq driver for UltraSPARC-IIe processors.
319
320           For details, take a look at <file:Documentation/cpu-freq>.
321
322           If in doubt, say N.
323 endif
324
325 if SUPERH
326 config SH_CPU_FREQ
327         tristate "SuperH CPU Frequency driver"
328         help
329           This adds the cpufreq driver for SuperH. Any CPU that supports
330           clock rate rounding through the clock framework can use this
331           driver. While it will make the kernel slightly larger, this is
332           harmless for CPUs that don't support rate rounding. The driver
333           will also generate a notice in the boot log before disabling
334           itself if the CPU in question is not capable of rate rounding.
335
336           For details, take a look at <file:Documentation/cpu-freq>.
337
338           If unsure, say N.
339 endif
340
341 config QORIQ_CPUFREQ
342         tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
343         depends on OF && COMMON_CLK && (PPC_E500MC || ARM)
344         depends on !CPU_THERMAL || THERMAL
345         select CLK_QORIQ
346         help
347           This adds the CPUFreq driver support for Freescale QorIQ SoCs
348           which are capable of changing the CPU's frequency dynamically.
349
350 endif
351 endmenu