Skip to content

Commit

Permalink
ARM: plat-nomadik: modernize MTU timer
Browse files Browse the repository at this point in the history
Modernize the MTU timer to rely on the clockevents core to
calculate mult and shift and setup the clock event.

Acked-by: Alessandro Rubini <rubini@unipv.it>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Linus Walleij committed Jan 30, 2012
1 parent d3e8b75 commit a3b86a6
Showing 1 changed file with 3 additions and 20 deletions.
23 changes: 3 additions & 20 deletions arch/arm/plat-nomadik/timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,6 @@
#include <asm/mach/time.h>
#include <asm/sched_clock.h>

/*
* Guaranteed runtime conversion range in seconds for
* the clocksource and clockevent.
*/
#define MTU_MIN_RANGE 4

/*
* The MTU device hosts four different counters, with 4 set of
* registers. These are register names.
Expand Down Expand Up @@ -102,7 +96,6 @@ static int nmdk_clkevt_next(unsigned long evt, struct clock_event_device *ev)
void nmdk_clkevt_reset(void)
{
if (clkevt_periodic) {

/* Timer: configure load and background-load, and fire it up */
writel(nmdk_cycle, mtu_base + MTU_LR(1));
writel(nmdk_cycle, mtu_base + MTU_BGLR(1));
Expand All @@ -120,7 +113,6 @@ void nmdk_clkevt_reset(void)
static void nmdk_clkevt_mode(enum clock_event_mode mode,
struct clock_event_device *dev)
{

switch (mode) {
case CLOCK_EVT_MODE_PERIODIC:
clkevt_periodic = true;
Expand Down Expand Up @@ -224,17 +216,8 @@ void __init nmdk_timer_init(void __iomem *base)
setup_sched_clock(nomadik_read_sched_clock, 32, rate);
#endif

/* Timer 1 is used for events */

clockevents_calc_mult_shift(&nmdk_clkevt, rate, MTU_MIN_RANGE);

nmdk_clkevt.max_delta_ns =
clockevent_delta2ns(0xffffffff, &nmdk_clkevt);
nmdk_clkevt.min_delta_ns =
clockevent_delta2ns(0x00000002, &nmdk_clkevt);
nmdk_clkevt.cpumask = cpumask_of(0);

/* Register irq and clockevents */
/* Timer 1 is used for events, register irq and clockevents */
setup_irq(IRQ_MTU0, &nmdk_timer_irq);
clockevents_register_device(&nmdk_clkevt);
nmdk_clkevt.cpumask = cpumask_of(0);
clockevents_config_and_register(&nmdk_clkevt, rate, 2, 0xffffffffU);
}

0 comments on commit a3b86a6

Please sign in to comment.