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>.
23 config CPU_FREQ_GOV_COMMON
27 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
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_SPRDEMAND
117 select CPU_FREQ_GOV_SPRDEMAND
118 select CPU_FREQ_GOV_PERFORMANCE
120 Use the CPUFreq governor 'sprdemand' as default. This allows
121 you to get a full dynamic frequency capable system by simply
122 loading your cpufreq low-level hardware driver.
123 Be aware that not all cpufreq drivers support the ondemand
124 governor. If unsure have a look at the help section of the
125 driver. Fallback governor will be the performance governor.
130 config CPU_FREQ_GOV_PERFORMANCE
131 tristate "'performance' governor"
133 This cpufreq governor sets the frequency statically to the
134 highest available CPU frequency.
136 To compile this driver as a module, choose M here: the
137 module will be called cpufreq_performance.
141 config CPU_FREQ_GOV_POWERSAVE
142 tristate "'powersave' governor"
144 This cpufreq governor sets the frequency statically to the
145 lowest available CPU frequency.
147 To compile this driver as a module, choose M here: the
148 module will be called cpufreq_powersave.
152 config CPU_FREQ_GOV_USERSPACE
153 tristate "'userspace' governor for userspace frequency scaling"
155 Enable this cpufreq governor when you either want to set the
156 CPU frequency manually or when a userspace program shall
157 be able to set the CPU dynamically, like on LART
158 <http://www.lartmaker.nl/>.
160 To compile this driver as a module, choose M here: the
161 module will be called cpufreq_userspace.
163 For details, take a look at <file:Documentation/cpu-freq/>.
167 config CPU_FREQ_GOV_ONDEMAND
168 tristate "'ondemand' cpufreq policy governor"
169 select CPU_FREQ_TABLE
170 select CPU_FREQ_GOV_COMMON
172 'ondemand' - This driver adds a dynamic cpufreq policy governor.
173 The governor does a periodic polling and
174 changes frequency based on the CPU utilization.
175 The support for this governor depends on CPU capability to
176 do fast frequency switching (i.e, very low latency frequency
179 To compile this driver as a module, choose M here: the
180 module will be called cpufreq_ondemand.
182 For details, take a look at linux/Documentation/cpu-freq.
186 config CPU_FREQ_GOV_INTERACTIVE
187 tristate "'interactive' cpufreq policy governor"
190 'interactive' - This driver adds a dynamic cpufreq policy governor
191 designed for latency-sensitive workloads.
193 This governor attempts to reduce the latency of clock
194 increases so that the system is more responsive to
195 interactive workloads.
197 To compile this driver as a module, choose M here: the
198 module will be called cpufreq_interactive.
200 For details, take a look at linux/Documentation/cpu-freq.
204 config CPU_FREQ_GOV_CONSERVATIVE
205 tristate "'conservative' cpufreq governor"
207 select CPU_FREQ_GOV_COMMON
209 'conservative' - this driver is rather similar to the 'ondemand'
210 governor both in its source code and its purpose, the difference is
211 its optimisation for better suitability in a battery powered
212 environment. The frequency is gracefully increased and decreased
213 rather than jumping to 100% when speed is required.
215 If you have a desktop machine then you should really be considering
216 the 'ondemand' governor instead, however if you are using a laptop,
217 PDA or even an AMD64 based computer (due to the unacceptable
218 step-by-step latency issues between the minimum and maximum frequency
219 transitions in the CPU) you will probably want to use this governor.
221 To compile this driver as a module, choose M here: the
222 module will be called cpufreq_conservative.
224 For details, take a look at linux/Documentation/cpu-freq.
228 config CPU_FREQ_GOV_SPRDEMAND
229 tristate "'sprdemand' cpufreq policy governor"
230 select CPU_FREQ_TABLE
231 select CPU_FREQ_GOV_COMMON
233 'sprdemand' - this driver mimics the frequency scaling behavior
234 in 'ondemand', but with some key differences. 'sprdemand' will
235 offline auxillary CPUs when the system is idle, and online those
236 CPUs once the system becomes busy again. This last feature is needed for
237 architectures which transition to low power states when only
238 the "master" CPU is online, or for thermally constrained
241 If you don't have one of these architectures or devices, use
245 bool "USE DVFS ONLY WHEN SPRDEMAND IS ON DUTY"
248 USE DVFS ONLY WHEN SPRDEMAND IS ON DUTY
250 config SPRD_CPUFREQ_DT_DRIVER
251 bool "USE CPUFREQ DT DRIVER ON bL SOC"
254 USE CPUFREQ DT DRIVER INSTEAD of cpufreq-scx35.c on bL SOC
256 config GENERIC_CPUFREQ_CPU0
257 tristate "Generic CPU0 cpufreq driver"
258 depends on HAVE_CLK && REGULATOR && PM_OPP && OF
259 select CPU_FREQ_TABLE
261 This adds a generic cpufreq driver for CPU0 frequency management.
262 It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
263 systems which share clock and voltage across all CPUs.
269 depends on ARCH_SCX35
274 menu "x86 CPU frequency scaling drivers"
276 source "drivers/cpufreq/Kconfig.x86"
279 menu "ARM CPU frequency scaling drivers"
280 depends on ARM || ARM64
281 source "drivers/cpufreq/Kconfig.arm"
284 menu "AVR32 CPU frequency scaling drivers"
287 config AVR32_AT32AP_CPUFREQ
288 bool "CPU frequency driver for AT32AP"
289 depends on PLATFORM_AT32AP
292 This enables the CPU frequency driver for AT32AP processors.
297 menu "CPUFreq processor drivers"
300 config IA64_ACPI_CPUFREQ
301 tristate "ACPI Processor P-States driver"
302 select CPU_FREQ_TABLE
303 depends on ACPI_PROCESSOR
305 This driver adds a CPUFreq driver which utilizes the ACPI
306 Processor Performance States.
308 For details, take a look at <file:Documentation/cpu-freq/>.
314 menu "MIPS CPUFreq processor drivers"
317 config LOONGSON2_CPUFREQ
318 tristate "Loongson2 CPUFreq Driver"
319 select CPU_FREQ_TABLE
321 This option adds a CPUFreq driver for loongson processors which
322 support software configurable cpu frequency.
324 Loongson2F and it's successors support this feature.
326 For details, take a look at <file:Documentation/cpu-freq/>.
332 menu "PowerPC CPU frequency scaling drivers"
333 depends on PPC32 || PPC64
334 source "drivers/cpufreq/Kconfig.powerpc"
337 menu "SPARC CPU frequency scaling drivers"
339 config SPARC_US3_CPUFREQ
340 tristate "UltraSPARC-III CPU Frequency driver"
341 select CPU_FREQ_TABLE
343 This adds the CPUFreq driver for UltraSPARC-III processors.
345 For details, take a look at <file:Documentation/cpu-freq>.
349 config SPARC_US2E_CPUFREQ
350 tristate "UltraSPARC-IIe CPU Frequency driver"
351 select CPU_FREQ_TABLE
353 This adds the CPUFreq driver for UltraSPARC-IIe processors.
355 For details, take a look at <file:Documentation/cpu-freq>.
360 menu "SH CPU Frequency scaling"
363 tristate "SuperH CPU Frequency driver"
364 select CPU_FREQ_TABLE
366 This adds the cpufreq driver for SuperH. Any CPU that supports
367 clock rate rounding through the clock framework can use this
368 driver. While it will make the kernel slightly larger, this is
369 harmless for CPUs that don't support rate rounding. The driver
370 will also generate a notice in the boot log before disabling
371 itself if the CPU in question is not capable of rate rounding.
373 For details, take a look at <file:Documentation/cpu-freq>.