| MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 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 |  | 
| MyungJoo Ham | ce26c5b | 2011-10-02 00:19:34 +0200 | [diff] [blame] | 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 |  | 
| MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 73 | comment "DEVFREQ Drivers" | 
|  | 74 |  | 
|  | 75 | endif # PM_DEVFREQ |