update brcm-2.4 to 2.4.35.4, integrate new broadcom system code, update broadcom...
[openwrt-10.03/.git] / target / linux / brcm-2.4 / files / arch / mips / bcm947xx / time.c
index 9c502be5802bf96091a7bf6d37fa23b9c1171d12..03d5c85651c8461e3fd8c9e82e055c9f8b8e3d26 100644 (file)
 #include <osl.h>
 #include <bcmnvram.h>
 #include <sbconfig.h>
-#include <sbextif.h>
 #include <sbutils.h>
+#include <sbchipc.h>
 #include <hndmips.h>
 #include <mipsinc.h>
 #include <hndcpu.h>
+#include <bcmdevs.h>
 
 /* Global SB handle */
 extern void *bcm947xx_sbh;
@@ -39,13 +40,11 @@ extern spinlock_t bcm947xx_sbh_lock;
 
 extern int panic_timeout;
 static int watchdog = 0;
-static u8 *mcr = NULL;
 
 void __init
 bcm947xx_time_init(void)
 {
        unsigned int hz;
-       extifregs_t *eir;
 
        /*
         * Use deterministic values for initial counter interrupt
@@ -83,8 +82,13 @@ bcm947xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
        timer_interrupt(irq, dev_id, regs);
 
        /* Set the watchdog timer to reset after the specified number of ms */
-       if (watchdog > 0)
-               sb_watchdog(sbh, WATCHDOG_CLOCK / 1000 * watchdog);
+       if (watchdog > 0) {
+               if (sb_chip(sbh) == BCM5354_CHIP_ID)
+                       sb_watchdog(sbh, WATCHDOG_CLOCK_5354 / 1000 * watchdog);
+               else
+                       sb_watchdog(sbh, WATCHDOG_CLOCK / 1000 * watchdog);
+       }
+       
 }
 
 static struct irqaction bcm947xx_timer_irqaction = {