PM / devfreq: Add basic governors
[linux-2.6.git] / drivers / devfreq / Kconfig
1 config ARCH_HAS_DEVFREQ
2         bool
3         depends on ARCH_HAS_OPP
4         help
5           Denotes that the architecture supports DEVFREQ. If the architecture
6           supports multiple OPP entries per device and the frequency of the
7           devices with OPPs may be altered dynamically, the architecture
8           supports DEVFREQ.
9
10 menuconfig PM_DEVFREQ
11         bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support"
12         depends on PM_OPP && ARCH_HAS_DEVFREQ
13         help
14           With OPP support, a device may have a list of frequencies and
15           voltages available. DEVFREQ, a generic DVFS framework can be
16           registered for a device with OPP support in order to let the
17           governor provided to DEVFREQ choose an operating frequency
18           based on the OPP's list and the policy given with DEVFREQ.
19
20           Each device may have its own governor and policy. DEVFREQ can
21           reevaluate the device state periodically and/or based on the
22           OPP list changes (each frequency/voltage pair in OPP may be
23           disabled or enabled).
24
25           Like some CPUs with CPUFREQ, a device may have multiple clocks.
26           However, because the clock frequencies of a single device are
27           determined by the single device's state, an instance of DEVFREQ
28           is attached to a single device and returns a "representative"
29           clock frequency from the OPP of the device, which is also attached
30           to a device by 1-to-1. The device registering DEVFREQ takes the
31           responsiblity to "interpret" the frequency listed in OPP and
32           to set its every clock accordingly with the "target" callback
33           given to DEVFREQ.
34
35 if PM_DEVFREQ
36
37 comment "DEVFREQ Governors"
38
39 config DEVFREQ_GOV_SIMPLE_ONDEMAND
40         bool "Simple Ondemand"
41         help
42           Chooses frequency based on the recent load on the device. Works
43           similar as ONDEMAND governor of CPUFREQ does. A device with
44           Simple-Ondemand should be able to provide busy/total counter
45           values that imply the usage rate. A device may provide tuned
46           values to the governor with data field at devfreq_add_device().
47
48 config DEVFREQ_GOV_PERFORMANCE
49         bool "Performance"
50         help
51           Sets the frequency at the maximum available frequency.
52           This governor always returns UINT_MAX as frequency so that
53           the DEVFREQ framework returns the highest frequency available
54           at any time.
55
56 config DEVFREQ_GOV_POWERSAVE
57         bool "Powersave"
58         help
59           Sets the frequency at the minimum available frequency.
60           This governor always returns 0 as frequency so that
61           the DEVFREQ framework returns the lowest frequency available
62           at any time.
63
64 config DEVFREQ_GOV_USERSPACE
65         bool "Userspace"
66         help
67           Sets the frequency at the user specified one.
68           This governor returns the user configured frequency if there
69           has been an input to /sys/devices/.../power/devfreq_set_freq.
70           Otherwise, the governor does not change the frequnecy
71           given at the initialization.
72
73 comment "DEVFREQ Drivers"
74
75 endif # PM_DEVFREQ