1a3c98b8bSMyungJoo Hammenuconfig PM_DEVFREQ 2a3c98b8bSMyungJoo Ham bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support" 383fe27eaSPranith Kumar select SRCU 4a3c98b8bSMyungJoo Ham help 56c81f905SMyungJoo Ham A device may have a list of frequencies and voltages available. 66c81f905SMyungJoo Ham devfreq, a generic DVFS framework can be registered for a device 76c81f905SMyungJoo Ham in order to let the governor provided to devfreq choose an 86c81f905SMyungJoo Ham operating frequency based on the device driver's policy. 9a3c98b8bSMyungJoo Ham 106c81f905SMyungJoo Ham Each device may have its own governor and policy. Devfreq can 11a3c98b8bSMyungJoo Ham reevaluate the device state periodically and/or based on the 126c81f905SMyungJoo Ham notification to "nb", a notifier block, of devfreq. 13a3c98b8bSMyungJoo Ham 146c81f905SMyungJoo Ham Like some CPUs with CPUfreq, a device may have multiple clocks. 15a3c98b8bSMyungJoo Ham However, because the clock frequencies of a single device are 166c81f905SMyungJoo Ham determined by the single device's state, an instance of devfreq 17a3c98b8bSMyungJoo Ham is attached to a single device and returns a "representative" 186c81f905SMyungJoo Ham clock frequency of the device, which is also attached 196c81f905SMyungJoo Ham to a device by 1-to-1. The device registering devfreq takes the 206b2aac42SMasanari Iida responsibility to "interpret" the representative frequency and 21a3c98b8bSMyungJoo Ham to set its every clock accordingly with the "target" callback 226c81f905SMyungJoo Ham given to devfreq. 236c81f905SMyungJoo Ham 246c81f905SMyungJoo Ham When OPP is used with the devfreq device, it is recommended to 256c81f905SMyungJoo Ham register devfreq's nb to the OPP's notifier head. If OPP is 266c81f905SMyungJoo Ham used with the devfreq device, you may use OPP helper 276c81f905SMyungJoo Ham functions defined in devfreq.h. 28a3c98b8bSMyungJoo Ham 29a3c98b8bSMyungJoo Hamif PM_DEVFREQ 30a3c98b8bSMyungJoo Ham 31ce26c5bbSMyungJoo Hamcomment "DEVFREQ Governors" 32ce26c5bbSMyungJoo Ham 33ce26c5bbSMyungJoo Hamconfig DEVFREQ_GOV_SIMPLE_ONDEMAND 34eff607fdSNishanth Menon tristate "Simple Ondemand" 35ce26c5bbSMyungJoo Ham help 36ce26c5bbSMyungJoo Ham Chooses frequency based on the recent load on the device. Works 37ce26c5bbSMyungJoo Ham similar as ONDEMAND governor of CPUFREQ does. A device with 38ce26c5bbSMyungJoo Ham Simple-Ondemand should be able to provide busy/total counter 39ce26c5bbSMyungJoo Ham values that imply the usage rate. A device may provide tuned 40ce26c5bbSMyungJoo Ham values to the governor with data field at devfreq_add_device(). 41ce26c5bbSMyungJoo Ham 42ce26c5bbSMyungJoo Hamconfig DEVFREQ_GOV_PERFORMANCE 43eff607fdSNishanth Menon tristate "Performance" 44ce26c5bbSMyungJoo Ham help 45ce26c5bbSMyungJoo Ham Sets the frequency at the maximum available frequency. 46ce26c5bbSMyungJoo Ham This governor always returns UINT_MAX as frequency so that 47ce26c5bbSMyungJoo Ham the DEVFREQ framework returns the highest frequency available 48ce26c5bbSMyungJoo Ham at any time. 49ce26c5bbSMyungJoo Ham 50ce26c5bbSMyungJoo Hamconfig DEVFREQ_GOV_POWERSAVE 51eff607fdSNishanth Menon tristate "Powersave" 52ce26c5bbSMyungJoo Ham help 53ce26c5bbSMyungJoo Ham Sets the frequency at the minimum available frequency. 54ce26c5bbSMyungJoo Ham This governor always returns 0 as frequency so that 55ce26c5bbSMyungJoo Ham the DEVFREQ framework returns the lowest frequency available 56ce26c5bbSMyungJoo Ham at any time. 57ce26c5bbSMyungJoo Ham 58ce26c5bbSMyungJoo Hamconfig DEVFREQ_GOV_USERSPACE 59eff607fdSNishanth Menon tristate "Userspace" 60ce26c5bbSMyungJoo Ham help 61ce26c5bbSMyungJoo Ham Sets the frequency at the user specified one. 62ce26c5bbSMyungJoo Ham This governor returns the user configured frequency if there 63ce26c5bbSMyungJoo Ham has been an input to /sys/devices/.../power/devfreq_set_freq. 64027b6934SGeert Uytterhoeven Otherwise, the governor does not change the frequency 65ce26c5bbSMyungJoo Ham given at the initialization. 66ce26c5bbSMyungJoo Ham 67a3c98b8bSMyungJoo Hamcomment "DEVFREQ Drivers" 68a3c98b8bSMyungJoo Ham 69*0722249aSChanwoo Choiconfig ARM_EXYNOS_BUS_DEVFREQ 70*0722249aSChanwoo Choi bool "ARM EXYNOS Generic Memory Bus DEVFREQ Driver" 71*0722249aSChanwoo Choi depends on ARCH_EXYNOS 72*0722249aSChanwoo Choi select DEVFREQ_GOV_SIMPLE_ONDEMAND 73*0722249aSChanwoo Choi select DEVFREQ_EVENT_EXYNOS_PPMU 74*0722249aSChanwoo Choi select PM_DEVFREQ_EVENT 75*0722249aSChanwoo Choi select PM_OPP 76*0722249aSChanwoo Choi help 77*0722249aSChanwoo Choi This adds the common DEVFREQ driver for Exynos Memory bus. Exynos 78*0722249aSChanwoo Choi Memory bus has one more group of memory bus (e.g, MIF and INT block). 79*0722249aSChanwoo Choi Each memory bus group could contain many memoby bus block. It reads 80*0722249aSChanwoo Choi PPMU counters of memory controllers by using DEVFREQ-event device 81*0722249aSChanwoo Choi and adjusts the operating frequencies and voltages with OPP support. 82*0722249aSChanwoo Choi This does not yet operate with optimal voltages. 83*0722249aSChanwoo Choi 847b405038SMyungJoo Hamconfig ARM_EXYNOS4_BUS_DEVFREQ 857b405038SMyungJoo Ham bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver" 86ba7abeb1SSachin Kamat depends on (CPU_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412) && !ARCH_MULTIPLATFORM 877b405038SMyungJoo Ham select DEVFREQ_GOV_SIMPLE_ONDEMAND 88b0d5068aSChanwoo Choi select PM_OPP 897b405038SMyungJoo Ham help 907b405038SMyungJoo Ham This adds the DEVFREQ driver for Exynos4210 memory bus (vdd_int) 917b405038SMyungJoo Ham and Exynos4212/4412 memory interface and bus (vdd_mif + vdd_int). 927b405038SMyungJoo Ham It reads PPMU counters of memory controllers and adjusts 937b405038SMyungJoo Ham the operating frequencies and voltages with OPP support. 94cb7063f4SPaul Bolle This does not yet operate with optimal voltages. 957b405038SMyungJoo Ham 966ccce699SAbhilash Kesavanconfig ARM_EXYNOS5_BUS_DEVFREQ 9781da57e6SPunit Agrawal tristate "ARM Exynos5250 Bus DEVFREQ Driver" 986ccce699SAbhilash Kesavan depends on SOC_EXYNOS5250 996ccce699SAbhilash Kesavan select DEVFREQ_GOV_SIMPLE_ONDEMAND 100ae29fa1dSChanwoo Choi select PM_OPP 1016ccce699SAbhilash Kesavan help 1026ccce699SAbhilash Kesavan This adds the DEVFREQ driver for Exynos5250 bus interface (vdd_int). 1036ccce699SAbhilash Kesavan It reads PPMU counters of memory controllers and adjusts the 1046ccce699SAbhilash Kesavan operating frequencies and voltages with OPP support. 1056ccce699SAbhilash Kesavan 1066234f380STomeu Vizosoconfig ARM_TEGRA_DEVFREQ 1076234f380STomeu Vizoso tristate "Tegra DEVFREQ Driver" 1086234f380STomeu Vizoso depends on ARCH_TEGRA_124_SOC 1096234f380STomeu Vizoso select DEVFREQ_GOV_SIMPLE_ONDEMAND 1106234f380STomeu Vizoso select PM_OPP 1116234f380STomeu Vizoso help 1126234f380STomeu Vizoso This adds the DEVFREQ driver for the Tegra family of SoCs. 1136234f380STomeu Vizoso It reads ACTMON counters of memory controllers and adjusts the 1146234f380STomeu Vizoso operating frequencies and voltages with OPP support. 1156234f380STomeu Vizoso 116f262f28cSChanwoo Choisource "drivers/devfreq/event/Kconfig" 117f262f28cSChanwoo Choi 118a3c98b8bSMyungJoo Hamendif # PM_DEVFREQ 119