Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b405038 authored by MyungJoo Ham's avatar MyungJoo Ham
Browse files

PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.



Exynos4-bus device devfreq driver add DVFS capability for
Exynos4210/4212/4412-Bus (memory). The driver monitors PPMU counters of memory
controllers and adjusts operating frequencies and voltages with OPP.
For Exynos4210, vdd_int is controlled. For exynos4412/4212, vdd_mif and
vdd_int are controlled.

Dependency (CONFIG_EXYNOS_ASV):
Exynos4 ASV driver has been posted in the mailing list; however, it
si not yet upstreamed. Although the current revision of Exynos4 ASV
patch does not contain "CONFIG_EXYNOS_ASV", we have added the symbol
to hide the dependent from compilers for now. As soon as Exynos4 ASV
drivers are merged, the #ifdef statement will be removed or the
name will be changed.

However, enabling ASV is essential in most Exynos4 chips to reduce
the power consumption of Exynos4210 because without ASV, this Devfreq
driver assumes the worst case scenario, which consumes more power.

Signed-off-by: default avatarMyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>

---
Changes from v1
- Support 4212 and 4412 as well as 4210.
parent 390f9985
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -65,4 +65,17 @@ config DEVFREQ_GOV_USERSPACE

comment "DEVFREQ Drivers"

config ARM_EXYNOS4_BUS_DEVFREQ
	bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver"
	depends on CPU_EXYNOS4210 || CPU_EXYNOS4212 || CPU_EXYNOS4412
	select ARCH_HAS_OPP
	select DEVFREQ_GOV_SIMPLE_ONDEMAND
	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.
	  To operate with optimal voltages, ASV support is required
	  (CONFIG_EXYNOS_ASV).

endif # PM_DEVFREQ
+3 −0
Original line number Diff line number Diff line
@@ -3,3 +3,6 @@ obj-$(CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND) += governor_simpleondemand.o
obj-$(CONFIG_DEVFREQ_GOV_PERFORMANCE)	+= governor_performance.o
obj-$(CONFIG_DEVFREQ_GOV_POWERSAVE)	+= governor_powersave.o
obj-$(CONFIG_DEVFREQ_GOV_USERSPACE)	+= governor_userspace.o

# DEVFREQ Drivers
obj-$(CONFIG_ARM_EXYNOS4_BUS_DEVFREQ)	+= exynos4_bus.o
+1135 −0

File added.

Preview size limit exceeded, changes collapsed.