diff options
author | Stuart Wood <stuart.wood@labxtechnologies.com> | 2008-06-02 16:42:19 -0400 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2008-06-29 19:53:30 +0200 |
commit | 8b616edb118e37d05f6401389eaee1c636b22828 (patch) | |
tree | c6b6dec1831b2dfc7be292c476f7d3f493a29979 | |
parent | 86d3273e2b7be3fffb45e20c08535d6ad3aded6b (diff) | |
download | u-boot-imx-8b616edb118e37d05f6401389eaee1c636b22828.zip u-boot-imx-8b616edb118e37d05f6401389eaee1c636b22828.tar.gz u-boot-imx-8b616edb118e37d05f6401389eaee1c636b22828.tar.bz2 |
serial_pl010.c: add watchdog support
Signed-off-by: Stuart Wood <stuart.wood@labxtechnologies.com>
-rw-r--r-- | drivers/serial/serial_pl010.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/serial/serial_pl010.c b/drivers/serial/serial_pl010.c index 417b6ae..134ed09 100644 --- a/drivers/serial/serial_pl010.c +++ b/drivers/serial/serial_pl010.c @@ -29,6 +29,7 @@ /* Should be fairly simple to make it work with the PL010 as well */ #include <common.h> +#include <watchdog.h> #ifdef CFG_PL010_SERIAL @@ -137,7 +138,8 @@ void serial_setbrg (void) static void pl010_putc (int portnum, char c) { /* Wait until there is space in the FIFO */ - while (IO_READ (port[portnum] + UART_PL01x_FR) & UART_PL01x_FR_TXFF); + while (IO_READ (port[portnum] + UART_PL01x_FR) & UART_PL01x_FR_TXFF) + WATCHDOG_RESET(); /* Send the character */ IO_WRITE (port[portnum] + UART_PL01x_DR, c); @@ -148,7 +150,8 @@ static int pl010_getc (int portnum) unsigned int data; /* Wait until there is data in the FIFO */ - while (IO_READ (port[portnum] + UART_PL01x_FR) & UART_PL01x_FR_RXFE); + while (IO_READ (port[portnum] + UART_PL01x_FR) & UART_PL01x_FR_RXFE) + WATCHDOG_RESET(); data = IO_READ (port[portnum] + UART_PL01x_DR); @@ -164,6 +167,7 @@ static int pl010_getc (int portnum) static int pl010_tstc (int portnum) { + WATCHDOG_RESET(); return !(IO_READ (port[portnum] + UART_PL01x_FR) & UART_PL01x_FR_RXFE); } |