]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-exynos4/time.c
Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/torvalds...
[karo-tx-linux.git] / arch / arm / mach-exynos4 / time.c
index e30ac7043095a3226b36703a1e80e5adfb74276e..86b9fa0d3639e1d69278e22a72ee3d188718a14a 100644 (file)
@@ -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)