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_ATTR_SET
24 config CPU_FREQ_GOV_COMMON
25 select CPU_FREQ_GOV_ATTR_SET
29 config CPU_FREQ_BOOST_SW
34 bool "CPU frequency transition statistics"
36 Export CPU frequency statistics information through sysfs.
41 prompt "Default CPUFreq governor"
42 default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
43 default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
45 This option sets which CPUFreq governor shall be loaded at
46 startup. If in doubt, select 'performance'.
48 config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
50 select CPU_FREQ_GOV_PERFORMANCE
52 Use the CPUFreq governor 'performance' as default. This sets
53 the frequency statically to the highest frequency supported by
56 config CPU_FREQ_DEFAULT_GOV_POWERSAVE
58 select CPU_FREQ_GOV_POWERSAVE
60 Use the CPUFreq governor 'powersave' as default. This sets
61 the frequency statically to the lowest frequency supported by
64 config CPU_FREQ_DEFAULT_GOV_USERSPACE
66 select CPU_FREQ_GOV_USERSPACE
68 Use the CPUFreq governor 'userspace' as default. This allows
69 you to set the CPU frequency manually or when a userspace
70 program shall be able to set the CPU dynamically without having
71 to enable the userspace governor manually.
73 config CPU_FREQ_DEFAULT_GOV_ONDEMAND
75 select CPU_FREQ_GOV_ONDEMAND
76 select CPU_FREQ_GOV_PERFORMANCE
78 Use the CPUFreq governor 'ondemand' as default. This allows
79 you to get a full dynamic frequency capable system by simply
80 loading your cpufreq low-level hardware driver.
81 Be aware that not all cpufreq drivers support the ondemand
82 governor. If unsure have a look at the help section of the
83 driver. Fallback governor will be the performance governor.
85 config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
87 select CPU_FREQ_GOV_CONSERVATIVE
88 select CPU_FREQ_GOV_PERFORMANCE
90 Use the CPUFreq governor 'conservative' as default. This allows
91 you to get a full dynamic frequency capable system by simply
92 loading your cpufreq low-level hardware driver.
93 Be aware that not all cpufreq drivers support the conservative
94 governor. If unsure have a look at the help section of the
95 driver. Fallback governor will be the performance governor.
97 config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
100 select CPU_FREQ_GOV_SCHEDUTIL
101 select CPU_FREQ_GOV_PERFORMANCE
103 Use the 'schedutil' CPUFreq governor by default. If unsure,
104 have a look at the help section of that governor. The fallback
105 governor will be 'performance'.
109 config CPU_FREQ_GOV_PERFORMANCE
110 tristate "'performance' governor"
112 This cpufreq governor sets the frequency statically to the
113 highest available CPU frequency.
115 To compile this driver as a module, choose M here: the
116 module will be called cpufreq_performance.
120 config CPU_FREQ_GOV_POWERSAVE
121 tristate "'powersave' governor"
123 This cpufreq governor sets the frequency statically to the
124 lowest available CPU frequency.
126 To compile this driver as a module, choose M here: the
127 module will be called cpufreq_powersave.
131 config CPU_FREQ_GOV_USERSPACE
132 tristate "'userspace' governor for userspace frequency scaling"
134 Enable this cpufreq governor when you either want to set the
135 CPU frequency manually or when a userspace program shall
136 be able to set the CPU dynamically, like on LART
137 <http://www.lartmaker.nl/>.
139 To compile this driver as a module, choose M here: the
140 module will be called cpufreq_userspace.
142 For details, take a look at <file:Documentation/cpu-freq/>.
146 config CPU_FREQ_GOV_ONDEMAND
147 tristate "'ondemand' cpufreq policy governor"
148 select CPU_FREQ_GOV_COMMON
150 'ondemand' - This driver adds a dynamic cpufreq policy governor.
151 The governor does a periodic polling and
152 changes frequency based on the CPU utilization.
153 The support for this governor depends on CPU capability to
154 do fast frequency switching (i.e, very low latency frequency
157 To compile this driver as a module, choose M here: the
158 module will be called cpufreq_ondemand.
160 For details, take a look at linux/Documentation/cpu-freq.
164 config CPU_FREQ_GOV_CONSERVATIVE
165 tristate "'conservative' cpufreq governor"
167 select CPU_FREQ_GOV_COMMON
169 'conservative' - this driver is rather similar to the 'ondemand'
170 governor both in its source code and its purpose, the difference is
171 its optimisation for better suitability in a battery powered
172 environment. The frequency is gracefully increased and decreased
173 rather than jumping to 100% when speed is required.
175 If you have a desktop machine then you should really be considering
176 the 'ondemand' governor instead, however if you are using a laptop,
177 PDA or even an AMD64 based computer (due to the unacceptable
178 step-by-step latency issues between the minimum and maximum frequency
179 transitions in the CPU) you will probably want to use this governor.
181 To compile this driver as a module, choose M here: the
182 module will be called cpufreq_conservative.
184 For details, take a look at linux/Documentation/cpu-freq.
188 config CPU_FREQ_GOV_SCHEDUTIL
189 bool "'schedutil' cpufreq policy governor"
190 depends on CPU_FREQ && SMP
191 select CPU_FREQ_GOV_ATTR_SET
194 This governor makes decisions based on the utilization data provided
195 by the scheduler. It sets the CPU frequency to be proportional to
196 the utilization/capacity ratio coming from the scheduler. If the
197 utilization is frequency-invariant, the new frequency is also
198 proportional to the maximum available frequency. If that is not the
199 case, it is proportional to the current frequency of the CPU. The
200 frequency tipping point is at utilization/capacity equal to 80% in
205 comment "CPU frequency scaling drivers"
208 tristate "Generic DT based cpufreq driver"
209 depends on HAVE_CLK && OF
210 # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
211 depends on !CPU_THERMAL || THERMAL
212 select CPUFREQ_DT_PLATDEV
215 This adds a generic DT based cpufreq driver for frequency management.
216 It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
221 config CPUFREQ_DT_PLATDEV
224 This adds a generic DT based cpufreq platdev driver for frequency
225 management. This creates a 'cpufreq-dt' platform device, on the
231 source "drivers/cpufreq/Kconfig.x86"
235 source "drivers/cpufreq/Kconfig.arm"
239 source "drivers/cpufreq/Kconfig.powerpc"
243 config AVR32_AT32AP_CPUFREQ
244 bool "CPU frequency driver for AT32AP"
245 depends on PLATFORM_AT32AP
248 This enables the CPU frequency driver for AT32AP processors.
253 config IA64_ACPI_CPUFREQ
254 tristate "ACPI Processor P-States driver"
255 depends on ACPI_PROCESSOR
257 This driver adds a CPUFreq driver which utilizes the ACPI
258 Processor Performance States.
260 For details, take a look at <file:Documentation/cpu-freq/>.
267 tristate "BMIPS CPUfreq Driver"
269 This option adds a CPUfreq driver for BMIPS processors with
270 support for configurable CPU frequency.
272 For now, BMIPS5 chips are supported (such as the Broadcom 7425).
276 config LOONGSON2_CPUFREQ
277 tristate "Loongson2 CPUFreq Driver"
279 This option adds a CPUFreq driver for loongson processors which
280 support software configurable cpu frequency.
282 Loongson2F and it's successors support this feature.
284 For details, take a look at <file:Documentation/cpu-freq/>.
288 config LOONGSON1_CPUFREQ
289 tristate "Loongson1 CPUFreq Driver"
291 This option adds a CPUFreq driver for loongson1 processors which
292 support software configurable cpu frequency.
294 For details, take a look at <file:Documentation/cpu-freq/>.
300 config SPARC_US3_CPUFREQ
301 tristate "UltraSPARC-III CPU Frequency driver"
303 This adds the CPUFreq driver for UltraSPARC-III processors.
305 For details, take a look at <file:Documentation/cpu-freq>.
309 config SPARC_US2E_CPUFREQ
310 tristate "UltraSPARC-IIe CPU Frequency driver"
312 This adds the CPUFreq driver for UltraSPARC-IIe processors.
314 For details, take a look at <file:Documentation/cpu-freq>.
321 tristate "SuperH CPU Frequency driver"
323 This adds the cpufreq driver for SuperH. Any CPU that supports
324 clock rate rounding through the clock framework can use this
325 driver. While it will make the kernel slightly larger, this is
326 harmless for CPUs that don't support rate rounding. The driver
327 will also generate a notice in the boot log before disabling
328 itself if the CPU in question is not capable of rate rounding.
330 For details, take a look at <file:Documentation/cpu-freq>.
336 tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
337 depends on OF && COMMON_CLK && (PPC_E500MC || ARM || ARM64)
338 depends on !CPU_THERMAL || THERMAL
341 This adds the CPUFreq driver support for Freescale QorIQ SoCs
342 which are capable of changing the CPU's frequency dynamically.