*/
/* Set the watchdog timer to reset immediately */
-//TODO sb_watchdog(sbh, 1);
+ ssb_chipco_watchdog(&ssb.chipco, 1);
while (1)
cpu_relax();
}
{
/* Disable interrupts and watchdog and spin forever */
local_irq_disable();
-//TODO sb_watchdog(sbh, 0);
+ ssb_chipco_watchdog(&ssb.chipco, 0);
while (1)
cpu_relax();
}
return nr_ports;
}
#endif /* CONFIG_SSB_SERIAL */
+
+/* Set chip watchdog reset timer to fire in 'ticks' backplane cycles */
+int
+ssb_chipco_watchdog(struct ssb_chipcommon *cc, uint ticks)
+{
+ /* instant NMI */
+ chipco_write32(cc, SSB_CHIPCO_WATCHDOG, ticks);
+ return 0;
+}
+EXPORT_SYMBOL(ssb_chipco_watchdog);
}
/* TODO: GPIO reservation */
+extern int ssb_chipco_watchdog(struct ssb_chipcommon *cc, uint ticks);
#ifdef CONFIG_SSB_SERIAL
extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc,