MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 1 | menuconfig PM_DEVFREQ |
| 2 | bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support" |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 3 | help |
MyungJoo Ham | 6c81f90 | 2011-11-14 23:31:35 +0100 | [diff] [blame] | 4 | A device may have a list of frequencies and voltages available. |
| 5 | devfreq, a generic DVFS framework can be registered for a device |
| 6 | in order to let the governor provided to devfreq choose an |
| 7 | operating frequency based on the device driver's policy. |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 8 | |
MyungJoo Ham | 6c81f90 | 2011-11-14 23:31:35 +0100 | [diff] [blame] | 9 | Each device may have its own governor and policy. Devfreq can |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 10 | reevaluate the device state periodically and/or based on the |
MyungJoo Ham | 6c81f90 | 2011-11-14 23:31:35 +0100 | [diff] [blame] | 11 | notification to "nb", a notifier block, of devfreq. |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 12 | |
MyungJoo Ham | 6c81f90 | 2011-11-14 23:31:35 +0100 | [diff] [blame] | 13 | Like some CPUs with CPUfreq, a device may have multiple clocks. |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 14 | However, because the clock frequencies of a single device are |
MyungJoo Ham | 6c81f90 | 2011-11-14 23:31:35 +0100 | [diff] [blame] | 15 | determined by the single device's state, an instance of devfreq |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 16 | is attached to a single device and returns a "representative" |
MyungJoo Ham | 6c81f90 | 2011-11-14 23:31:35 +0100 | [diff] [blame] | 17 | clock frequency of the device, which is also attached |
| 18 | to a device by 1-to-1. The device registering devfreq takes the |
| 19 | responsiblity to "interpret" the representative frequency and |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 20 | to set its every clock accordingly with the "target" callback |
MyungJoo Ham | 6c81f90 | 2011-11-14 23:31:35 +0100 | [diff] [blame] | 21 | given to devfreq. |
| 22 | |
| 23 | When OPP is used with the devfreq device, it is recommended to |
| 24 | register devfreq's nb to the OPP's notifier head. If OPP is |
| 25 | used with the devfreq device, you may use OPP helper |
| 26 | functions defined in devfreq.h. |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 27 | |
| 28 | if PM_DEVFREQ |
| 29 | |
MyungJoo Ham | ce26c5b | 2011-10-02 00:19:34 +0200 | [diff] [blame] | 30 | comment "DEVFREQ Governors" |
| 31 | |
| 32 | config DEVFREQ_GOV_SIMPLE_ONDEMAND |
Nishanth Menon | dd556fa | 2012-10-29 15:01:46 -0500 | [diff] [blame] | 33 | tristate "Simple Ondemand" |
MyungJoo Ham | ce26c5b | 2011-10-02 00:19:34 +0200 | [diff] [blame] | 34 | help |
| 35 | Chooses frequency based on the recent load on the device. Works |
| 36 | similar as ONDEMAND governor of CPUFREQ does. A device with |
| 37 | Simple-Ondemand should be able to provide busy/total counter |
| 38 | values that imply the usage rate. A device may provide tuned |
| 39 | values to the governor with data field at devfreq_add_device(). |
| 40 | |
| 41 | config DEVFREQ_GOV_PERFORMANCE |
Nishanth Menon | dd556fa | 2012-10-29 15:01:46 -0500 | [diff] [blame] | 42 | tristate "Performance" |
MyungJoo Ham | ce26c5b | 2011-10-02 00:19:34 +0200 | [diff] [blame] | 43 | help |
| 44 | Sets the frequency at the maximum available frequency. |
| 45 | This governor always returns UINT_MAX as frequency so that |
| 46 | the DEVFREQ framework returns the highest frequency available |
| 47 | at any time. |
| 48 | |
| 49 | config DEVFREQ_GOV_POWERSAVE |
Nishanth Menon | dd556fa | 2012-10-29 15:01:46 -0500 | [diff] [blame] | 50 | tristate "Powersave" |
MyungJoo Ham | ce26c5b | 2011-10-02 00:19:34 +0200 | [diff] [blame] | 51 | help |
| 52 | Sets the frequency at the minimum available frequency. |
| 53 | This governor always returns 0 as frequency so that |
| 54 | the DEVFREQ framework returns the lowest frequency available |
| 55 | at any time. |
| 56 | |
| 57 | config DEVFREQ_GOV_USERSPACE |
Nishanth Menon | dd556fa | 2012-10-29 15:01:46 -0500 | [diff] [blame] | 58 | tristate "Userspace" |
MyungJoo Ham | ce26c5b | 2011-10-02 00:19:34 +0200 | [diff] [blame] | 59 | help |
| 60 | Sets the frequency at the user specified one. |
| 61 | This governor returns the user configured frequency if there |
| 62 | has been an input to /sys/devices/.../power/devfreq_set_freq. |
| 63 | Otherwise, the governor does not change the frequnecy |
| 64 | given at the initialization. |
| 65 | |
Jeremy Gebben | dfd2ca7 | 2013-03-13 13:54:15 -0600 | [diff] [blame] | 66 | config DEVFREQ_GOV_MSM_ADRENO_TZ |
| 67 | tristate "MSM Adreno Trustzone" |
| 68 | depends on MSM_KGSL && MSM_SCM |
| 69 | help |
| 70 | Trustzone based governor for the Adreno GPU. |
| 71 | Sets the frequency using a "on-demand" algorithm. |
| 72 | This governor is unlikely to be useful for other devices. |
| 73 | |
Saravana Kannan | 4bbc993 | 2013-11-24 03:45:00 -0800 | [diff] [blame] | 74 | config DEVFREQ_GOV_MSM_CPUFREQ |
| 75 | bool "MSM CPUfreq" |
| 76 | depends on CPU_FREQ_MSM |
| 77 | help |
| 78 | MSM CPUfreq based governor for CPU bandwidth voting. Sets the CPU |
| 79 | to DDR BW vote based on the current CPU frequency. This governor |
| 80 | is unlikely to be useful for non-MSM devices. |
| 81 | |
Saravana Kannan | c7a851a | 2013-09-23 19:27:57 -0700 | [diff] [blame] | 82 | config DEVFREQ_GOV_MSM_CPUBW_HWMON |
| 83 | tristate "HW monitor based governor for CPUBW" |
| 84 | depends on ARCH_MSM_KRAIT |
| 85 | help |
| 86 | HW monitor based governor for CPU to DDR bandwidth voting. This |
| 87 | goveror currently supports only Krait L2 PM counters. Sets the CPU |
| 88 | BW vote by using L2 PM counters to monitor the Krait's use of DDR. |
| 89 | Since this governor uses some of the PM counters it can conflict |
| 90 | with existing profiling tools. This governor is unlikely to be |
| 91 | useful for other devices. |
| 92 | |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 93 | comment "DEVFREQ Drivers" |
| 94 | |
MyungJoo Ham | 7b40503 | 2011-07-14 10:33:55 +0900 | [diff] [blame] | 95 | config ARM_EXYNOS4_BUS_DEVFREQ |
| 96 | bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver" |
| 97 | depends on CPU_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412 |
| 98 | select ARCH_HAS_OPP |
| 99 | select DEVFREQ_GOV_SIMPLE_ONDEMAND |
| 100 | help |
| 101 | This adds the DEVFREQ driver for Exynos4210 memory bus (vdd_int) |
| 102 | and Exynos4212/4412 memory interface and bus (vdd_mif + vdd_int). |
| 103 | It reads PPMU counters of memory controllers and adjusts |
| 104 | the operating frequencies and voltages with OPP support. |
| 105 | To operate with optimal voltages, ASV support is required |
| 106 | (CONFIG_EXYNOS_ASV). |
| 107 | |
MyungJoo Ham | a3c98b8 | 2011-10-02 00:19:15 +0200 | [diff] [blame] | 108 | endif # PM_DEVFREQ |