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 bool "CPU frequency time-in-state statistics"
43 Export CPU time-in-state information through procfs.
48 prompt "Default CPUFreq governor"
49 default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1100_CPUFREQ || ARM_SA1110_CPUFREQ
50 default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
52 This option sets which CPUFreq governor shall be loaded at
53 startup. If in doubt, select 'performance'.
55 config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
57 select CPU_FREQ_GOV_PERFORMANCE
59 Use the CPUFreq governor 'performance' as default. This sets
60 the frequency statically to the highest frequency supported by
63 config CPU_FREQ_DEFAULT_GOV_POWERSAVE
65 select CPU_FREQ_GOV_POWERSAVE
67 Use the CPUFreq governor 'powersave' as default. This sets
68 the frequency statically to the lowest frequency supported by
71 config CPU_FREQ_DEFAULT_GOV_USERSPACE
73 select CPU_FREQ_GOV_USERSPACE
75 Use the CPUFreq governor 'userspace' as default. This allows
76 you to set the CPU frequency manually or when a userspace
77 program shall be able to set the CPU dynamically without having
78 to enable the userspace governor manually.
80 config CPU_FREQ_DEFAULT_GOV_ONDEMAND
82 select CPU_FREQ_GOV_ONDEMAND
83 select CPU_FREQ_GOV_PERFORMANCE
85 Use the CPUFreq governor 'ondemand' as default. This allows
86 you to get a full dynamic frequency capable system by simply
87 loading your cpufreq low-level hardware driver.
88 Be aware that not all cpufreq drivers support the ondemand
89 governor. If unsure have a look at the help section of the
90 driver. Fallback governor will be the performance governor.
92 config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
94 select CPU_FREQ_GOV_CONSERVATIVE
95 select CPU_FREQ_GOV_PERFORMANCE
97 Use the CPUFreq governor 'conservative' as default. This allows
98 you to get a full dynamic frequency capable system by simply
99 loading your cpufreq low-level hardware driver.
100 Be aware that not all cpufreq drivers support the conservative
101 governor. If unsure have a look at the help section of the
102 driver. Fallback governor will be the performance governor.
104 config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
107 select CPU_FREQ_GOV_SCHEDUTIL
109 Use the 'schedutil' CPUFreq governor by default. If unsure,
110 have a look at the help section of that governor. The fallback
111 governor will be 'performance'.
115 config CPU_FREQ_GOV_PERFORMANCE
116 tristate "'performance' governor"
118 This cpufreq governor sets the frequency statically to the
119 highest available CPU frequency.
121 To compile this driver as a module, choose M here: the
122 module will be called cpufreq_performance.
126 config CPU_FREQ_GOV_POWERSAVE
127 tristate "'powersave' governor"
129 This cpufreq governor sets the frequency statically to the
130 lowest available CPU frequency.
132 To compile this driver as a module, choose M here: the
133 module will be called cpufreq_powersave.
137 config CPU_FREQ_GOV_USERSPACE
138 tristate "'userspace' governor for userspace frequency scaling"
140 Enable this cpufreq governor when you either want to set the
141 CPU frequency manually or when a userspace program shall
142 be able to set the CPU dynamically, like on LART
143 <http://www.lartmaker.nl/>.
145 To compile this driver as a module, choose M here: the
146 module will be called cpufreq_userspace.
148 For details, take a look at <file:Documentation/cpu-freq/>.
152 config CPU_FREQ_GOV_ONDEMAND
153 tristate "'ondemand' cpufreq policy governor"
154 select CPU_FREQ_GOV_COMMON
156 'ondemand' - This driver adds a dynamic cpufreq policy governor.
157 The governor does a periodic polling and
158 changes frequency based on the CPU utilization.
159 The support for this governor depends on CPU capability to
160 do fast frequency switching (i.e, very low latency frequency
163 To compile this driver as a module, choose M here: the
164 module will be called cpufreq_ondemand.
166 For details, take a look at linux/Documentation/cpu-freq.
170 config CPU_FREQ_GOV_CONSERVATIVE
171 tristate "'conservative' cpufreq governor"
173 select CPU_FREQ_GOV_COMMON
175 'conservative' - this driver is rather similar to the 'ondemand'
176 governor both in its source code and its purpose, the difference is
177 its optimisation for better suitability in a battery powered
178 environment. The frequency is gracefully increased and decreased
179 rather than jumping to 100% when speed is required.
181 If you have a desktop machine then you should really be considering
182 the 'ondemand' governor instead, however if you are using a laptop,
183 PDA or even an AMD64 based computer (due to the unacceptable
184 step-by-step latency issues between the minimum and maximum frequency
185 transitions in the CPU) you will probably want to use this governor.
187 To compile this driver as a module, choose M here: the
188 module will be called cpufreq_conservative.
190 For details, take a look at linux/Documentation/cpu-freq.
194 config CPU_FREQ_GOV_SCHEDUTIL
195 bool "'schedutil' cpufreq policy governor"
196 depends on CPU_FREQ && SMP
197 select CPU_FREQ_GOV_ATTR_SET
200 This governor makes decisions based on the utilization data provided
201 by the scheduler. It sets the CPU frequency to be proportional to
202 the utilization/capacity ratio coming from the scheduler. If the
203 utilization is frequency-invariant, the new frequency is also
204 proportional to the maximum available frequency. If that is not the
205 case, it is proportional to the current frequency of the CPU. The
206 frequency tipping point is at utilization/capacity equal to 80% in
212 bool "CPU frequency variant tuner"
213 depends on SCHED_EMS && CPU_FREQ_GOV_SCHEDUTIL
215 This option provides the controller which tunes system performance
216 as frequency variant.
220 comment "CPU frequency scaling drivers"
223 tristate "Generic DT based cpufreq driver"
224 depends on HAVE_CLK && OF
225 # if CPU_THERMAL is on and THERMAL=m, CPUFREQ_DT cannot be =y:
226 depends on !CPU_THERMAL || THERMAL
227 select CPUFREQ_DT_PLATDEV
230 This adds a generic DT based cpufreq driver for frequency management.
231 It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
236 config CPUFREQ_DT_PLATDEV
239 This adds a generic DT based cpufreq platdev driver for frequency
240 management. This creates a 'cpufreq-dt' platform device, on the
246 source "drivers/cpufreq/Kconfig.x86"
250 source "drivers/cpufreq/Kconfig.arm"
254 source "drivers/cpufreq/Kconfig.powerpc"
258 config AVR32_AT32AP_CPUFREQ
259 bool "CPU frequency driver for AT32AP"
260 depends on PLATFORM_AT32AP
263 This enables the CPU frequency driver for AT32AP processors.
268 config IA64_ACPI_CPUFREQ
269 tristate "ACPI Processor P-States driver"
270 depends on ACPI_PROCESSOR
272 This driver adds a CPUFreq driver which utilizes the ACPI
273 Processor Performance States.
275 For details, take a look at <file:Documentation/cpu-freq/>.
282 tristate "BMIPS CPUfreq Driver"
284 This option adds a CPUfreq driver for BMIPS processors with
285 support for configurable CPU frequency.
287 For now, BMIPS5 chips are supported (such as the Broadcom 7425).
291 config LOONGSON2_CPUFREQ
292 tristate "Loongson2 CPUFreq Driver"
293 depends on LEMOTE_MACH2F
295 This option adds a CPUFreq driver for loongson processors which
296 support software configurable cpu frequency.
298 Loongson2F and it's successors support this feature.
300 For details, take a look at <file:Documentation/cpu-freq/>.
304 config LOONGSON1_CPUFREQ
305 tristate "Loongson1 CPUFreq Driver"
306 depends on LOONGSON1_LS1B
308 This option adds a CPUFreq driver for loongson1 processors which
309 support software configurable cpu frequency.
311 For details, take a look at <file:Documentation/cpu-freq/>.
317 config SPARC_US3_CPUFREQ
318 tristate "UltraSPARC-III CPU Frequency driver"
320 This adds the CPUFreq driver for UltraSPARC-III processors.
322 For details, take a look at <file:Documentation/cpu-freq>.
326 config SPARC_US2E_CPUFREQ
327 tristate "UltraSPARC-IIe CPU Frequency driver"
329 This adds the CPUFreq driver for UltraSPARC-IIe processors.
331 For details, take a look at <file:Documentation/cpu-freq>.
338 tristate "SuperH CPU Frequency driver"
340 This adds the cpufreq driver for SuperH. Any CPU that supports
341 clock rate rounding through the clock framework can use this
342 driver. While it will make the kernel slightly larger, this is
343 harmless for CPUs that don't support rate rounding. The driver
344 will also generate a notice in the boot log before disabling
345 itself if the CPU in question is not capable of rate rounding.
347 For details, take a look at <file:Documentation/cpu-freq>.
353 tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
354 depends on OF && COMMON_CLK && (PPC_E500MC || ARM || ARM64)
355 depends on !CPU_THERMAL || THERMAL
358 This adds the CPUFreq driver support for Freescale QorIQ SoCs
359 which are capable of changing the CPU's frequency dynamically.
361 comment "P-state Boost Solutions"
364 prompt "P-state Boost Solution"
365 default EXYNOS_PSTATE_DISABLE
366 depends on ARCH_EXYNOS
369 Default status of P-state boost is disable.
371 config EXYNOS_PSTATE_DISABLE
374 This option sets P-state boost solution as disable.
375 If in doubt, set this config.
377 config EXYNOS_PSTATE_HAFM
380 This option sets P-state boost solution as HAFM.
381 The config makes HIU just deliver frequency level and power budget
382 given from CPUFreq driver and register set.
384 config EXYNOS_PSTATE_HAFM_TB
385 bool "Exynos HAFM-TB"
387 This option sets P-state boost solution as HAFM-TB.
389 config EXYNOS_PSTATE_MODE_CHANGER
390 bool "Exynos Mode Changer"
391 depends on HOTPLUG_CPU
393 This option sets P-state boost solution as EMC.