blob: a3041b2cae6103bde1e2715b6d72ba22b0c6c019 [file] [log] [blame]
# Serial driver configuration options
# Copyright (c) 2014-2015 Wind River Systems, Inc.
# SPDX-License-Identifier: Apache-2.0
menuconfig SERIAL
bool "Serial drivers"
help
Enable options for serial drivers.
if SERIAL
comment "Capabilities"
config SERIAL_HAS_DRIVER
bool
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_ASYNC
bool
help
This is an option to be enabled by individual serial driver
to signal that the driver and hardware supports async operation.
config SERIAL_SUPPORT_INTERRUPT
bool
help
This is an option to be enabled by individual serial driver
to signal that the driver and hardware supports interrupts.
config SERIAL_INIT_PRIORITY
int "Serial init priority"
default KERNEL_INIT_PRIORITY_DEVICE
help
Serial driver device initialization priority.
module = UART
module-str = uart
source "subsys/logging/Kconfig.template.log_config"
config SERIAL_SUPPORT_WIDE_DATA
bool
help
This is an option to be enabled by individual serial driver
to signal that the driver and hardware support data longer
than 8-bit.
config UART_USE_RUNTIME_CONFIGURE
bool "Runtime configuration for UART controllers"
default y
help
Enable runtime configuration of UART controllers.
This allows applications to call uart_configure() to
configure the UART controllers at runtime, and calling
uart_config_get() to retrieve configuration. If this is
disabled, UART controllers rely on UART driver's
initialization function to properly configure
the controller.
Say y if unsure. Disable this to reduce footprint for
applications that do not require runtime UART configuration.
config UART_ASYNC_API
bool "Asynchronous UART API"
depends on SERIAL_SUPPORT_ASYNC
help
This option enables asynchronous UART API.
config UART_INTERRUPT_DRIVEN
bool "UART Interrupt support"
depends on SERIAL_SUPPORT_INTERRUPT
help
This option enables interrupt support for UART allowing console
input and other UART based drivers.
config UART_EXCLUSIVE_API_CALLBACKS
bool "Use exclusive callbacks for multiple APIs"
depends on UART_ASYNC_API && UART_INTERRUPT_DRIVEN
default y
help
When multiple set of APIs support callbacks, enabling this
option will result in only the callbacks of one set of API
being active at a time. Setting a new callback to one set of
API will remove callbacks to other set of APIs. For example,
calling uart_callback_set() would disable the callback
previously set via uart_irq_callback_set().
Says yes unless you are absolutely sure you know what you are
doing and promise not to file bug when things do not work out.
config UART_LINE_CTRL
bool "Serial Line Control API"
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 "Driver commands API"
help
This enables the API to send extra commands to drivers.
This allows drivers to expose hardware specific functions.
Says no if not sure.
config UART_WIDE_DATA
bool "API to support data longer than 8-bit"
help
This enables the API to process data longer than 8-bit.
This is up to the driver to implement the necessary functions
to properly support this.
config UART_PIPE
bool "Pipe UART driver"
select UART_INTERRUPT_DRIVEN
help
Enable pipe UART driver. This driver allows application to communicate
over UART with custom defined protocol. Driver doesn't inspect received
data (as contrary to console UART driver) and all aspects of received
protocol data are handled by application provided callback.
config UART_ASYNC_RX_HELPER
bool "Helper for UART asynchronous reception"
help
Module implements handling of reception of variable length data using
Asynchronous UART API. It can be used in cases where received data processing
is delayed. Module implements zero-copy approach with multiple reception
buffers.
config UART_ASYNC_TO_INT_DRIVEN_API
bool
select UART_ASYNC_RX_HELPER
help
Asynchronous to Interrupt driven adaptation layer. When enabled device
which implements only asynchronous API can be used with interrupt driven
API implemented by the generic adaptation layer.
config UART_ASYNC_TO_INT_DRIVEN_RX_TIMEOUT
int "Receiver timeout (in bauds)"
depends on UART_ASYNC_TO_INT_DRIVEN_API
default 100
help
Receiver inactivity timeout. It is used to calculate timeout in microseconds.
comment "Serial Drivers"
source "drivers/serial/Kconfig.b91"
source "drivers/serial/Kconfig.ns16550"
source "drivers/serial/Kconfig.mcux"
source "drivers/serial/Kconfig.mcux_flexcomm"
source "drivers/serial/Kconfig.mcux_iuart"
source "drivers/serial/Kconfig.mcux_lpsci"
source "drivers/serial/Kconfig.mcux_lpuart"
source "drivers/serial/Kconfig.miv"
source "drivers/serial/Kconfig.imx"
source "drivers/serial/Kconfig.it8xxx2"
source "drivers/serial/Kconfig.stellaris"
source "drivers/serial/Kconfig.native_posix"
source "drivers/serial/Kconfig.usart_sam"
source "drivers/serial/Kconfig.uart_sam"
source "drivers/serial/Kconfig.stm32"
source "drivers/serial/Kconfig.nrfx"
source "drivers/serial/Kconfig.altera_jtag"
source "drivers/serial/Kconfig.cc13xx_cc26xx"
source "drivers/serial/Kconfig.cc32xx"
source "drivers/serial/Kconfig.cmsdk_apb"
source "drivers/serial/Kconfig.sifive"
source "drivers/serial/Kconfig.esp32"
source "drivers/serial/Kconfig.gecko"
source "drivers/serial/Kconfig.leuart_gecko"
source "drivers/serial/Kconfig.msp432p4xx"
source "drivers/serial/Kconfig.numicro"
source "drivers/serial/Kconfig.sam0"
source "drivers/serial/Kconfig.psoc6"
source "drivers/serial/Kconfig.pl011"
source "drivers/serial/Kconfig.ql_usbserialport_s3b"
source "drivers/serial/Kconfig.rv32m1_lpuart"
source "drivers/serial/Kconfig.rpi_pico"
source "drivers/serial/Kconfig.litex"
source "drivers/serial/Kconfig.rtt"
source "drivers/serial/Kconfig.xlnx"
source "drivers/serial/Kconfig.xmc4xxx"
source "drivers/serial/Kconfig.lpc11u6x"
source "drivers/serial/Kconfig.npcx"
source "drivers/serial/Kconfig.apbuart"
source "drivers/serial/Kconfig.rcar"
source "drivers/serial/Kconfig.xec"
source "drivers/serial/Kconfig.gd32"
source "drivers/serial/Kconfig.test"
source "drivers/serial/Kconfig.neorv32"
source "drivers/serial/Kconfig.xen"
source "drivers/serial/Kconfig.ifx_cat1"
source "drivers/serial/Kconfig.smartbond"
source "drivers/serial/Kconfig.nxp_s32"
source "drivers/serial/Kconfig.cdns"
source "drivers/serial/Kconfig.opentitan"
source "drivers/serial/Kconfig.altera"
source "drivers/serial/Kconfig.hostlink"
source "drivers/serial/Kconfig.emul"
source "drivers/serial/Kconfig.native_tty"
source "drivers/serial/Kconfig.numaker"
source "drivers/serial/Kconfig.efinix_sapphire"
source "drivers/serial/Kconfig.sedi"
source "drivers/serial/Kconfig.bcm2711"
source "drivers/serial/Kconfig.intel_lw"
source "drivers/serial/Kconfig.renesas_ra"
source "drivers/serial/Kconfig.rzt2m"
endif # SERIAL