config ARCH_HAS_DEVFREQ
	bool
	depends on ARCH_HAS_OPP
	help
	  Denotes that the architecture supports DEVFREQ. If the architecture
	  supports multiple OPP entries per device and the frequency of the
	  devices with OPPs may be altered dynamically, the architecture
	  supports DEVFREQ.

menuconfig PM_DEVFREQ
	bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support"
	depends on PM_OPP && ARCH_HAS_DEVFREQ
	help
	  With OPP support, a device may have a list of frequencies and
	  voltages available. DEVFREQ, a generic DVFS framework can be
	  registered for a device with OPP support in order to let the
	  governor provided to DEVFREQ choose an operating frequency
	  based on the OPP's list and the policy given with DEVFREQ.

	  Each device may have its own governor and policy. DEVFREQ can
	  reevaluate the device state periodically and/or based on the
	  OPP list changes (each frequency/voltage pair in OPP may be
	  disabled or enabled).

	  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 from the OPP of the device, which is also attached
	  to a device by 1-to-1. The device registering DEVFREQ takes the
	  responsiblity to "interpret" the frequency listed in OPP and
	  to set its every clock accordingly with the "target" callback
	  given to DEVFREQ.

if PM_DEVFREQ

comment "DEVFREQ Governors"

config DEVFREQ_GOV_SIMPLE_ONDEMAND
	bool "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
	bool "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
	bool "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
	bool "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 frequnecy
	  given at the initialization.

comment "DEVFREQ Drivers"

endif # PM_DEVFREQ
