Browse Source

serial_pl010.c: add watchdog support

Signed-off-by: Stuart Wood <stuart.wood@labxtechnologies.com>
Stuart Wood 17 years ago
parent
commit
8b616edb11
1 changed files with 6 additions and 2 deletions
  1. 6 2
      drivers/serial/serial_pl010.c

+ 6 - 2
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);
 }