xref: /openbmc/linux/drivers/devfreq/Kconfig (revision 3a9a231d)
1config ARCH_HAS_DEVFREQ
2	bool
3	depends on ARCH_HAS_OPP
4	help
5	  Denotes that the architecture supports DEVFREQ. If the architecture
6	  supports multiple OPP entries per device and the frequency of the
7	  devices with OPPs may be altered dynamically, the architecture
8	  supports DEVFREQ.
9
10menuconfig PM_DEVFREQ
11	bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support"
12	depends on PM_OPP && ARCH_HAS_DEVFREQ
13	help
14	  With OPP support, a device may have a list of frequencies and
15	  voltages available. DEVFREQ, a generic DVFS framework can be
16	  registered for a device with OPP support in order to let the
17	  governor provided to DEVFREQ choose an operating frequency
18	  based on the OPP's list and the policy given with DEVFREQ.
19
20	  Each device may have its own governor and policy. DEVFREQ can
21	  reevaluate the device state periodically and/or based on the
22	  OPP list changes (each frequency/voltage pair in OPP may be
23	  disabled or enabled).
24
25	  Like some CPUs with CPUFREQ, a device may have multiple clocks.
26	  However, because the clock frequencies of a single device are
27	  determined by the single device's state, an instance of DEVFREQ
28	  is attached to a single device and returns a "representative"
29	  clock frequency from the OPP of the device, which is also attached
30	  to a device by 1-to-1. The device registering DEVFREQ takes the
31	  responsiblity to "interpret" the frequency listed in OPP and
32	  to set its every clock accordingly with the "target" callback
33	  given to DEVFREQ.
34
35if PM_DEVFREQ
36
37comment "DEVFREQ Governors"
38
39config DEVFREQ_GOV_SIMPLE_ONDEMAND
40	bool "Simple Ondemand"
41	help
42	  Chooses frequency based on the recent load on the device. Works
43	  similar as ONDEMAND governor of CPUFREQ does. A device with
44	  Simple-Ondemand should be able to provide busy/total counter
45	  values that imply the usage rate. A device may provide tuned
46	  values to the governor with data field at devfreq_add_device().
47
48config DEVFREQ_GOV_PERFORMANCE
49	bool "Performance"
50	help
51	  Sets the frequency at the maximum available frequency.
52	  This governor always returns UINT_MAX as frequency so that
53	  the DEVFREQ framework returns the highest frequency available
54	  at any time.
55
56config DEVFREQ_GOV_POWERSAVE
57	bool "Powersave"
58	help
59	  Sets the frequency at the minimum available frequency.
60	  This governor always returns 0 as frequency so that
61	  the DEVFREQ framework returns the lowest frequency available
62	  at any time.
63
64config DEVFREQ_GOV_USERSPACE
65	bool "Userspace"
66	help
67	  Sets the frequency at the user specified one.
68	  This governor returns the user configured frequency if there
69	  has been an input to /sys/devices/.../power/devfreq_set_freq.
70	  Otherwise, the governor does not change the frequnecy
71	  given at the initialization.
72
73comment "DEVFREQ Drivers"
74
75endif # PM_DEVFREQ
76