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