| # 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" | 
 |  | 
 | rsource "Kconfig.b91" | 
 |  | 
 | rsource "Kconfig.ns16550" | 
 |  | 
 | rsource "Kconfig.mcux" | 
 |  | 
 | rsource "Kconfig.mcux_flexcomm" | 
 |  | 
 | rsource "Kconfig.mcux_iuart" | 
 |  | 
 | rsource "Kconfig.mcux_lpsci" | 
 |  | 
 | rsource "Kconfig.mcux_lpuart" | 
 |  | 
 | rsource "Kconfig.miv" | 
 |  | 
 | rsource "Kconfig.imx" | 
 |  | 
 | rsource "Kconfig.it8xxx2" | 
 |  | 
 | rsource "Kconfig.stellaris" | 
 |  | 
 | rsource "Kconfig.native_posix" | 
 |  | 
 | rsource "Kconfig.usart_sam" | 
 |  | 
 | rsource "Kconfig.uart_sam" | 
 |  | 
 | rsource "Kconfig.stm32" | 
 |  | 
 | rsource "Kconfig.nrfx" | 
 |  | 
 | rsource "Kconfig.altera_jtag" | 
 |  | 
 | rsource "Kconfig.cc13xx_cc26xx" | 
 |  | 
 | rsource "Kconfig.cc32xx" | 
 |  | 
 | rsource "Kconfig.cmsdk_apb" | 
 |  | 
 | rsource "Kconfig.sifive" | 
 |  | 
 | rsource "Kconfig.esp32" | 
 |  | 
 | rsource "Kconfig.gecko" | 
 |  | 
 | rsource "Kconfig.leuart_gecko" | 
 |  | 
 | rsource "Kconfig.msp432p4xx" | 
 |  | 
 | rsource "Kconfig.numicro" | 
 |  | 
 | rsource "Kconfig.sam0" | 
 |  | 
 | rsource "Kconfig.psoc6" | 
 |  | 
 | rsource "Kconfig.pl011" | 
 |  | 
 | rsource "Kconfig.ql_usbserialport_s3b" | 
 |  | 
 | rsource "Kconfig.rv32m1_lpuart" | 
 |  | 
 | rsource "Kconfig.rpi_pico" | 
 |  | 
 | rsource "Kconfig.litex" | 
 |  | 
 | rsource "Kconfig.rtt" | 
 |  | 
 | rsource "Kconfig.bt" | 
 |  | 
 | rsource "Kconfig.xlnx" | 
 |  | 
 | rsource "Kconfig.xmc4xxx" | 
 |  | 
 | rsource "Kconfig.lpc11u6x" | 
 |  | 
 | rsource "Kconfig.npcx" | 
 |  | 
 | rsource "Kconfig.apbuart" | 
 |  | 
 | rsource "Kconfig.rcar" | 
 |  | 
 | rsource "Kconfig.xec" | 
 |  | 
 | rsource "Kconfig.gd32" | 
 |  | 
 | rsource "Kconfig.test" | 
 |  | 
 | rsource "Kconfig.neorv32" | 
 |  | 
 | rsource "Kconfig.xen" | 
 |  | 
 | rsource "Kconfig.ifx_cat1" | 
 |  | 
 | rsource "Kconfig.smartbond" | 
 |  | 
 | rsource "Kconfig.nxp_s32" | 
 |  | 
 | rsource "Kconfig.cdns" | 
 |  | 
 | rsource "Kconfig.opentitan" | 
 |  | 
 | rsource "Kconfig.altera" | 
 |  | 
 | rsource "Kconfig.hostlink" | 
 |  | 
 | rsource "Kconfig.emul" | 
 |  | 
 | rsource "Kconfig.native_tty" | 
 |  | 
 | rsource "Kconfig.numaker" | 
 |  | 
 | rsource "Kconfig.efinix_sapphire" | 
 |  | 
 | rsource "Kconfig.sedi" | 
 |  | 
 | rsource "Kconfig.max32" | 
 |  | 
 | rsource "Kconfig.bcm2711" | 
 |  | 
 | rsource "Kconfig.intel_lw" | 
 |  | 
 | rsource "Kconfig.renesas_ra" | 
 |  | 
 | rsource "Kconfig.ene" | 
 |  | 
 | rsource "Kconfig.rzt2m" | 
 |  | 
 | endif # SERIAL |