]> git.sur5r.net Git - u-boot/blobdiff - arch/avr32/cpu/interrupts.c
Merge branch 'master' of git://git.denx.de/u-boot-arm
[u-boot] / arch / avr32 / cpu / interrupts.c
index 8406f912246114e77c804d13f41fd4e0c5c6470d..d87c6e11665daa9ffe0a486a03ec769e7ff77f38 100644 (file)
@@ -46,7 +46,7 @@ static unsigned long tb_factor;
 
 unsigned long get_tbclk(void)
 {
-       return gd->cpu_hz;
+       return gd->arch.cpu_hz;
 }
 
 unsigned long long get_ticks(void)
@@ -62,13 +62,6 @@ unsigned long long get_ticks(void)
        return ((unsigned long long)hi_now << 32) | lo;
 }
 
-void reset_timer(void)
-{
-       sysreg_write(COUNT, 0);
-       cpu_sync_pipeline();    /* process any pending interrupts */
-       timer_overflow = 0;
-}
-
 unsigned long get_timer(unsigned long base)
 {
        u64 now = get_ticks();
@@ -114,7 +107,7 @@ static int set_interrupt_handler(unsigned int nr, void (*handler)(void),
        return 0;
 }
 
-void timer_init(void)
+int timer_init(void)
 {
        extern void timer_interrupt_handler(void);
        u64 tmp;
@@ -122,13 +115,14 @@ void timer_init(void)
        sysreg_write(COUNT, 0);
 
        tmp = (u64)CONFIG_SYS_HZ << 32;
-       tmp += gd->cpu_hz / 2;
-       do_div(tmp, gd->cpu_hz);
+       tmp += gd->arch.cpu_hz / 2;
+       do_div(tmp, gd->arch.cpu_hz);
        tb_factor = (u32)tmp;
 
        if (set_interrupt_handler(0, &timer_interrupt_handler, 3))
-               return;
+               return -EINVAL;
 
        /* For all practical purposes, this gives us an overflow interrupt */
        sysreg_write(COMPARE, 0xffffffff);
+       return 0;
 }