Commit | Line | Data |
---|---|---|
a3c98b8b MH |
1 | menuconfig PM_DEVFREQ |
2 | bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support" | |
83fe27ea | 3 | select SRCU |
a3c98b8b | 4 | help |
6c81f905 MH |
5 | A device may have a list of frequencies and voltages available. |
6 | devfreq, a generic DVFS framework can be registered for a device | |
7 | in order to let the governor provided to devfreq choose an | |
8 | operating frequency based on the device driver's policy. | |
a3c98b8b | 9 | |
6c81f905 | 10 | Each device may have its own governor and policy. Devfreq can |
a3c98b8b | 11 | reevaluate the device state periodically and/or based on the |
6c81f905 | 12 | notification to "nb", a notifier block, of devfreq. |
a3c98b8b | 13 | |
6c81f905 | 14 | Like some CPUs with CPUfreq, a device may have multiple clocks. |
a3c98b8b | 15 | However, because the clock frequencies of a single device are |
6c81f905 | 16 | determined by the single device's state, an instance of devfreq |
a3c98b8b | 17 | is attached to a single device and returns a "representative" |
6c81f905 MH |
18 | clock frequency of the device, which is also attached |
19 | to a device by 1-to-1. The device registering devfreq takes the | |
6b2aac42 | 20 | responsibility to "interpret" the representative frequency and |
a3c98b8b | 21 | to set its every clock accordingly with the "target" callback |
6c81f905 MH |
22 | given to devfreq. |
23 | ||
24 | When OPP is used with the devfreq device, it is recommended to | |
25 | register devfreq's nb to the OPP's notifier head. If OPP is | |
26 | used with the devfreq device, you may use OPP helper | |
27 | functions defined in devfreq.h. | |
a3c98b8b MH |
28 | |
29 | if PM_DEVFREQ | |
30 | ||
ce26c5bb MH |
31 | comment "DEVFREQ Governors" |
32 | ||
33 | config DEVFREQ_GOV_SIMPLE_ONDEMAND | |
eff607fd | 34 | tristate "Simple Ondemand" |
ce26c5bb MH |
35 | help |
36 | Chooses frequency based on the recent load on the device. Works | |
37 | similar as ONDEMAND governor of CPUFREQ does. A device with | |
38 | Simple-Ondemand should be able to provide busy/total counter | |
39 | values that imply the usage rate. A device may provide tuned | |
40 | values to the governor with data field at devfreq_add_device(). | |
41 | ||
42 | config DEVFREQ_GOV_PERFORMANCE | |
eff607fd | 43 | tristate "Performance" |
ce26c5bb MH |
44 | help |
45 | Sets the frequency at the maximum available frequency. | |
46 | This governor always returns UINT_MAX as frequency so that | |
47 | the DEVFREQ framework returns the highest frequency available | |
48 | at any time. | |
49 | ||
50 | config DEVFREQ_GOV_POWERSAVE | |
eff607fd | 51 | tristate "Powersave" |
ce26c5bb MH |
52 | help |
53 | Sets the frequency at the minimum available frequency. | |
54 | This governor always returns 0 as frequency so that | |
55 | the DEVFREQ framework returns the lowest frequency available | |
56 | at any time. | |
57 | ||
58 | config DEVFREQ_GOV_USERSPACE | |
eff607fd | 59 | tristate "Userspace" |
ce26c5bb MH |
60 | help |
61 | Sets the frequency at the user specified one. | |
62 | This governor returns the user configured frequency if there | |
63 | has been an input to /sys/devices/.../power/devfreq_set_freq. | |
64 | Otherwise, the governor does not change the frequnecy | |
65 | given at the initialization. | |
66 | ||
a3c98b8b MH |
67 | comment "DEVFREQ Drivers" |
68 | ||
7b405038 MH |
69 | config ARM_EXYNOS4_BUS_DEVFREQ |
70 | bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver" | |
ba7abeb1 | 71 | depends on (CPU_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412) && !ARCH_MULTIPLATFORM |
7b405038 | 72 | select DEVFREQ_GOV_SIMPLE_ONDEMAND |
b0d5068a | 73 | select PM_OPP |
7b405038 MH |
74 | help |
75 | This adds the DEVFREQ driver for Exynos4210 memory bus (vdd_int) | |
76 | and Exynos4212/4412 memory interface and bus (vdd_mif + vdd_int). | |
77 | It reads PPMU counters of memory controllers and adjusts | |
78 | the operating frequencies and voltages with OPP support. | |
cb7063f4 | 79 | This does not yet operate with optimal voltages. |
7b405038 | 80 | |
6ccce699 | 81 | config ARM_EXYNOS5_BUS_DEVFREQ |
81da57e6 | 82 | tristate "ARM Exynos5250 Bus DEVFREQ Driver" |
6ccce699 | 83 | depends on SOC_EXYNOS5250 |
6ccce699 | 84 | select DEVFREQ_GOV_SIMPLE_ONDEMAND |
ae29fa1d | 85 | select PM_OPP |
6ccce699 AK |
86 | help |
87 | This adds the DEVFREQ driver for Exynos5250 bus interface (vdd_int). | |
88 | It reads PPMU counters of memory controllers and adjusts the | |
89 | operating frequencies and voltages with OPP support. | |
90 | ||
6234f380 TV |
91 | config ARM_TEGRA_DEVFREQ |
92 | tristate "Tegra DEVFREQ Driver" | |
93 | depends on ARCH_TEGRA_124_SOC | |
94 | select DEVFREQ_GOV_SIMPLE_ONDEMAND | |
95 | select PM_OPP | |
96 | help | |
97 | This adds the DEVFREQ driver for the Tegra family of SoCs. | |
98 | It reads ACTMON counters of memory controllers and adjusts the | |
99 | operating frequencies and voltages with OPP support. | |
100 | ||
f262f28c CC |
101 | source "drivers/devfreq/event/Kconfig" |
102 | ||
a3c98b8b | 103 | endif # PM_DEVFREQ |