xtensa/esp32: Applies REG_MASK to extract a field value
This commit is contained in:
parent
50daf24242
commit
873293cc3f
@ -443,13 +443,10 @@ static uint32_t esp32_get_rx_fifo_len(struct esp32_dev_s *priv)
|
|||||||
uint32_t len;
|
uint32_t len;
|
||||||
|
|
||||||
mem_rx_status_reg = getreg32(UART_MEM_RX_STATUS_REG(priv->config->id));
|
mem_rx_status_reg = getreg32(UART_MEM_RX_STATUS_REG(priv->config->id));
|
||||||
rd_address = ((mem_rx_status_reg & UART_RD_ADDRESS_M)
|
rd_address = REG_MASK(mem_rx_status_reg, UART_RD_ADDRESS);
|
||||||
>> UART_RD_ADDRESS_S);
|
wr_address = REG_MASK(mem_rx_status_reg, UART_WR_ADDRESS);
|
||||||
wr_address = ((mem_rx_status_reg & UART_WR_ADDRESS_M)
|
|
||||||
>> UART_WR_ADDRESS_S);
|
|
||||||
rx_status_reg = getreg32(UART_STATUS_REG(priv->config->id));
|
rx_status_reg = getreg32(UART_STATUS_REG(priv->config->id));
|
||||||
fifo_cnt = ((rx_status_reg & UART_RXFIFO_CNT_M)
|
fifo_cnt = REG_MASK(rx_status_reg, UART_RXFIFO_CNT);
|
||||||
>> UART_RXFIFO_CNT_S);
|
|
||||||
|
|
||||||
if (wr_address > rd_address)
|
if (wr_address > rd_address)
|
||||||
{
|
{
|
||||||
@ -611,8 +608,8 @@ static int esp32_setup(struct uart_dev_s *dev)
|
|||||||
/* Configure and enable the UART */
|
/* Configure and enable the UART */
|
||||||
|
|
||||||
putreg32(conf0, UART_CONF0_REG(priv->config->id));
|
putreg32(conf0, UART_CONF0_REG(priv->config->id));
|
||||||
regval = (UART_RX_FIFO_FULL_THRHD << UART_RXFIFO_FULL_THRHD_S) |
|
regval = VALUE_TO_FIELD(UART_RX_FIFO_FULL_THRHD, UART_RXFIFO_FULL_THRHD) |
|
||||||
(UART_RX_TOUT_THRHD_VALUE << UART_RX_TOUT_THRHD_S) |
|
VALUE_TO_FIELD(UART_RX_TOUT_THRHD_VALUE, UART_RX_TOUT_THRHD) |
|
||||||
UART_RX_TOUT_EN;
|
UART_RX_TOUT_EN;
|
||||||
putreg32(regval, UART_CONF1_REG(priv->config->id));
|
putreg32(regval, UART_CONF1_REG(priv->config->id));
|
||||||
#endif
|
#endif
|
||||||
@ -827,7 +824,7 @@ static int esp32_interrupt(int cpuint, void *context, FAR void *arg)
|
|||||||
if ((enabled & (UART_TX_DONE_INT_ENA | UART_TXFIFO_EMPTY_INT_ENA))
|
if ((enabled & (UART_TX_DONE_INT_ENA | UART_TXFIFO_EMPTY_INT_ENA))
|
||||||
!= 0)
|
!= 0)
|
||||||
{
|
{
|
||||||
nfifo = (status & UART_TXFIFO_CNT_M) >> UART_TXFIFO_CNT_S;
|
nfifo = REG_MASK(status, UART_TXFIFO_CNT);
|
||||||
if (nfifo < 0x7f)
|
if (nfifo < 0x7f)
|
||||||
{
|
{
|
||||||
/* The TXFIFO is not full ... process outgoing bytes */
|
/* The TXFIFO is not full ... process outgoing bytes */
|
||||||
@ -1066,7 +1063,7 @@ static int esp32_receive(struct uart_dev_s *dev, unsigned int *status)
|
|||||||
|
|
||||||
rx_fifo = getreg32(DR_UART_FIFO_REG(priv->config->id));
|
rx_fifo = getreg32(DR_UART_FIFO_REG(priv->config->id));
|
||||||
|
|
||||||
return (int)(rx_fifo & UART_RXFIFO_RD_BYTE_M);
|
return (int)REG_MASK(rx_fifo, UART_RXFIFO_RD_BYTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -1192,19 +1189,13 @@ static void esp32_txint(struct uart_dev_s *dev, bool enable)
|
|||||||
static bool esp32_txready(struct uart_dev_s *dev)
|
static bool esp32_txready(struct uart_dev_s *dev)
|
||||||
{
|
{
|
||||||
uint32_t txcnt;
|
uint32_t txcnt;
|
||||||
|
uint32_t reg;
|
||||||
struct esp32_dev_s *priv = (struct esp32_dev_s *)dev->priv;
|
struct esp32_dev_s *priv = (struct esp32_dev_s *)dev->priv;
|
||||||
|
|
||||||
txcnt = (getreg32(UART_STATUS_REG(priv->config->id)) >> UART_TXFIFO_CNT_S)
|
reg = getreg32(UART_STATUS_REG(priv->config->id));
|
||||||
& UART_TXFIFO_CNT_V;
|
txcnt = REG_MASK(reg, UART_TXFIFO_CNT);
|
||||||
|
|
||||||
if (txcnt < (UART_TX_FIFO_SIZE -1))
|
return (txcnt < (UART_TX_FIFO_SIZE - 1));
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
Loading…
Reference in New Issue
Block a user