Commit | Line | Data |
---|---|---|
a3c98b8b MH |
1 | menuconfig PM_DEVFREQ |
2 | bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support" | |
a3c98b8b | 3 | help |
6c81f905 MH |
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. | |
a3c98b8b | 8 | |
6c81f905 | 9 | Each device may have its own governor and policy. Devfreq can |
a3c98b8b | 10 | reevaluate the device state periodically and/or based on the |
6c81f905 | 11 | notification to "nb", a notifier block, of devfreq. |
a3c98b8b | 12 | |
6c81f905 | 13 | Like some CPUs with CPUfreq, a device may have multiple clocks. |
a3c98b8b | 14 | However, because the clock frequencies of a single device are |
6c81f905 | 15 | determined by the single device's state, an instance of devfreq |
a3c98b8b | 16 | is attached to a single device and returns a "representative" |
6c81f905 MH |
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 | |
a3c98b8b | 20 | to set its every clock accordingly with the "target" callback |
6c81f905 MH |
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. | |
a3c98b8b MH |
27 | |
28 | if PM_DEVFREQ | |
29 | ||
ce26c5bb MH |
30 | comment "DEVFREQ Governors" |
31 | ||
32 | config DEVFREQ_GOV_SIMPLE_ONDEMAND | |
33 | bool "Simple Ondemand" | |
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 | |
42 | bool "Performance" | |
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 | |
50 | bool "Powersave" | |
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 | |
58 | bool "Userspace" | |
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 | ||
a3c98b8b MH |
66 | comment "DEVFREQ Drivers" |
67 | ||
7b405038 MH |
68 | config ARM_EXYNOS4_BUS_DEVFREQ |
69 | bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver" | |
70 | depends on CPU_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412 | |
71 | select ARCH_HAS_OPP | |
72 | select DEVFREQ_GOV_SIMPLE_ONDEMAND | |
73 | help | |
74 | This adds the DEVFREQ driver for Exynos4210 memory bus (vdd_int) | |
75 | and Exynos4212/4412 memory interface and bus (vdd_mif + vdd_int). | |
76 | It reads PPMU counters of memory controllers and adjusts | |
77 | the operating frequencies and voltages with OPP support. | |
78 | To operate with optimal voltages, ASV support is required | |
79 | (CONFIG_EXYNOS_ASV). | |
80 | ||
a3c98b8b | 81 | endif # PM_DEVFREQ |