| |
| 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 |
| <------>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_IMX_BUS_DEVFREQ |
| <------>tristate "i.MX Generic Bus DEVFREQ Driver" |
| <------>depends on ARCH_MXC || COMPILE_TEST |
| <------>select DEVFREQ_GOV_USERSPACE |
| <------>help |
| <------> This adds the generic DEVFREQ driver for i.MX interconnects. It |
| <------> allows adjusting NIC/NOC frequency. |
| |
| config ARM_IMX8M_DDRC_DEVFREQ |
| <------>tristate "i.MX8M DDRC DEVFREQ Driver" |
| <------>depends on (ARCH_MXC && HAVE_ARM_SMCCC) || \ |
| <------><------>(COMPILE_TEST && HAVE_ARM_SMCCC) |
| <------>select DEVFREQ_GOV_SIMPLE_ONDEMAND |
| <------>select DEVFREQ_GOV_USERSPACE |
| <------>help |
| <------> This adds the DEVFREQ driver for the i.MX8M DDR Controller. It allows |
| <------> adjusting DRAM frequency. |
| |
| config ARM_TEGRA_DEVFREQ |
| <------>tristate "NVIDIA Tegra30/114/124/210 DEVFREQ Driver" |
| <------>depends on ARCH_TEGRA_3x_SOC || ARCH_TEGRA_114_SOC || \ |
| <------><------>ARCH_TEGRA_132_SOC || ARCH_TEGRA_124_SOC || \ |
| <------><------>ARCH_TEGRA_210_SOC || \ |
| <------><------>COMPILE_TEST |
| <------>depends on COMMON_CLK |
| <------>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_TEGRA20_DEVFREQ |
| <------>tristate "NVIDIA Tegra20 DEVFREQ Driver" |
| <------>depends on (TEGRA_MC && TEGRA20_EMC) || COMPILE_TEST |
| <------>depends on COMMON_CLK |
| <------>select DEVFREQ_GOV_SIMPLE_ONDEMAND |
| <------>help |
| <------> This adds the DEVFREQ driver for the Tegra20 family of SoCs. |
| <------> It reads Memory Controller counters and adjusts the operating |
| <------> frequencies and voltages with OPP support. |
| |
| config ARM_ROCKCHIP_BUS_DEVFREQ |
| <------>tristate "ARM ROCKCHIP BUS DEVFREQ Driver" |
| <------>depends on ARCH_ROCKCHIP |
| <------>help |
| <------> This adds the DEVFREQ driver for the ROCKCHIP BUS. |
| |
| config ARM_ROCKCHIP_DMC_DEVFREQ |
| <------>tristate "ARM ROCKCHIP DMC DEVFREQ Driver" |
| <------>depends on (ARCH_ROCKCHIP && HAVE_ARM_SMCCC) || \ |
| <------><------>(COMPILE_TEST && HAVE_ARM_SMCCC) |
| <------>select DEVFREQ_EVENT_ROCKCHIP_DFI |
| <------>select PM_DEVFREQ_EVENT |
| <------>help |
| <------> This adds the DEVFREQ driver for the ROCKCHIP 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 |
| |