# Kconfig - serial driver configuration options

#
# Copyright (c) 2014-2015 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig SERIAL
	bool
	prompt "Serial Drivers"
	default n
	help
	Enable options for serial drivers.

if SERIAL

comment "Capabilities"

config SERIAL_HAS_DRIVER
	bool
	default n
	help
	This is an option to be enabled by individual serial driver
	to signal that there is a serial driver. This is being used
	by other drivers which are dependent on serial.

config SERIAL_SUPPORT_INTERRUPT
	bool
	default n
	help
	This is an option to be enabled by individual serial driver
	to signal that the driver and hardware supports interrupts.

config UART_INTERRUPT_DRIVEN
	bool
	prompt "Enable UART Interrupt support"
	default n
	depends on SERIAL_SUPPORT_INTERRUPT
	help
	This option enables interrupt support for UART allowing console
	input and other UART based drivers.

config UART_LINE_CTRL
	bool "Enable Serial Line Control API"
	default n
	help
	This enables the API for apps to control the serial line,
	such as baud rate, CTS and RTS.

	Implementation is up to individual driver.

	Says no if not sure.

config UART_DRV_CMD
	bool "Enable driver commands API"
	default n
	help
	This enables the API to send extra commands to drivers.
	This allows drivers to expose hardware specific functions.

	Says no if not sure.

comment "Serial Drivers"

source "drivers/serial/Kconfig.ns16550"

source "drivers/serial/Kconfig.mcux"

source "drivers/serial/Kconfig.mcux_lpsci"

source "drivers/serial/Kconfig.mcux_lpuart"

source "drivers/serial/Kconfig.stellaris"

source "drivers/serial/Kconfig.nsim"

source "drivers/serial/Kconfig.atmel_sam3"

source "drivers/serial/Kconfig.usart_sam"

source "drivers/serial/Kconfig.uart_sam"

source "drivers/serial/Kconfig.qmsi"

source "drivers/serial/Kconfig.stm32"

source "drivers/serial/Kconfig.nrf5"

source "drivers/serial/Kconfig.altera_jtag"

source "drivers/serial/Kconfig.cc32xx"

source "drivers/serial/Kconfig.cmsdk_apb"

source "drivers/serial/Kconfig.riscv_qemu"

source "drivers/serial/Kconfig.fe310"

source "drivers/serial/Kconfig.esp32"

source "drivers/serial/Kconfig.gecko"

source "drivers/serial/Kconfig.msp432p4xx"

endif
