Commit 70164742 authored by Joel Stanley's avatar Joel Stanley Committed by Daniel Lezcano

clocksource/drivers/moxart: Refactor enable/disable

This patch abstracts the enable and disable register writes into their
own functions in preparation for future changes to use SoC specific
values for the writes.
Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
parent 950d8381
...@@ -58,15 +58,25 @@ ...@@ -58,15 +58,25 @@
static void __iomem *base; static void __iomem *base;
static unsigned int clock_count_per_tick; static unsigned int clock_count_per_tick;
static int moxart_shutdown(struct clock_event_device *evt) static inline void moxart_disable(struct clock_event_device *evt)
{ {
writel(TIMER1_DISABLE, base + TIMER_CR); writel(TIMER1_DISABLE, base + TIMER_CR);
}
static inline void moxart_enable(struct clock_event_device *evt)
{
writel(TIMER1_ENABLE, base + TIMER_CR);
}
static int moxart_shutdown(struct clock_event_device *evt)
{
moxart_disable(evt);
return 0; return 0;
} }
static int moxart_set_oneshot(struct clock_event_device *evt) static int moxart_set_oneshot(struct clock_event_device *evt)
{ {
writel(TIMER1_DISABLE, base + TIMER_CR); moxart_disable(evt);
writel(~0, base + TIMER1_BASE + REG_LOAD); writel(~0, base + TIMER1_BASE + REG_LOAD);
return 0; return 0;
} }
...@@ -74,21 +84,21 @@ static int moxart_set_oneshot(struct clock_event_device *evt) ...@@ -74,21 +84,21 @@ static int moxart_set_oneshot(struct clock_event_device *evt)
static int moxart_set_periodic(struct clock_event_device *evt) static int moxart_set_periodic(struct clock_event_device *evt)
{ {
writel(clock_count_per_tick, base + TIMER1_BASE + REG_LOAD); writel(clock_count_per_tick, base + TIMER1_BASE + REG_LOAD);
writel(TIMER1_ENABLE, base + TIMER_CR); moxart_enable(evt);
return 0; return 0;
} }
static int moxart_clkevt_next_event(unsigned long cycles, static int moxart_clkevt_next_event(unsigned long cycles,
struct clock_event_device *unused) struct clock_event_device *evt)
{ {
u32 u; u32 u;
writel(TIMER1_DISABLE, base + TIMER_CR); moxart_disable(evt);
u = readl(base + TIMER1_BASE + REG_COUNT) - cycles; u = readl(base + TIMER1_BASE + REG_COUNT) - cycles;
writel(u, base + TIMER1_BASE + REG_MATCH1); writel(u, base + TIMER1_BASE + REG_MATCH1);
writel(TIMER1_ENABLE, base + TIMER_CR); moxart_enable(evt);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment