X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Farm%2Fmach-clps711x%2Ftime.c;h=8a02e18a899ad912ac80b0ee3be389821ed3a523;hb=1be35e94e1da3669db492995cd2c8b1a37016b11;hp=58da84effd5e658c3db46221f8b660843bcf4fe2;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/arch/arm/mach-clps711x/time.c b/arch/arm/mach-clps711x/time.c index 58da84eff..8a02e18a8 100644 --- a/arch/arm/mach-clps711x/time.c +++ b/arch/arm/mach-clps711x/time.c @@ -18,17 +18,12 @@ */ #include #include -#include -#include #include -#include -#include #include #include -#include - +extern unsigned long (*gettimeoffset)(void); /* * gettimeoffset() returns time since last timer tick, in usecs. @@ -43,36 +38,19 @@ static unsigned long clps711x_gettimeoffset(void) return (hwticks * (tick_nsec / 1000)) / LATCH; } -/* - * IRQ handler for the timer - */ -static irqreturn_t -p720t_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - timer_tick(regs); - return IRQ_HANDLED; -} - -static struct irqaction clps711x_timer_irq = { - .name = "CLPS711x Timer Tick", - .flags = SA_INTERRUPT, - .handler = p720t_timer_interrupt -}; - -void __init clps711x_init_time(void) +void __init clps711x_setup_timer(void) { struct timespec tv; unsigned int syscon; + gettimeoffset = clps711x_gettimeoffset; + syscon = clps_readl(SYSCON1); syscon |= SYSCON1_TC2S | SYSCON1_TC2M; clps_writel(syscon, SYSCON1); clps_writel(LATCH-1, TC2D); /* 512kHz / 100Hz - 1 */ - setup_irq(IRQ_TC2OI, &clps711x_timer_irq); - gettimeoffset = clps711x_gettimeoffset; - tv.tv_nsec = 0; tv.tv_sec = clps_readl(RTCDR); do_settimeofday(&tv);