diff options
author | Michael Schwingen <michael@schwingen.org> | 2011-05-22 23:59:59 +0200 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2011-06-23 08:24:55 +0200 |
commit | 009e464802569bc97c03c52f76fdf7e38040b634 (patch) | |
tree | 8dc65a1cfec5eb5c4a8a1bea24c90d6893a999c5 /drivers/serial | |
parent | 20f172815d59d2788b7136a810439c28dc61c4c6 (diff) |
trigger hardware watchdog in IXP42x serial driver
Signed-off-by: Michael Schwingen <michael@schwingen.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/serial_ixp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/serial/serial_ixp.c b/drivers/serial/serial_ixp.c index dd26af49b54..a9acd476c45 100644 --- a/drivers/serial/serial_ixp.c +++ b/drivers/serial/serial_ixp.c @@ -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; } |