mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 19:01:37 +00:00
95ceafd463
It adds a generic cpufreq driver for CPU0 frequency management based on clk, regulator, OPP and device tree support. It can support both uniprocessor (UP) and those symmetric multiprocessor (SMP) systems which share clock and voltage across all CPUs. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Tested-by: AnilKumar Ch <anilkumar@ti.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
210 lines
6.5 KiB
Plaintext
210 lines
6.5 KiB
Plaintext
menu "CPU Frequency scaling"
|
|
|
|
config CPU_FREQ
|
|
bool "CPU Frequency scaling"
|
|
help
|
|
CPU Frequency scaling allows you to change the clock speed of
|
|
CPUs on the fly. This is a nice method to save power, because
|
|
the lower the CPU clock speed, the less power the CPU consumes.
|
|
|
|
Note that this driver doesn't automatically change the CPU
|
|
clock speed, you need to either enable a dynamic cpufreq governor
|
|
(see below) after boot, or use a userspace tool.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq>.
|
|
|
|
If in doubt, say N.
|
|
|
|
if CPU_FREQ
|
|
|
|
config CPU_FREQ_TABLE
|
|
tristate
|
|
|
|
config CPU_FREQ_STAT
|
|
tristate "CPU frequency translation statistics"
|
|
select CPU_FREQ_TABLE
|
|
default y
|
|
help
|
|
This driver exports CPU frequency statistics information through sysfs
|
|
file system.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called cpufreq_stats.
|
|
|
|
If in doubt, say N.
|
|
|
|
config CPU_FREQ_STAT_DETAILS
|
|
bool "CPU frequency translation statistics details"
|
|
depends on CPU_FREQ_STAT
|
|
help
|
|
This will show detail CPU frequency translation table in sysfs file
|
|
system.
|
|
|
|
If in doubt, say N.
|
|
|
|
choice
|
|
prompt "Default CPUFreq governor"
|
|
default CPU_FREQ_DEFAULT_GOV_USERSPACE if CPU_FREQ_SA1100 || CPU_FREQ_SA1110
|
|
default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
|
|
help
|
|
This option sets which CPUFreq governor shall be loaded at
|
|
startup. If in doubt, select 'performance'.
|
|
|
|
config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
|
|
bool "performance"
|
|
select CPU_FREQ_GOV_PERFORMANCE
|
|
help
|
|
Use the CPUFreq governor 'performance' as default. This sets
|
|
the frequency statically to the highest frequency supported by
|
|
the CPU.
|
|
|
|
config CPU_FREQ_DEFAULT_GOV_POWERSAVE
|
|
bool "powersave"
|
|
depends on EXPERT
|
|
select CPU_FREQ_GOV_POWERSAVE
|
|
help
|
|
Use the CPUFreq governor 'powersave' as default. This sets
|
|
the frequency statically to the lowest frequency supported by
|
|
the CPU.
|
|
|
|
config CPU_FREQ_DEFAULT_GOV_USERSPACE
|
|
bool "userspace"
|
|
select CPU_FREQ_GOV_USERSPACE
|
|
help
|
|
Use the CPUFreq governor 'userspace' as default. This allows
|
|
you to set the CPU frequency manually or when a userspace
|
|
program shall be able to set the CPU dynamically without having
|
|
to enable the userspace governor manually.
|
|
|
|
config CPU_FREQ_DEFAULT_GOV_ONDEMAND
|
|
bool "ondemand"
|
|
select CPU_FREQ_GOV_ONDEMAND
|
|
select CPU_FREQ_GOV_PERFORMANCE
|
|
help
|
|
Use the CPUFreq governor 'ondemand' as default. This allows
|
|
you to get a full dynamic frequency capable system by simply
|
|
loading your cpufreq low-level hardware driver.
|
|
Be aware that not all cpufreq drivers support the ondemand
|
|
governor. If unsure have a look at the help section of the
|
|
driver. Fallback governor will be the performance governor.
|
|
|
|
config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
|
|
bool "conservative"
|
|
select CPU_FREQ_GOV_CONSERVATIVE
|
|
select CPU_FREQ_GOV_PERFORMANCE
|
|
help
|
|
Use the CPUFreq governor 'conservative' as default. This allows
|
|
you to get a full dynamic frequency capable system by simply
|
|
loading your cpufreq low-level hardware driver.
|
|
Be aware that not all cpufreq drivers support the conservative
|
|
governor. If unsure have a look at the help section of the
|
|
driver. Fallback governor will be the performance governor.
|
|
endchoice
|
|
|
|
config CPU_FREQ_GOV_PERFORMANCE
|
|
tristate "'performance' governor"
|
|
help
|
|
This cpufreq governor sets the frequency statically to the
|
|
highest available CPU frequency.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called cpufreq_performance.
|
|
|
|
If in doubt, say Y.
|
|
|
|
config CPU_FREQ_GOV_POWERSAVE
|
|
tristate "'powersave' governor"
|
|
help
|
|
This cpufreq governor sets the frequency statically to the
|
|
lowest available CPU frequency.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called cpufreq_powersave.
|
|
|
|
If in doubt, say Y.
|
|
|
|
config CPU_FREQ_GOV_USERSPACE
|
|
tristate "'userspace' governor for userspace frequency scaling"
|
|
help
|
|
Enable this cpufreq governor when you either want to set the
|
|
CPU frequency manually or when a userspace program shall
|
|
be able to set the CPU dynamically, like on LART
|
|
<http://www.lartmaker.nl/>.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called cpufreq_userspace.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say Y.
|
|
|
|
config CPU_FREQ_GOV_ONDEMAND
|
|
tristate "'ondemand' cpufreq policy governor"
|
|
select CPU_FREQ_TABLE
|
|
help
|
|
'ondemand' - This driver adds a dynamic cpufreq policy governor.
|
|
The governor does a periodic polling and
|
|
changes frequency based on the CPU utilization.
|
|
The support for this governor depends on CPU capability to
|
|
do fast frequency switching (i.e, very low latency frequency
|
|
transitions).
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called cpufreq_ondemand.
|
|
|
|
For details, take a look at linux/Documentation/cpu-freq.
|
|
|
|
If in doubt, say N.
|
|
|
|
config CPU_FREQ_GOV_CONSERVATIVE
|
|
tristate "'conservative' cpufreq governor"
|
|
depends on CPU_FREQ
|
|
help
|
|
'conservative' - this driver is rather similar to the 'ondemand'
|
|
governor both in its source code and its purpose, the difference is
|
|
its optimisation for better suitability in a battery powered
|
|
environment. The frequency is gracefully increased and decreased
|
|
rather than jumping to 100% when speed is required.
|
|
|
|
If you have a desktop machine then you should really be considering
|
|
the 'ondemand' governor instead, however if you are using a laptop,
|
|
PDA or even an AMD64 based computer (due to the unacceptable
|
|
step-by-step latency issues between the minimum and maximum frequency
|
|
transitions in the CPU) you will probably want to use this governor.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called cpufreq_conservative.
|
|
|
|
For details, take a look at linux/Documentation/cpu-freq.
|
|
|
|
If in doubt, say N.
|
|
|
|
config GENERIC_CPUFREQ_CPU0
|
|
bool "Generic CPU0 cpufreq driver"
|
|
depends on HAVE_CLK && REGULATOR && PM_OPP && OF
|
|
select CPU_FREQ_TABLE
|
|
help
|
|
This adds a generic cpufreq driver for CPU0 frequency management.
|
|
It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)
|
|
systems which share clock and voltage across all CPUs.
|
|
|
|
If in doubt, say N.
|
|
|
|
menu "x86 CPU frequency scaling drivers"
|
|
depends on X86
|
|
source "drivers/cpufreq/Kconfig.x86"
|
|
endmenu
|
|
|
|
menu "ARM CPU frequency scaling drivers"
|
|
depends on ARM
|
|
source "drivers/cpufreq/Kconfig.arm"
|
|
endmenu
|
|
|
|
menu "PowerPC CPU frequency scaling drivers"
|
|
depends on PPC32 || PPC64
|
|
source "drivers/cpufreq/Kconfig.powerpc"
|
|
endmenu
|
|
|
|
endif
|
|
endmenu
|