driver: uart stm32: Check irq enabled in API calls
When calling irq_rx_ready or irq_tx_ready API, return the logical AND
between the irq status and the enable of that irq.
Signed-off-by: Nicolas VINCENT <nicolas.vincent@vossloh.com>
diff --git a/drivers/serial/uart_stm32.c b/drivers/serial/uart_stm32.c
index e4c3359..ea51a50 100644
--- a/drivers/serial/uart_stm32.c
+++ b/drivers/serial/uart_stm32.c
@@ -533,7 +533,8 @@
{
USART_TypeDef *UartInstance = UART_STRUCT(dev);
- return LL_USART_IsActiveFlag_TXE(UartInstance);
+ return LL_USART_IsActiveFlag_TXE(UartInstance) &&
+ LL_USART_IsEnabledIT_TC(UartInstance);
}
static int uart_stm32_irq_tx_complete(const struct device *dev)
@@ -561,7 +562,8 @@
{
USART_TypeDef *UartInstance = UART_STRUCT(dev);
- return LL_USART_IsActiveFlag_RXNE(UartInstance);
+ return LL_USART_IsActiveFlag_RXNE(UartInstance) &&
+ LL_USART_IsEnabledIT_RXNE(UartInstance);
}
static void uart_stm32_irq_err_enable(const struct device *dev)