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