Merge branch 'kconfig-for-40' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek...
[pandora-kernel.git] / arch / arm / mach-u300 / timer.c
index 3ec58bd..891cf44 100644 (file)
@@ -333,20 +333,6 @@ static struct irqaction u300_timer_irq = {
        .handler        = u300_timer_interrupt,
 };
 
-/* Use general purpose timer 2 as clock source */
-static cycle_t u300_get_cycles(struct clocksource *cs)
-{
-       return (cycles_t) readl(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC);
-}
-
-static struct clocksource clocksource_u300_1mhz = {
-       .name           = "GPT2",
-       .rating         = 300, /* Reasonably fast and accurate clock source */
-       .read           = u300_get_cycles,
-       .mask           = CLOCKSOURCE_MASK(32), /* 32 bits */
-       .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
-};
-
 /*
  * Override the global weak sched_clock symbol with this
  * local implementation which uses the clocksource to get some
@@ -422,7 +408,9 @@ static void __init u300_timer_init(void)
        writel(U300_TIMER_APP_EGPT2_TIMER_ENABLE,
                U300_TIMER_APP_VBASE + U300_TIMER_APP_EGPT2);
 
-       if (clocksource_register_hz(&clocksource_u300_1mhz, rate))
+       /* Use general purpose timer 2 as clock source */
+       if (clocksource_mmio_init(U300_TIMER_APP_VBASE + U300_TIMER_APP_GPT2CC,
+                       "GPT2", rate, 300, 32, clocksource_mmio_readl_up))
                printk(KERN_ERR "timer: failed to initialize clock "
                       "source %s\n", clocksource_u300_1mhz.name);