summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2015-08-06 11:11:13 +0200
committerOlof Johansson <olof@lixom.net>2015-08-13 11:23:27 +0200
commita54868b460b65bd93a5324a7fc35dfd556fe576c (patch)
tree16c43b3da99981896d76d048a98925ffa626c02a /arch
parentARM: nomadik: push accelerometer down to boards (diff)
downloadlinux-a54868b460b65bd93a5324a7fc35dfd556fe576c.tar.xz
linux-a54868b460b65bd93a5324a7fc35dfd556fe576c.zip
ARM: ep93xx/timer: Migrate to new 'set-state' interface
Migrate EP93xx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-ep93xx/timer-ep93xx.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/arm/mach-ep93xx/timer-ep93xx.c b/arch/arm/mach-ep93xx/timer-ep93xx.c
index ac48ac1fd16d..e5f791145bd0 100644
--- a/arch/arm/mach-ep93xx/timer-ep93xx.c
+++ b/arch/arm/mach-ep93xx/timer-ep93xx.c
@@ -86,19 +86,22 @@ static int ep93xx_clkevt_set_next_event(unsigned long next,
}
-static void ep93xx_clkevt_set_mode(enum clock_event_mode mode,
- struct clock_event_device *evt)
+static int ep93xx_clkevt_shutdown(struct clock_event_device *evt)
{
/* Disable timer */
writel(0, EP93XX_TIMER3_CONTROL);
+
+ return 0;
}
static struct clock_event_device ep93xx_clockevent = {
- .name = "timer1",
- .features = CLOCK_EVT_FEAT_ONESHOT,
- .set_mode = ep93xx_clkevt_set_mode,
- .set_next_event = ep93xx_clkevt_set_next_event,
- .rating = 300,
+ .name = "timer1",
+ .features = CLOCK_EVT_FEAT_ONESHOT,
+ .set_state_shutdown = ep93xx_clkevt_shutdown,
+ .set_state_oneshot = ep93xx_clkevt_shutdown,
+ .tick_resume = ep93xx_clkevt_shutdown,
+ .set_next_event = ep93xx_clkevt_set_next_event,
+ .rating = 300,
};
static irqreturn_t ep93xx_timer_interrupt(int irq, void *dev_id)