aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaecheol Lee <jc.lee@samsung.com>2011-03-09 08:22:31 +0900
committerKukjin Kim <kgene.kim@samsung.com>2011-03-12 10:18:34 +0900
commit30fe76437bc2463b25e9a64ff1b28f293e3f3413 (patch)
treed15667b6f73d37003c50af93a1076e0c9f4b6ac6
parentARM: EXYNOS4: Suspend to RAM Support (diff)
downloadlinux-dev-30fe76437bc2463b25e9a64ff1b28f293e3f3413.tar.xz
linux-dev-30fe76437bc2463b25e9a64ff1b28f293e3f3413.zip
ARM: EXYNOS4: Update HRT for supporting PM
This patch updates HRT driver for supporting PM. The resume function of PWM4 timer which is used clocksource is needed when kernel is resuming for restarting. Signed-off-by: Jaecheol Lee <jc.lee@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r--arch/arm/mach-exynos4/time.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos4/time.c b/arch/arm/mach-exynos4/time.c
index e30ac7043095..86b9fa0d3639 100644
--- a/arch/arm/mach-exynos4/time.c
+++ b/arch/arm/mach-exynos4/time.c
@@ -206,12 +206,28 @@ static cycle_t exynos4_pwm4_read(struct clocksource *cs)
return (cycle_t) ~__raw_readl(S3C_TIMERREG(0x40));
}
+static void exynos4_pwm4_resume(struct clocksource *cs)
+{
+ unsigned long pclk;
+
+ pclk = clk_get_rate(timerclk);
+
+ clk_set_rate(tdiv4, pclk / 2);
+ clk_set_parent(tin4, tdiv4);
+
+ exynos4_pwm_init(4, ~0);
+ exynos4_pwm_start(4, 1);
+}
+
struct clocksource pwm_clocksource = {
.name = "pwm_timer4",
.rating = 250,
.read = exynos4_pwm4_read,
.mask = CLOCKSOURCE_MASK(32),
.flags = CLOCK_SOURCE_IS_CONTINUOUS ,
+#ifdef CONFIG_PM
+ .resume = exynos4_pwm4_resume,
+#endif
};
static void __init exynos4_clocksource_init(void)