trigger hardware watchdog in IXP42x serial driver
authorMichael Schwingen <michael@schwingen.org>
Sun, 22 May 2011 21:59:59 +0000 (23:59 +0200)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Thu, 23 Jun 2011 06:24:55 +0000 (08:24 +0200)
Signed-off-by: Michael Schwingen <michael@schwingen.org>
drivers/serial/serial_ixp.c

index dd26af49b54d00e21fb5dac5519dd82031cdcfa8..a9acd476c45f2eaceae149fc444c1c3dc66f6d56 100644 (file)
@@ -30,6 +30,7 @@
 
 #include <common.h>
 #include <asm/arch/ixp425.h>
+#include <watchdog.h>
 
 /*
  *               14.7456 MHz
@@ -85,7 +86,8 @@ int serial_init (void)
 void serial_putc (const char c)
 {
        /* wait for room in the tx FIFO on UART */
-       while ((LSR(CONFIG_SYS_IXP425_CONSOLE) & LSR_TEMT) == 0);
+       while ((LSR(CONFIG_SYS_IXP425_CONSOLE) & LSR_TEMT) == 0)
+               WATCHDOG_RESET();       /* Reset HW Watchdog, if needed */
 
        THR(CONFIG_SYS_IXP425_CONSOLE) = c;
 
@@ -111,7 +113,8 @@ int serial_tstc (void)
  */
 int serial_getc (void)
 {
-       while (!(LSR(CONFIG_SYS_IXP425_CONSOLE) & LSR_DR));
+       while (!(LSR(CONFIG_SYS_IXP425_CONSOLE) & LSR_DR))
+               WATCHDOG_RESET();       /* Reset HW Watchdog, if needed */
 
        return (char) RBR(CONFIG_SYS_IXP425_CONSOLE) & 0xff;
 }