# 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
	select DMA if UART_ASYNC_API
	help
	  This option enables the UART driver for STM32 family of
	  processors.
	  Say y if you wish to use serial port on STM32 MCU.
