1 menu "CPU Frequency scaling"
4 bool "CPU Frequency scaling"
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.
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.
14 For details, take a look at <file:Documentation/cpu-freq>.
20 config CPU_FREQ_GOV_COMMON
23 config CPU_FREQ_BOOST_SW
28 tristate "CPU frequency translation statistics"
31 This driver exports CPU frequency statistics information through sysfs
34 To compile this driver as a module, choose M here: the
35 module will be called cpufreq_stats.
39 config CPU_FREQ_STAT_DETAILS
40 bool "CPU frequency translation statistics details"
41 depends on CPU_FREQ_STAT
43 This will show detail CPU frequency translation table in sysfs file
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
53 This option sets which CPUFreq governor shall be loaded at
54 startup. If in doubt, select 'performance'.
56 config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
58 select CPU_FREQ_GOV_PERFORMANCE
60 Use the CPUFreq governor 'performance' as default. This sets
61 the frequency statically to the highest frequency supported by
64 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
109 select CPU_FREQ_GOV_PERFORMANCE
111 Use the CPUFreq governor 'interactive' as default. This allows
112 you to get a full dynamic cpu frequency capable system by simply
113 loading your cpufreq low-level hardware driver, using the
114 'interactive' governor for latency-sensitive workloads. Fallback
115 governor will be the performance governor.
119 config CPU_FREQ_GOV_PERFORMANCE
120 tristate "'performance' governor"
122 This cpufreq governor sets the frequency statically to the
123 highest available CPU frequency.
125 To compile this driver as a module, choose M here: the
126 module will be called cpufreq_performance.
130 config CPU_FREQ_GOV_POWERSAVE
131 tristate "'powersave' governor"
133 This cpufreq governor sets the frequency statically to the
134 lowest available CPU frequency.
136 To compile this driver as a module, choose M here: the
137 module will be called cpufreq_powersave.
141 config CPU_FREQ_GOV_USERSPACE
142 tristate "'userspace' governor for userspace frequency scaling"
144 Enable this cpufreq governor when you either want to set the
145 CPU frequency manually or when a userspace program shall
146 be able to set the CPU dynamically, like on LART
147 <http://www.lartmaker.nl/>.
149 To compile this driver as a module, choose M here: the
150 module will be called cpufreq_userspace.
152 For details, take a look at <file:Documentation/cpu-freq/>.
156 config CPU_FREQ_GOV_ONDEMAND
157 tristate "'ondemand' cpufreq policy governor"
158 select CPU_FREQ_GOV_COMMON
160 'ondemand' - This driver adds a dynamic cpufreq policy governor.
161 The governor does a periodic polling and
162 changes frequency based on the CPU utilization.
163 The support for this governor depends on CPU capability to
164 do fast frequency switching (i.e, very low latency frequency
167 To compile this driver as a module, choose M here: the
168 module will be called cpufreq_ondemand.
170 For details, take a look at linux/Documentation/cpu-freq.
174 config CPU_FREQ_GOV_CONSERVATIVE
175 tristate "'conservative' cpufreq governor"
177 select CPU_FREQ_GOV_COMMON
179 'conservative' - this driver is rather similar to the 'ondemand'
180 governor both in its source code and its purpose, the difference is
181 its optimisation for better suitability in a battery powered
182 environment. The frequency is gracefully increased and decreased
183 rather than jumping to 100% when speed is required.
185 If you have a desktop machine then you should really be considering
186 the 'ondemand' governor instead, however if you are using a laptop,
187 PDA or even an AMD64 based computer (due to the unacceptable
188 step-by-step latency issues between the minimum and maximum frequency
189 transitions in the CPU) you will probably want to use this governor.
191 To compile this driver as a module, choose M here: the
192 module will be called cpufreq_conservative.
194 For details, take a look at linux/Documentation/cpu-freq.
198 config CPU_FREQ_GOV_INTERACTIVE
199 tristate "'interactive' cpufreq policy governor"
201 'interactive' - This driver adds a dynamic cpufreq policy governor
202 designed for latency-sensitive workloads.
204 This governor attempts to reduce the latency of clock
205 increases so that the system is more responsive to
206 interactive workloads.
208 To compile this driver as a module, choose M here: the
209 module will be called cpufreq_interactive.
211 For details, take a look at linux/Documentation/cpu-freq.
215 config GENERIC_CPUFREQ_CPU0
216 tristate "Generic CPU0 cpufreq driver"
217 depends on HAVE_CLK && OF
218 # if CPU_THERMAL is on and THERMAL=m, CPU0 cannot be =y:
219 depends on !CPU_THERMAL || THERMAL
222 This adds a generic cpufreq driver for CPU0 frequency management.
223 It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
224 systems which share clock and voltage across all CPUs.
228 menu "x86 CPU frequency scaling drivers"
230 source "drivers/cpufreq/Kconfig.x86"
233 menu "ARM CPU frequency scaling drivers"
234 depends on ARM || ARM64
235 source "drivers/cpufreq/Kconfig.arm"
238 menu "AVR32 CPU frequency scaling drivers"
241 config AVR32_AT32AP_CPUFREQ
242 bool "CPU frequency driver for AT32AP"
243 depends on PLATFORM_AT32AP
246 This enables the CPU frequency driver for AT32AP processors.
251 menu "CPUFreq processor drivers"
254 config IA64_ACPI_CPUFREQ
255 tristate "ACPI Processor P-States driver"
256 depends on ACPI_PROCESSOR
258 This driver adds a CPUFreq driver which utilizes the ACPI
259 Processor Performance States.
261 For details, take a look at <file:Documentation/cpu-freq/>.
267 menu "MIPS CPUFreq processor drivers"
270 config LOONGSON2_CPUFREQ
271 tristate "Loongson2 CPUFreq Driver"
273 This option adds a CPUFreq driver for loongson processors which
274 support software configurable cpu frequency.
276 Loongson2F and it's successors support this feature.
278 For details, take a look at <file:Documentation/cpu-freq/>.
284 menu "PowerPC CPU frequency scaling drivers"
285 depends on PPC32 || PPC64
286 source "drivers/cpufreq/Kconfig.powerpc"
289 menu "SPARC CPU frequency scaling drivers"
291 config SPARC_US3_CPUFREQ
292 tristate "UltraSPARC-III CPU Frequency driver"
294 This adds the CPUFreq driver for UltraSPARC-III processors.
296 For details, take a look at <file:Documentation/cpu-freq>.
300 config SPARC_US2E_CPUFREQ
301 tristate "UltraSPARC-IIe CPU Frequency driver"
303 This adds the CPUFreq driver for UltraSPARC-IIe processors.
305 For details, take a look at <file:Documentation/cpu-freq>.
310 menu "SH CPU Frequency scaling"
313 tristate "SuperH CPU Frequency driver"
315 This adds the cpufreq driver for SuperH. Any CPU that supports
316 clock rate rounding through the clock framework can use this
317 driver. While it will make the kernel slightly larger, this is
318 harmless for CPUs that don't support rate rounding. The driver
319 will also generate a notice in the boot log before disabling
320 itself if the CPU in question is not capable of rate rounding.
322 For details, take a look at <file:Documentation/cpu-freq>.