menuconfig PM_DEVFREQ
	bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support"
	select SRCU
	help
	  A device may have a list of frequencies and voltages available.
	  devfreq, a generic DVFS framework can be registered for a device
	  in order to let the governor provided to devfreq choose an
	  operating frequency based on the device driver's policy.

	  Each device may have its own governor and policy. Devfreq can
	  reevaluate the device state periodically and/or based on the
	  notification to "nb", a notifier block, of devfreq.

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

	  When OPP is used with the devfreq device, it is recommended to
	  register devfreq's nb to the OPP's notifier head.  If OPP is
	  used with the devfreq device, you may use OPP helper
	  functions defined in devfreq.h.

if PM_DEVFREQ

comment "DEVFREQ Governors"

config DEVFREQ_GOV_SIMPLE_ONDEMAND
	tristate "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_SIMPLE_USAGE
	tristate "Simple Usage"
	help
	  Chooses frequency based on the percentage of target device.

config DEVFREQ_GOV_SIMPLE_EXYNOS
	tristate "Simple Exynos"
	help
	  Chooses frequency based on the threshold of target device.

config DEVFREQ_GOV_SIMPLE_INTERACTIVE
	tristate "Simple Interactive"
	help
	  Chooses frequency based on the requested PM QoS from target device.
	  And This governor uses timer when change frequency.

config DEVFREQ_GOV_PERFORMANCE
	tristate "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
	tristate "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
	tristate "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"

config ARM_EXYNOS_DEVFREQ
	bool "ARM Exynos Memory Bus DEVFREQ Common driver"
	depends on ARCH_EXYNOS
	select ARCH_HAS_OPP
	select PM_OPP
	help
	  This adds the DEVFREQ driver for Exynos series common bus.

config ARM_EXYNOS_DEVFREQ_DEBUG
	bool "ARM Exynos DEVFREQ sysfs for Debug"
	depends on ARM_EXYNOS_DEVFREQ

config ARM_EXYNOS4_BUS_DEVFREQ
	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
	depends on (CPU_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412) && !ARCH_MULTIPLATFORM
	select DEVFREQ_GOV_SIMPLE_ONDEMAND
	select PM_OPP
	help
	  This adds the DEVFREQ driver for Exynos4210 memory bus (vdd_int)
	  and Exynos4212/4412 memory interface and bus (vdd_mif + vdd_int).
	  It reads PPMU counters of memory controllers and adjusts
	  the operating frequencies and voltages with OPP support.
	  This does not yet operate with optimal voltages.

config ARM_EXYNOS5_BUS_DEVFREQ
	tristate "ARM Exynos5250 Bus DEVFREQ Driver"
	depends on SOC_EXYNOS5250
	select DEVFREQ_GOV_SIMPLE_ONDEMAND
	select PM_OPP
	help
	  This adds the DEVFREQ driver for Exynos5250 bus interface (vdd_int).
	  It reads PPMU counters of memory controllers and adjusts the
	  operating frequencies and voltages with OPP support.

config ARM_TEGRA_DEVFREQ
       tristate "Tegra DEVFREQ Driver"
       depends on ARCH_TEGRA_124_SOC
       select DEVFREQ_GOV_SIMPLE_ONDEMAND
       select PM_OPP
       help
         This adds the DEVFREQ driver for the Tegra family of SoCs.
         It reads ACTMON counters of memory controllers and adjusts the
         operating frequencies and voltages with OPP support.

source "drivers/devfreq/event/Kconfig"

config ARM_EXYNOS7872_BUS_DEVFREQ
	bool "ARM Exynos7872 Memory Bus DEVFREQ Driver"
	default y
	depends on ARM_EXYNOS_DEVFREQ
	depends on SOC_EXYNOS7872
	select DEVFREQ_GOV_SIMPLE_INTERACTIVE
	help
	  This adds the DEVFREQ driver for Exynos7872 memory and int.

config ARM_EXYNOS7885_BUS_DEVFREQ
	bool "ARM Exynos7885 Memory Bus DEVFREQ Driver"
	default y
	depends on ARM_EXYNOS_DEVFREQ
	depends on SOC_EXYNOS7885
	select DEVFREQ_GOV_SIMPLE_INTERACTIVE
	help
	  This adds the DEVFREQ driver for Exynos7885 memory and int.

config ARM_EXYNOS8895_BUS_DEVFREQ
	bool "ARM Exynos8895 Memory Bus DEVFREQ Driver"
	default y
	depends on ARM_EXYNOS_DEVFREQ
	depends on SOC_EXYNOS8895
	select DEVFREQ_GOV_SIMPLE_INTERACTIVE
	help
	  This adds the DEVFREQ driver for Exynos8895 memory and int.

config ARM_EXYNOS8890_BUS_DEVFREQ
	bool "ARM Exynos8890 Memory Bus DEVFREQ Driver"
	default y
	depends on ARM_EXYNOS_DEVFREQ
	depends on SOC_EXYNOS8890
	select DEVFREQ_GOV_SIMPLE_INTERACTIVE
	help
	  This adds the DEVFREQ driver for Exynos8890 memory and int.

endif # PM_DEVFREQ
