dm36x: uart.c allow easy switch between UART ports.

This commit is contained in:
Kelvin Lawson
2013-09-17 15:41:45 +01:00
parent 59728345e6
commit d1ac6d8768
+11 -8
View File
@@ -46,6 +46,9 @@
/* Constants */ /* Constants */
/** Select relevant UART for this platform */
#define UART_BASE DM36X_UART1_BASE
/** FR Register bits */ /** FR Register bits */
#define UART_FR_RXFE 0x10 #define UART_FR_RXFE 0x10
#define UART_LSR_TEMT 0x40 #define UART_LSR_TEMT 0x40
@@ -141,23 +144,23 @@ int uart_read (char *ptr, int len)
{ {
#if 0 #if 0
/* Wait for not-empty */ /* Wait for not-empty */
while(UART_FR(DM36X_UART0_BASE) & UART_FR_RXFE) while(UART_FR(UART_BASE) & UART_FR_RXFE)
; ;
/* Read first byte */ /* Read first byte */
*ptr++ = UART_DR(DM36X_UART0_BASE); *ptr++ = UART_DR(UART_BASE);
/* Loop over remaining bytes until empty */ /* Loop over remaining bytes until empty */
for (todo = 1; todo < len; todo++) for (todo = 1; todo < len; todo++)
{ {
/* Quit if receive FIFO empty */ /* Quit if receive FIFO empty */
if(UART_FR(DM36X_UART0_BASE) & UART_FR_RXFE) if(UART_FR(UART_BASE) & UART_FR_RXFE)
{ {
break; break;
} }
/* Read next byte */ /* Read next byte */
*ptr++ = UART_DR(DM36X_UART0_BASE); *ptr++ = UART_DR(UART_BASE);
} }
#endif #endif
@@ -206,11 +209,11 @@ int uart_write (const char *ptr, int len)
for (todo = 0; todo < len; todo++) for (todo = 0; todo < len; todo++)
{ {
/* Wait for empty */ /* Wait for empty */
while(UART_LSR(DM36X_UART0_BASE) & UART_LSR_TEMT) while(UART_LSR(UART_BASE) & UART_LSR_TEMT)
; ;
/* Write byte to UART */ /* Write byte to UART */
UART_DR(DM36X_UART0_BASE) = *ptr++; UART_DR(UART_BASE) = *ptr++;
} }
/* Return mutex access */ /* Return mutex access */
@@ -246,11 +249,11 @@ void uart_write_halt (const char *ptr)
while (*ptr != '\0') while (*ptr != '\0')
{ {
/* Wait for empty */ /* Wait for empty */
while(UART_LSR(DM36X_UART0_BASE) & UART_LSR_TEMT) while(UART_LSR(UART_BASE) & UART_LSR_TEMT)
; ;
/* Write byte to UART */ /* Write byte to UART */
UART_DR(DM36X_UART0_BASE) = *ptr++; UART_DR(UART_BASE) = *ptr++;
} }
} }