1 menu "CPU Frequency scaling"
4 bool "CPU Frequency scaling"
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.
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.
15 For details, take a look at <file:Documentation/cpu-freq>.
21 config CPU_FREQ_GOV_COMMON
24 config CPU_FREQ_BOOST_SW
29 tristate "CPU frequency translation statistics"
32 This driver exports CPU frequency statistics information through sysfs
35 To compile this driver as a module, choose M here: the
36 module will be called cpufreq_stats.
40 config CPU_FREQ_STAT_DETAILS
41 bool "CPU frequency translation statistics details"
42 depends on CPU_FREQ_STAT
44 This will show detail CPU frequency translation table in sysfs file
50 prompt "Default CPUFreq governor"
51 default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
52 default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
54 This option sets which CPUFreq governor shall be loaded at
55 startup. If in doubt, select 'performance'.
57 config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
59 select CPU_FREQ_GOV_PERFORMANCE
61 Use the CPUFreq governor 'performance' as default. This sets
62 the frequency statically to the highest frequency supported by
65 config CPU_FREQ_DEFAULT_GOV_POWERSAVE
67 select CPU_FREQ_GOV_POWERSAVE
69 Use the CPUFreq governor 'powersave' as default. This sets
70 the frequency statically to the lowest frequency supported by
73 config CPU_FREQ_DEFAULT_GOV_USERSPACE
75 select CPU_FREQ_GOV_USERSPACE
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.
82 config CPU_FREQ_DEFAULT_GOV_ONDEMAND
84 select CPU_FREQ_GOV_ONDEMAND
85 select CPU_FREQ_GOV_PERFORMANCE
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.
94 config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
96 select CPU_FREQ_GOV_CONSERVATIVE
97 select CPU_FREQ_GOV_PERFORMANCE
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.
106 config CPU_FREQ_DEFAULT_GOV_INTERACTIVE
108 select CPU_FREQ_GOV_INTERACTIVE
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.
115 config CPU_FREQ_DEFAULT_GOV_SCHED
117 select CPU_FREQ_GOV_SCHED
119 Use the CPUfreq governor 'sched' as default. This scales
120 cpu frequency using CPU utilization estimates from the
124 config CPU_FREQ_GOV_PERFORMANCE
125 tristate "'performance' governor"
127 This cpufreq governor sets the frequency statically to the
128 highest available CPU frequency.
130 To compile this driver as a module, choose M here: the
131 module will be called cpufreq_performance.
135 config CPU_FREQ_GOV_POWERSAVE
136 tristate "'powersave' governor"
138 This cpufreq governor sets the frequency statically to the
139 lowest available CPU frequency.
141 To compile this driver as a module, choose M here: the
142 module will be called cpufreq_powersave.
146 config CPU_FREQ_GOV_USERSPACE
147 tristate "'userspace' governor for userspace frequency scaling"
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/>.
154 To compile this driver as a module, choose M here: the
155 module will be called cpufreq_userspace.
157 For details, take a look at <file:Documentation/cpu-freq/>.
161 config CPU_FREQ_GOV_ONDEMAND
162 tristate "'ondemand' cpufreq policy governor"
163 select CPU_FREQ_GOV_COMMON
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
172 To compile this driver as a module, choose M here: the
173 module will be called cpufreq_ondemand.
175 For details, take a look at linux/Documentation/cpu-freq.
179 config CPU_FREQ_GOV_INTERACTIVE
180 bool "'interactive' cpufreq policy governor"
182 'interactive' - This driver adds a dynamic cpufreq policy governor
183 designed for latency-sensitive workloads.
185 This governor attempts to reduce the latency of clock
186 increases so that the system is more responsive to
187 interactive workloads.
189 For details, take a look at linux/Documentation/cpu-freq.
193 config CPU_FREQ_GOV_CONSERVATIVE
194 tristate "'conservative' cpufreq governor"
196 select CPU_FREQ_GOV_COMMON
198 'conservative' - this driver is rather similar to the 'ondemand'
199 governor both in its source code and its purpose, the difference is
200 its optimisation for better suitability in a battery powered
201 environment. The frequency is gracefully increased and decreased
202 rather than jumping to 100% when speed is required.
204 If you have a desktop machine then you should really be considering
205 the 'ondemand' governor instead, however if you are using a laptop,
206 PDA or even an AMD64 based computer (due to the unacceptable
207 step-by-step latency issues between the minimum and maximum frequency
208 transitions in the CPU) you will probably want to use this governor.
210 To compile this driver as a module, choose M here: the
211 module will be called cpufreq_conservative.
213 For details, take a look at linux/Documentation/cpu-freq.
217 config CPU_FREQ_GOV_SCHED
218 bool "'sched' cpufreq governor"
220 select CPU_FREQ_GOV_COMMON
222 'sched' - this governor scales cpu frequency from the
223 scheduler as a function of cpu capacity utilization. It does
224 not evaluate utilization on a periodic basis (as ondemand
225 does) but instead is event-driven by the scheduler.
229 comment "CPU frequency scaling drivers"
232 tristate "Generic DT based cpufreq driver"
233 depends on HAVE_CLK && OF
234 # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
235 depends on !CPU_THERMAL || THERMAL
238 This adds a generic DT based cpufreq driver for frequency management.
239 It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
240 systems which share clock and voltage across all CPUs.
245 source "drivers/cpufreq/Kconfig.x86"
249 source "drivers/cpufreq/Kconfig.arm"
253 source "drivers/cpufreq/Kconfig.powerpc"
257 config AVR32_AT32AP_CPUFREQ
258 bool "CPU frequency driver for AT32AP"
259 depends on PLATFORM_AT32AP
262 This enables the CPU frequency driver for AT32AP processors.
267 config IA64_ACPI_CPUFREQ
268 tristate "ACPI Processor P-States driver"
269 depends on ACPI_PROCESSOR
271 This driver adds a CPUFreq driver which utilizes the ACPI
272 Processor Performance States.
274 For details, take a look at <file:Documentation/cpu-freq/>.
280 config LOONGSON2_CPUFREQ
281 tristate "Loongson2 CPUFreq Driver"
283 This option adds a CPUFreq driver for loongson processors which
284 support software configurable cpu frequency.
286 Loongson2F and it's successors support this feature.
288 For details, take a look at <file:Documentation/cpu-freq/>.
292 config LOONGSON1_CPUFREQ
293 tristate "Loongson1 CPUFreq Driver"
295 This option adds a CPUFreq driver for loongson1 processors which
296 support software configurable cpu frequency.
298 For details, take a look at <file:Documentation/cpu-freq/>.
304 config SPARC_US3_CPUFREQ
305 tristate "UltraSPARC-III CPU Frequency driver"
307 This adds the CPUFreq driver for UltraSPARC-III processors.
309 For details, take a look at <file:Documentation/cpu-freq>.
313 config SPARC_US2E_CPUFREQ
314 tristate "UltraSPARC-IIe CPU Frequency driver"
316 This adds the CPUFreq driver for UltraSPARC-IIe processors.
318 For details, take a look at <file:Documentation/cpu-freq>.
325 tristate "SuperH CPU Frequency driver"
327 This adds the cpufreq driver for SuperH. Any CPU that supports
328 clock rate rounding through the clock framework can use this
329 driver. While it will make the kernel slightly larger, this is
330 harmless for CPUs that don't support rate rounding. The driver
331 will also generate a notice in the boot log before disabling
332 itself if the CPU in question is not capable of rate rounding.
334 For details, take a look at <file:Documentation/cpu-freq>.
340 tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
341 depends on OF && COMMON_CLK && (PPC_E500MC || ARM)
344 This adds the CPUFreq driver support for Freescale QorIQ SoCs
345 which are capable of changing the CPU's frequency dynamically.