]>
Commit | Line | Data |
---|---|---|
1 | menuconfig PM_DEVFREQ | |
2 | bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support" | |
3 | select SRCU | |
4 | help | |
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. | |
9 | ||
10 | Each device may have its own governor and policy. Devfreq can | |
11 | reevaluate the device state periodically and/or based on the | |
12 | notification to "nb", a notifier block, of devfreq. | |
13 | ||
14 | Like some CPUs with CPUfreq, a device may have multiple clocks. | |
15 | However, because the clock frequencies of a single device are | |
16 | determined by the single device's state, an instance of devfreq | |
17 | is attached to a single device and returns a "representative" | |
18 | clock frequency of the device, which is also attached | |
19 | to a device by 1-to-1. The device registering devfreq takes the | |
20 | responsibility to "interpret" the representative frequency and | |
21 | to set its every clock accordingly with the "target" callback | |
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. | |
28 | ||
29 | if PM_DEVFREQ | |
30 | ||
31 | comment "DEVFREQ Governors" | |
32 | ||
33 | config DEVFREQ_GOV_SIMPLE_ONDEMAND | |
34 | tristate "Simple Ondemand" | |
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 | |
43 | tristate "Performance" | |
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 | |
51 | tristate "Powersave" | |
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 | |
59 | tristate "Userspace" | |
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 frequency | |
65 | given at the initialization. | |
66 | ||
67 | config DEVFREQ_GOV_PASSIVE | |
68 | tristate "Passive" | |
69 | help | |
70 | Sets the frequency based on the frequency of its parent devfreq | |
71 | device. This governor does not change the frequency by itself | |
72 | through sysfs entries. The passive governor recommends that | |
73 | devfreq device uses the OPP table to get the frequency/voltage. | |
74 | ||
75 | comment "DEVFREQ Drivers" | |
76 | ||
77 | config ARM_EXYNOS_BUS_DEVFREQ | |
78 | tristate "ARM EXYNOS Generic Memory Bus DEVFREQ Driver" | |
79 | depends on ARCH_EXYNOS || COMPILE_TEST | |
80 | select DEVFREQ_GOV_SIMPLE_ONDEMAND | |
81 | select DEVFREQ_GOV_PASSIVE | |
82 | select DEVFREQ_EVENT_EXYNOS_PPMU | |
83 | select PM_DEVFREQ_EVENT | |
84 | select PM_OPP | |
85 | help | |
86 | This adds the common DEVFREQ driver for Exynos Memory bus. Exynos | |
87 | Memory bus has one more group of memory bus (e.g, MIF and INT block). | |
88 | Each memory bus group could contain many memoby bus block. It reads | |
89 | PPMU counters of memory controllers by using DEVFREQ-event device | |
90 | and adjusts the operating frequencies and voltages with OPP support. | |
91 | This does not yet operate with optimal voltages. | |
92 | ||
93 | config ARM_TEGRA_DEVFREQ | |
94 | tristate "Tegra DEVFREQ Driver" | |
95 | depends on ARCH_TEGRA_124_SOC | |
96 | select DEVFREQ_GOV_SIMPLE_ONDEMAND | |
97 | select PM_OPP | |
98 | help | |
99 | This adds the DEVFREQ driver for the Tegra family of SoCs. | |
100 | It reads ACTMON counters of memory controllers and adjusts the | |
101 | operating frequencies and voltages with OPP support. | |
102 | ||
103 | config ARM_RK3399_DMC_DEVFREQ | |
104 | tristate "ARM RK3399 DMC DEVFREQ Driver" | |
105 | depends on ARCH_ROCKCHIP | |
106 | select DEVFREQ_EVENT_ROCKCHIP_DFI | |
107 | select DEVFREQ_GOV_SIMPLE_ONDEMAND | |
108 | select PM_DEVFREQ_EVENT | |
109 | select PM_OPP | |
110 | help | |
111 | This adds the DEVFREQ driver for the RK3399 DMC(Dynamic Memory Controller). | |
112 | It sets the frequency for the memory controller and reads the usage counts | |
113 | from hardware. | |
114 | ||
115 | source "drivers/devfreq/event/Kconfig" | |
116 | ||
117 | endif # PM_DEVFREQ |