# Kconfig - STM32 UART configuration
#
# Copyright (c) 2016 Open-RnD Sp. z o.o.
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig UART_STM32
	bool "STM32 MCU serial driver"
	default n
	select SERIAL_HAS_DRIVER
	select SERIAL_SUPPORT_INTERRUPT
	depends on SOC_FAMILY_STM32
	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

# --- port 1 ---

config UART_STM32_PORT_1
	bool "Enable STM32 USART1 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for USART1 port in the driver.
	  Say y here if you want to use USART1 device.

# --- port 2 ---

config UART_STM32_PORT_2
	bool "Enable STM32 USART2 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for USART2 port in the driver.
	  Say y here if you want to use USART2 device.

# --- port 3 ---

config UART_STM32_PORT_3
	bool "Enable STM32 USART3 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for USART3 port in the driver.
	  Say y here if you want to use USART3 device.

# --- port 4 ---

config UART_STM32_PORT_4
	bool "Enable STM32 U(S)ART4 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for U(S)ART4 port in the driver.
	  Say y here if you want to use U(S)ART4 device.

# --- port 5 ---

config UART_STM32_PORT_5
	bool "Enable STM32 U(S)ART5 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for U(S)ART5 port in the driver.
	  Say y here if you want to use U(S)ART5 device.

# --- port 6 ---

config UART_STM32_PORT_6
	bool "Enable STM32 USART6 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for USART6 port in the driver.
	  Say y here if you want to use USART6 device.

# --- port 7 ---

config UART_STM32_PORT_7
	bool "Enable STM32 U(S)ART7 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for U(S)ART7 port in the driver.
	  Say y here if you want to use U(S)ART7 device.

# --- port 8 ---

config UART_STM32_PORT_8
	bool "Enable STM32 U(S)ART8 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for U(S)ART8 port in the driver.
	  Say y here if you want to use U(S)ART8 device.

# --- port 9 ---

config UART_STM32_PORT_9
	bool "Enable STM32 UART9 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for UART9 port in the driver.
	  Say y here if you want to use UART9 device.

# --- port 10 ---

config UART_STM32_PORT_10
	bool "Enable STM32 UART10 Port"
	default n
	depends on UART_STM32
	help
	  Enable support for UART10 port in the driver.
	  Say y here if you want to use UART10 device.

endif # UART_STM32
