lm4f/uart: Implemented a function to get the current parity setting for a UART

This commit is contained in:
dragonmux
2022-08-23 03:19:59 +01:00
committed by Piotr Esden-Tempski
parent f0262cb4a9
commit 10cfbd7652
2 changed files with 21 additions and 0 deletions

View File

@@ -214,6 +214,26 @@ void uart_set_parity(uint32_t uart, enum uart_parity parity)
UART_LCRH(uart) = reg32;
}
enum uart_parity uart_get_parity(uint32_t uart)
{
const uint32_t reg32 = UART_LCRH(uart);
/* Check if parity is even enabled */
if (!(reg32 & UART_LCRH_PEN))
return UART_PARITY_NONE;
/* Check for sticky modes */
if (reg32 & UART_LCRH_SPS) {
if (reg32 & UART_LCRH_EPS) {
return UART_PARITY_STICK_0;
}
return UART_PARITY_STICK_1;
} else {
if (reg32 & UART_LCRH_EPS) {
return UART_PARITY_EVEN;
}
return UART_PARITY_ODD;
}
}
/**
* \brief Set the flow control scheme
*