xref: /openbmc/linux/drivers/cpufreq/Kconfig (revision c4c11dd1)
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.
105endchoice
106
107config CPU_FREQ_GOV_PERFORMANCE
108	tristate "'performance' governor"
109	help
110	  This cpufreq governor sets the frequency statically to the
111	  highest available CPU frequency.
112
113	  To compile this driver as a module, choose M here: the
114	  module will be called cpufreq_performance.
115
116	  If in doubt, say Y.
117
118config CPU_FREQ_GOV_POWERSAVE
119	tristate "'powersave' governor"
120	help
121	  This cpufreq governor sets the frequency statically to the
122	  lowest available CPU frequency.
123
124	  To compile this driver as a module, choose M here: the
125	  module will be called cpufreq_powersave.
126
127	  If in doubt, say Y.
128
129config CPU_FREQ_GOV_USERSPACE
130	tristate "'userspace' governor for userspace frequency scaling"
131	help
132	  Enable this cpufreq governor when you either want to set the
133	  CPU frequency manually or when a userspace program shall
134	  be able to set the CPU dynamically, like on LART
135	  <http://www.lartmaker.nl/>.
136
137	  To compile this driver as a module, choose M here: the
138	  module will be called cpufreq_userspace.
139
140	  For details, take a look at <file:Documentation/cpu-freq/>.
141
142	  If in doubt, say Y.
143
144config CPU_FREQ_GOV_ONDEMAND
145	tristate "'ondemand' cpufreq policy governor"
146	select CPU_FREQ_TABLE
147	select CPU_FREQ_GOV_COMMON
148	help
149	  'ondemand' - This driver adds a dynamic cpufreq policy governor.
150	  The governor does a periodic polling and
151	  changes frequency based on the CPU utilization.
152	  The support for this governor depends on CPU capability to
153	  do fast frequency switching (i.e, very low latency frequency
154	  transitions).
155
156	  To compile this driver as a module, choose M here: the
157	  module will be called cpufreq_ondemand.
158
159	  For details, take a look at linux/Documentation/cpu-freq.
160
161	  If in doubt, say N.
162
163config CPU_FREQ_GOV_CONSERVATIVE
164	tristate "'conservative' cpufreq governor"
165	depends on CPU_FREQ
166	select CPU_FREQ_GOV_COMMON
167	help
168	  'conservative' - this driver is rather similar to the 'ondemand'
169	  governor both in its source code and its purpose, the difference is
170	  its optimisation for better suitability in a battery powered
171	  environment.  The frequency is gracefully increased and decreased
172	  rather than jumping to 100% when speed is required.
173
174	  If you have a desktop machine then you should really be considering
175	  the 'ondemand' governor instead, however if you are using a laptop,
176	  PDA or even an AMD64 based computer (due to the unacceptable
177	  step-by-step latency issues between the minimum and maximum frequency
178	  transitions in the CPU) you will probably want to use this governor.
179
180	  To compile this driver as a module, choose M here: the
181	  module will be called cpufreq_conservative.
182
183	  For details, take a look at linux/Documentation/cpu-freq.
184
185	  If in doubt, say N.
186
187config GENERIC_CPUFREQ_CPU0
188	tristate "Generic CPU0 cpufreq driver"
189	depends on HAVE_CLK && REGULATOR && PM_OPP && OF
190	select CPU_FREQ_TABLE
191	help
192	  This adds a generic cpufreq driver for CPU0 frequency management.
193	  It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
194	  systems which share clock and voltage across all CPUs.
195
196	  If in doubt, say N.
197
198menu "x86 CPU frequency scaling drivers"
199depends on X86
200source "drivers/cpufreq/Kconfig.x86"
201endmenu
202
203menu "ARM CPU frequency scaling drivers"
204depends on ARM
205source "drivers/cpufreq/Kconfig.arm"
206endmenu
207
208menu "AVR32 CPU frequency scaling drivers"
209depends on AVR32
210
211config AVR32_AT32AP_CPUFREQ
212	bool "CPU frequency driver for AT32AP"
213	depends on PLATFORM_AT32AP
214	default n
215	help
216	  This enables the CPU frequency driver for AT32AP processors.
217	  If in doubt, say N.
218
219endmenu
220
221menu "CPUFreq processor drivers"
222depends on IA64
223
224config IA64_ACPI_CPUFREQ
225	tristate "ACPI Processor P-States driver"
226	select CPU_FREQ_TABLE
227	depends on ACPI_PROCESSOR
228	help
229	This driver adds a CPUFreq driver which utilizes the ACPI
230	Processor Performance States.
231
232	For details, take a look at <file:Documentation/cpu-freq/>.
233
234	If in doubt, say N.
235
236endmenu
237
238menu "MIPS CPUFreq processor drivers"
239depends on MIPS
240
241config LOONGSON2_CPUFREQ
242	tristate "Loongson2 CPUFreq Driver"
243	select CPU_FREQ_TABLE
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
254endmenu
255
256menu "PowerPC CPU frequency scaling drivers"
257depends on PPC32 || PPC64
258source "drivers/cpufreq/Kconfig.powerpc"
259endmenu
260
261menu "SPARC CPU frequency scaling drivers"
262depends on SPARC64
263config SPARC_US3_CPUFREQ
264	tristate "UltraSPARC-III CPU Frequency driver"
265	select CPU_FREQ_TABLE
266	help
267	  This adds the CPUFreq driver for UltraSPARC-III processors.
268
269	  For details, take a look at <file:Documentation/cpu-freq>.
270
271	  If in doubt, say N.
272
273config SPARC_US2E_CPUFREQ
274	tristate "UltraSPARC-IIe CPU Frequency driver"
275	select CPU_FREQ_TABLE
276	help
277	  This adds the CPUFreq driver for UltraSPARC-IIe processors.
278
279	  For details, take a look at <file:Documentation/cpu-freq>.
280
281	  If in doubt, say N.
282endmenu
283
284menu "SH CPU Frequency scaling"
285depends on SUPERH
286config SH_CPU_FREQ
287	tristate "SuperH CPU Frequency driver"
288	select CPU_FREQ_TABLE
289	help
290	  This adds the cpufreq driver for SuperH. Any CPU that supports
291	  clock rate rounding through the clock framework can use this
292	  driver. While it will make the kernel slightly larger, this is
293	  harmless for CPUs that don't support rate rounding. The driver
294	  will also generate a notice in the boot log before disabling
295	  itself if the CPU in question is not capable of rate rounding.
296
297	  For details, take a look at <file:Documentation/cpu-freq>.
298
299	  If unsure, say N.
300endmenu
301
302endif
303endmenu
304