UART_DR
while (GETREG(bas, UART_DR) & DR_TX_FIFO_FULL)
SETREG(bas, UART_DR, c);
if (GETREG(bas, UART_DR) & DR_RX_FIFO_EMPTY)
reg = GETREG(bas, UART_DR);
if ((GETREG(bas, UART_DR) & DR_RX_FIFO_EMPTY) == 0)
reg = GETREG(bas, UART_DR);
while (GETREG(bas, UART_DR) & DR_TX_FIFO_FULL)
SETREG(bas, UART_DR, sc->sc_txbuf[i] & 0xff);
volatile uint32_t *dr = (uint32_t *)(socdev_va + UART_DR * 4);
__uart_setreg(bas, UART_DR, c & 0xff);
c = __uart_getreg(bas, UART_DR) & 0xff;
xc = __uart_getreg(bas, UART_DR);
__uart_setreg(bas, UART_DR, sc->sc_txbuf[i]);