xref: /linux-6.15/drivers/devfreq/Kconfig (revision 83fe27ea)
1a3c98b8bSMyungJoo Hammenuconfig PM_DEVFREQ
2a3c98b8bSMyungJoo Ham	bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support"
3*83fe27eaSPranith 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.
64ce26c5bbSMyungJoo Ham	  Otherwise, the governor does not change the frequnecy
65ce26c5bbSMyungJoo Ham	  given at the initialization.
66ce26c5bbSMyungJoo Ham
67a3c98b8bSMyungJoo Hamcomment "DEVFREQ Drivers"
68a3c98b8bSMyungJoo Ham
697b405038SMyungJoo Hamconfig ARM_EXYNOS4_BUS_DEVFREQ
707b405038SMyungJoo Ham	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
71ba7abeb1SSachin Kamat	depends on (CPU_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412) && !ARCH_MULTIPLATFORM
727b405038SMyungJoo Ham	select DEVFREQ_GOV_SIMPLE_ONDEMAND
73b0d5068aSChanwoo Choi	select PM_OPP
747b405038SMyungJoo Ham	help
757b405038SMyungJoo Ham	  This adds the DEVFREQ driver for Exynos4210 memory bus (vdd_int)
767b405038SMyungJoo Ham	  and Exynos4212/4412 memory interface and bus (vdd_mif + vdd_int).
777b405038SMyungJoo Ham	  It reads PPMU counters of memory controllers and adjusts
787b405038SMyungJoo Ham	  the operating frequencies and voltages with OPP support.
79cb7063f4SPaul Bolle	  This does not yet operate with optimal voltages.
807b405038SMyungJoo Ham
816ccce699SAbhilash Kesavanconfig ARM_EXYNOS5_BUS_DEVFREQ
8281da57e6SPunit Agrawal	tristate "ARM Exynos5250 Bus DEVFREQ Driver"
836ccce699SAbhilash Kesavan	depends on SOC_EXYNOS5250
846ccce699SAbhilash Kesavan	select DEVFREQ_GOV_SIMPLE_ONDEMAND
85ae29fa1dSChanwoo Choi	select PM_OPP
866ccce699SAbhilash Kesavan	help
876ccce699SAbhilash Kesavan	  This adds the DEVFREQ driver for Exynos5250 bus interface (vdd_int).
886ccce699SAbhilash Kesavan	  It reads PPMU counters of memory controllers and adjusts the
896ccce699SAbhilash Kesavan	  operating frequencies and voltages with OPP support.
906ccce699SAbhilash Kesavan
91a3c98b8bSMyungJoo Hamendif # PM_DEVFREQ
92