|  | menuconfig PM_DEVFREQ | 
|  | bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support" | 
|  | select SRCU | 
|  | select PM_OPP | 
|  | help | 
|  | A device may have a list of frequencies and voltages available. | 
|  | devfreq, a generic DVFS framework can be registered for a device | 
|  | in order to let the governor provided to devfreq choose an | 
|  | operating frequency based on the device driver's policy. | 
|  |  | 
|  | Each device may have its own governor and policy. Devfreq can | 
|  | reevaluate the device state periodically and/or based on the | 
|  | notification to "nb", a notifier block, of devfreq. | 
|  |  | 
|  | Like some CPUs with CPUfreq, a device may have multiple clocks. | 
|  | However, because the clock frequencies of a single device are | 
|  | determined by the single device's state, an instance of devfreq | 
|  | is attached to a single device and returns a "representative" | 
|  | clock frequency of the device, which is also attached | 
|  | to a device by 1-to-1. The device registering devfreq takes the | 
|  | responsibility to "interpret" the representative frequency and | 
|  | to set its every clock accordingly with the "target" callback | 
|  | given to devfreq. | 
|  |  | 
|  | When OPP is used with the devfreq device, it is recommended to | 
|  | register devfreq's nb to the OPP's notifier head.  If OPP is | 
|  | used with the devfreq device, you may use OPP helper | 
|  | functions defined in devfreq.h. | 
|  |  | 
|  | if PM_DEVFREQ | 
|  |  | 
|  | comment "DEVFREQ Governors" | 
|  |  | 
|  | config DEVFREQ_GOV_SIMPLE_ONDEMAND | 
|  | tristate "Simple Ondemand" | 
|  | help | 
|  | Chooses frequency based on the recent load on the device. Works | 
|  | similar as ONDEMAND governor of CPUFREQ does. A device with | 
|  | Simple-Ondemand should be able to provide busy/total counter | 
|  | values that imply the usage rate. A device may provide tuned | 
|  | values to the governor with data field at devfreq_add_device(). | 
|  |  | 
|  | config DEVFREQ_GOV_PERFORMANCE | 
|  | tristate "Performance" | 
|  | help | 
|  | Sets the frequency at the maximum available frequency. | 
|  | This governor always returns UINT_MAX as frequency so that | 
|  | the DEVFREQ framework returns the highest frequency available | 
|  | at any time. | 
|  |  | 
|  | config DEVFREQ_GOV_POWERSAVE | 
|  | tristate "Powersave" | 
|  | help | 
|  | Sets the frequency at the minimum available frequency. | 
|  | This governor always returns 0 as frequency so that | 
|  | the DEVFREQ framework returns the lowest frequency available | 
|  | at any time. | 
|  |  | 
|  | config DEVFREQ_GOV_USERSPACE | 
|  | tristate "Userspace" | 
|  | help | 
|  | Sets the frequency at the user specified one. | 
|  | This governor returns the user configured frequency if there | 
|  | has been an input to /sys/devices/.../power/devfreq_set_freq. | 
|  | Otherwise, the governor does not change the frequency | 
|  | given at the initialization. | 
|  |  | 
|  | config DEVFREQ_GOV_PASSIVE | 
|  | tristate "Passive" | 
|  | help | 
|  | Sets the frequency based on the frequency of its parent devfreq | 
|  | device. This governor does not change the frequency by itself | 
|  | through sysfs entries. The passive governor recommends that | 
|  | devfreq device uses the OPP table to get the frequency/voltage. | 
|  |  | 
|  | comment "DEVFREQ Drivers" | 
|  |  | 
|  | config ARM_EXYNOS_BUS_DEVFREQ | 
|  | tristate "ARM EXYNOS Generic Memory Bus DEVFREQ Driver" | 
|  | depends on ARCH_EXYNOS || COMPILE_TEST | 
|  | select DEVFREQ_GOV_SIMPLE_ONDEMAND | 
|  | select DEVFREQ_GOV_PASSIVE | 
|  | select DEVFREQ_EVENT_EXYNOS_PPMU | 
|  | select PM_DEVFREQ_EVENT | 
|  | select PM_OPP | 
|  | help | 
|  | This adds the common DEVFREQ driver for Exynos Memory bus. Exynos | 
|  | Memory bus has one more group of memory bus (e.g, MIF and INT block). | 
|  | Each memory bus group could contain many memoby bus block. It reads | 
|  | PPMU counters of memory controllers by using DEVFREQ-event device | 
|  | and adjusts the operating frequencies and voltages with OPP support. | 
|  | This does not yet operate with optimal voltages. | 
|  |  | 
|  | config ARM_TEGRA_DEVFREQ | 
|  | tristate "Tegra DEVFREQ Driver" | 
|  | depends on ARCH_TEGRA_124_SOC | 
|  | select DEVFREQ_GOV_SIMPLE_ONDEMAND | 
|  | select PM_OPP | 
|  | help | 
|  | This adds the DEVFREQ driver for the Tegra family of SoCs. | 
|  | It reads ACTMON counters of memory controllers and adjusts the | 
|  | operating frequencies and voltages with OPP support. | 
|  |  | 
|  | config ARM_RK3399_DMC_DEVFREQ | 
|  | tristate "ARM RK3399 DMC DEVFREQ Driver" | 
|  | depends on ARCH_ROCKCHIP | 
|  | select DEVFREQ_EVENT_ROCKCHIP_DFI | 
|  | select DEVFREQ_GOV_SIMPLE_ONDEMAND | 
|  | select PM_DEVFREQ_EVENT | 
|  | select PM_OPP | 
|  | help | 
|  | This adds the DEVFREQ driver for the RK3399 DMC(Dynamic Memory Controller). | 
|  | It sets the frequency for the memory controller and reads the usage counts | 
|  | from hardware. | 
|  |  | 
|  | source "drivers/devfreq/event/Kconfig" | 
|  |  | 
|  | endif # PM_DEVFREQ |