zephyr/drivers/serial/Kconfig.stm32
Adam Berlinger c1a173a884 driver: uart: stm32: Add workaround for DMAT errata in low-power modes
This change adds additional workaround for following errata:
"USART does not generate DMA requests after setting/clearing DMAT bit"
Instead of keepint DMAT bit set, it sends first byte by polling
in firmware. This prevents additional power consumption in STOP mode,
caused by keeping DMAT bit set.

Signed-off-by: Adam Berlinger <adam.berlinger@st.com>
2025-05-09 17:59:49 +02:00

58 lines
1.7 KiB
Text

# STM32 UART configuration
# Copyright (c) 2016 Open-RnD Sp. z o.o.
# SPDX-License-Identifier: Apache-2.0
config UART_STM32
bool "STM32 MCU serial driver"
default y
depends on DT_HAS_ST_STM32_UART_ENABLED
select SERIAL_HAS_DRIVER
select SERIAL_SUPPORT_INTERRUPT
# the ASYNC implementation requires a DMA controller
select SERIAL_SUPPORT_ASYNC \
if DT_HAS_ST_STM32_DMA_V1_ENABLED || \
DT_HAS_ST_STM32_DMA_V2_ENABLED || \
DT_HAS_ST_STM32_DMA_V2BIS_ENABLED || \
DT_HAS_ST_STM32U5_DMA_ENABLED
select DMA if UART_ASYNC_API
select RESET
select PINCTRL
help
This option enables the UART driver for STM32 family of
processors.
Say y if you wish to use serial port on STM32 MCU.
if UART_STM32
if SOC_STM32U575XX || SOC_STM32U585XX || \
SOC_STM32H562XX || SOC_STM32H563XX || SOC_STM32H573XX
choice UART_STM32U5_ERRATA_DMAT
prompt "Workaround for DMAT errata on selected devices"
default UART_STM32U5_ERRATA_DMAT_LOWPOWER if PM
default UART_STM32U5_ERRATA_DMAT_NOCLEAR if !PM
help
Handles erratum "USART does not generate DMA requests after
setting/clearing DMAT bit".
Seen in Errata Sheet 0499 § 2.19.2 and §2.20.1 for stm32u57x/u58x,
Errata Sheet 0565 § 2.14.1 and §2.15.1 for stm32h56x/h57x
config UART_STM32U5_ERRATA_DMAT_LOWPOWER
bool "Send first byte by polling"
help
This option sends first byte via software polling and
rest of the buffer is sent via DMA. This option is suitable
for STOP low-power modes.
config UART_STM32U5_ERRATA_DMAT_NOCLEAR
bool "Do not clear DMAT"
help
This option keeps DMAT bit set. This may cause additional power
consumption in STOP low-power modes.
endchoice
endif # U575 || U585 || H562 || H563 || H573
endif # UART_STM32