# Kconfig.beetle - ARM CMSDK APB SoC UART configuration options
#
#
# Copyright (c) 2016 Linaro Limited
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig UART_CMSDK_APB
	bool "ARM CMSDK APB UART driver"
	default n
	select SERIAL_HAS_DRIVER
	depends on SOC_FAMILY_ARM
	help
	  This option enables the UART driver for ARM CMSDK APB UART.

if UART_CMSDK_APB

# ---------- Port 0 ----------

config UART_CMSDK_APB_PORT0
	bool "Enable driver for UART 0"
	default n
	help
	  Build the driver to utilize UART controller Port 0.

# ---------- Port 1 ----------

config UART_CMSDK_APB_PORT1
	bool "Enable driver for UART 1"
	default n
	help
	  Build the driver to utilize UART controller Port 1.

# ---------- Port 2 ----------

config UART_CMSDK_APB_PORT2
	bool "Enable driver for UART 2"
	default n
	help
	  Build the driver to utilize UART controller Port 2.

# ---------- Port 3 ----------

config UART_CMSDK_APB_PORT3
	bool "Enable driver for UART 3"
	default n
	help
	  Build the driver to utilize UART controller Port 3.

# ---------- Port 4 ----------

config UART_CMSDK_APB_PORT4
	bool "Enable driver for UART 4"
	default n
	help
	  Build the driver to utilize UART controller Port 4.

endif # UART_CMSDK_APB
