summaryrefslogtreecommitdiff
path: root/drivers/tty/serial/stm32-usart.h
diff options
context:
space:
mode:
authorValentin Caron <valentin.caron@foss.st.com>2024-01-12 10:53:00 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-01-27 19:04:11 -0800
commit5d207f62cec8d6e6f0fb6f35495723bf3960daf7 (patch)
treea54f0ffbc51476eb8150ae086d46d61e05f1bddc /drivers/tty/serial/stm32-usart.h
parent7be985bd7cd5c6c605ec710e691620b8afb983fd (diff)
serial: stm32: get FIFO size from hwcfg register
Since STM32MP25, FIFO size could vary regarding the STM32MPxx version. So we get this size from "hwcfgr1" register and compute threshold values corresponding to the ratio given by reference manual. As STM32MP1x, STM32MP25 and STM32H7 share the same compatible and STM32H7 doesn't have a register to get FIFO size, we force FIFO size to 16 in case of zero read from hwcfgr1 register. Signed-off-by: Valentin Caron <valentin.caron@foss.st.com> Link: https://lore.kernel.org/r/20240112095300.2004878-5-valentin.caron@foss.st.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/stm32-usart.h')
-rw-r--r--drivers/tty/serial/stm32-usart.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/tty/serial/stm32-usart.h b/drivers/tty/serial/stm32-usart.h
index bf3720948704..af20258ccc7a 100644
--- a/drivers/tty/serial/stm32-usart.h
+++ b/drivers/tty/serial/stm32-usart.h
@@ -21,6 +21,7 @@ struct stm32_usart_offsets {
u16 rdr;
u16 tdr;
u16 presc;
+ u16 hwcfgr1;
};
struct stm32_usart_config {
@@ -29,7 +30,6 @@ struct stm32_usart_config {
bool has_swap;
bool has_wakeup;
bool has_fifo;
- int fifosize;
};
struct stm32_usart_info {
@@ -182,8 +182,12 @@ struct stm32_usart_info {
#define USART_PRESC GENMASK(3, 0) /* H7 */
#define USART_PRESC_MAX 0b1011
+/* USART_HWCFCR1 */
+#define USART_HWCFGR1_CFG8 GENMASK(31, 28) /* MP1 */
+
#define STM32_SERIAL_NAME "ttySTM"
#define STM32_MAX_PORTS 9
+#define STM32H7_USART_FIFO_SIZE 16
#define RX_BUF_L 4096 /* dma rx buffer length */
#define RX_BUF_P (RX_BUF_L / 2) /* dma rx buffer period */