xref: /openbmc/linux/drivers/devfreq/Kconfig (revision 54dec69b)
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
6799613311SChanwoo Choiconfig DEVFREQ_GOV_PASSIVE
6899613311SChanwoo Choi	tristate "Passive"
6999613311SChanwoo Choi	help
7099613311SChanwoo Choi	  Sets the frequency based on the frequency of its parent devfreq
7199613311SChanwoo Choi	  device. This governor does not change the frequency by itself
7299613311SChanwoo Choi	  through sysfs entries. The passive governor recommends that
7399613311SChanwoo Choi	  devfreq device uses the OPP table to get the frequency/voltage.
7499613311SChanwoo Choi
75a3c98b8bSMyungJoo Hamcomment "DEVFREQ Drivers"
76a3c98b8bSMyungJoo Ham
770722249aSChanwoo Choiconfig ARM_EXYNOS_BUS_DEVFREQ
785b3c316cSPaul Gortmaker	tristate "ARM EXYNOS Generic Memory Bus DEVFREQ Driver"
79797da559SKrzysztof Kozlowski	depends on ARCH_EXYNOS || COMPILE_TEST
800722249aSChanwoo Choi	select DEVFREQ_GOV_SIMPLE_ONDEMAND
81403e0689SChanwoo Choi	select DEVFREQ_GOV_PASSIVE
820722249aSChanwoo Choi	select DEVFREQ_EVENT_EXYNOS_PPMU
830722249aSChanwoo Choi	select PM_DEVFREQ_EVENT
840722249aSChanwoo Choi	select PM_OPP
850722249aSChanwoo Choi	help
860722249aSChanwoo Choi	  This adds the common DEVFREQ driver for Exynos Memory bus. Exynos
870722249aSChanwoo Choi	  Memory bus has one more group of memory bus (e.g, MIF and INT block).
880722249aSChanwoo Choi	  Each memory bus group could contain many memoby bus block. It reads
890722249aSChanwoo Choi	  PPMU counters of memory controllers by using DEVFREQ-event device
900722249aSChanwoo Choi	  and adjusts the operating frequencies and voltages with OPP support.
910722249aSChanwoo Choi	  This does not yet operate with optimal voltages.
920722249aSChanwoo Choi
936234f380STomeu Vizosoconfig ARM_TEGRA_DEVFREQ
946234f380STomeu Vizoso	tristate "Tegra DEVFREQ Driver"
95290128acSStephen Rothwell	depends on ARCH_TEGRA_124_SOC
966234f380STomeu Vizoso	select DEVFREQ_GOV_SIMPLE_ONDEMAND
976234f380STomeu Vizoso	select PM_OPP
986234f380STomeu Vizoso	help
996234f380STomeu Vizoso	  This adds the DEVFREQ driver for the Tegra family of SoCs.
1006234f380STomeu Vizoso	  It reads ACTMON counters of memory controllers and adjusts the
1016234f380STomeu Vizoso	  operating frequencies and voltages with OPP support.
1026234f380STomeu Vizoso
1035a893e31SLin Huangconfig ARM_RK3399_DMC_DEVFREQ
1045a893e31SLin Huang	tristate "ARM RK3399 DMC DEVFREQ Driver"
1055a893e31SLin Huang	depends on ARCH_ROCKCHIP
1065a893e31SLin Huang	select DEVFREQ_EVENT_ROCKCHIP_DFI
1075a893e31SLin Huang	select DEVFREQ_GOV_SIMPLE_ONDEMAND
10854dec69bSArnd Bergmann	select PM_DEVFREQ_EVENT
1095a893e31SLin Huang	select PM_OPP
1105a893e31SLin Huang	help
1115a893e31SLin Huang          This adds the DEVFREQ driver for the RK3399 DMC(Dynamic Memory Controller).
1125a893e31SLin Huang          It sets the frequency for the memory controller and reads the usage counts
1135a893e31SLin Huang          from hardware.
1145a893e31SLin Huang
115f262f28cSChanwoo Choisource "drivers/devfreq/event/Kconfig"
116f262f28cSChanwoo Choi
117a3c98b8bSMyungJoo Hamendif # PM_DEVFREQ
118