Skip to content

Commit 1f95b06

Browse files
AlessandroLuokartben
authored andcommitted
drivers: uart: ambiq: fix incorrect uart tx ready status
This commit fixes incorrect uart tx ready status Signed-off-by: Hao Luo <[email protected]>
1 parent 80953bb commit 1f95b06

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

drivers/serial/uart_ambiq.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -411,16 +411,18 @@ static int uart_ambiq_irq_tx_ready(const struct device *dev)
411411
{
412412
const struct uart_ambiq_config *cfg = dev->config;
413413
struct uart_ambiq_data *data = dev->data;
414-
uint32_t status, flag = 0;
414+
uint32_t status, flag, ier = 0;
415415

416416
if (!(UARTn(cfg->inst_idx)->CR & UART0_CR_TXE_Msk)) {
417417
return false;
418418
}
419419

420420
/* Check for TX interrupt status is set or TX FIFO is empty. */
421-
am_hal_uart_interrupt_status_get(data->uart_handler, &status, true);
421+
am_hal_uart_interrupt_status_get(data->uart_handler, &status, false);
422422
am_hal_uart_flags_get(data->uart_handler, &flag);
423-
return ((status & UART0_IES_TXRIS_Msk) || (flag & AM_HAL_UART_FR_TX_EMPTY));
423+
am_hal_uart_interrupt_enable_get(data->uart_handler, &ier);
424+
return ((ier & AM_HAL_UART_INT_TX) &&
425+
((status & UART0_IES_TXRIS_Msk) || (flag & AM_HAL_UART_FR_TX_EMPTY)));
424426
}
425427

426428
static void uart_ambiq_irq_rx_enable(const struct device *dev)

0 commit comments

Comments
 (0)