1# Serial driver configuration options 2 3# Copyright (c) 2014-2015 Wind River Systems, Inc. 4# SPDX-License-Identifier: Apache-2.0 5 6menuconfig SERIAL 7 bool "Serial drivers" 8 help 9 Enable options for serial drivers. 10 11if SERIAL 12 13comment "Capabilities" 14 15config SERIAL_HAS_DRIVER 16 bool 17 help 18 This is an option to be enabled by individual serial driver 19 to signal that there is a serial driver. This is being used 20 by other drivers which are dependent on serial. 21 22config SERIAL_SUPPORT_ASYNC 23 bool 24 help 25 This is an option to be enabled by individual serial driver 26 to signal that the driver and hardware supports async operation. 27 28config SERIAL_SUPPORT_INTERRUPT 29 bool 30 help 31 This is an option to be enabled by individual serial driver 32 to signal that the driver and hardware supports interrupts. 33 34config SERIAL_INIT_PRIORITY 35 int "Serial init priority" 36 default KERNEL_INIT_PRIORITY_DEVICE 37 help 38 Serial driver device initialization priority. 39 40module = UART 41module-str = uart 42source "subsys/logging/Kconfig.template.log_config" 43 44config SERIAL_SUPPORT_WIDE_DATA 45 bool 46 help 47 This is an option to be enabled by individual serial driver 48 to signal that the driver and hardware support data longer 49 than 8-bit. 50 51config UART_USE_RUNTIME_CONFIGURE 52 bool "Runtime configuration for UART controllers" 53 default y 54 help 55 Enable runtime configuration of UART controllers. 56 This allows applications to call uart_configure() to 57 configure the UART controllers at runtime, and calling 58 uart_config_get() to retrieve configuration. If this is 59 disabled, UART controllers rely on UART driver's 60 initialization function to properly configure 61 the controller. 62 63 Say y if unsure. Disable this to reduce footprint for 64 applications that do not require runtime UART configuration. 65 66config UART_ASYNC_API 67 bool "Asynchronous UART API" 68 depends on SERIAL_SUPPORT_ASYNC 69 help 70 This option enables asynchronous UART API. 71 72config UART_INTERRUPT_DRIVEN 73 bool "UART Interrupt support" 74 depends on SERIAL_SUPPORT_INTERRUPT 75 help 76 This option enables interrupt support for UART allowing console 77 input and other UART based drivers. 78 79config UART_EXCLUSIVE_API_CALLBACKS 80 bool "Use exclusive callbacks for multiple APIs" 81 depends on UART_ASYNC_API && UART_INTERRUPT_DRIVEN 82 default y 83 help 84 When multiple set of APIs support callbacks, enabling this 85 option will result in only the callbacks of one set of API 86 being active at a time. Setting a new callback to one set of 87 API will remove callbacks to other set of APIs. For example, 88 calling uart_callback_set() would disable the callback 89 previously set via uart_irq_callback_set(). 90 91 Says yes unless you are absolutely sure you know what you are 92 doing and promise not to file bug when things do not work out. 93 94config UART_LINE_CTRL 95 bool "Serial Line Control API" 96 help 97 This enables the API for apps to control the serial line, 98 such as baud rate, CTS and RTS. 99 100 Implementation is up to individual driver. 101 102 Says no if not sure. 103 104config UART_DRV_CMD 105 bool "Driver commands API" 106 help 107 This enables the API to send extra commands to drivers. 108 This allows drivers to expose hardware specific functions. 109 110 Says no if not sure. 111 112config UART_WIDE_DATA 113 bool "API to support data longer than 8-bit" 114 help 115 This enables the API to process data longer than 8-bit. 116 This is up to the driver to implement the necessary functions 117 to properly support this. 118 119config UART_PIPE 120 bool "Pipe UART driver" 121 select UART_INTERRUPT_DRIVEN 122 help 123 Enable pipe UART driver. This driver allows application to communicate 124 over UART with custom defined protocol. Driver doesn't inspect received 125 data (as contrary to console UART driver) and all aspects of received 126 protocol data are handled by application provided callback. 127 128config UART_ASYNC_RX_HELPER 129 bool "Helper for UART asynchronous reception" 130 help 131 Module implements handling of reception of variable length data using 132 Asynchronous UART API. It can be used in cases where received data processing 133 is delayed. Module implements zero-copy approach with multiple reception 134 buffers. 135 136config UART_ASYNC_TO_INT_DRIVEN_API 137 bool 138 select UART_ASYNC_RX_HELPER 139 help 140 Asynchronous to Interrupt driven adaptation layer. When enabled device 141 which implements only asynchronous API can be used with interrupt driven 142 API implemented by the generic adaptation layer. 143 144config UART_ASYNC_TO_INT_DRIVEN_RX_TIMEOUT 145 int "Receiver timeout (in bauds)" 146 depends on UART_ASYNC_TO_INT_DRIVEN_API 147 default 100 148 help 149 Receiver inactivity timeout. It is used to calculate timeout in microseconds. 150 151comment "Serial Drivers" 152 153# zephyr-keep-sorted-start 154rsource "Kconfig.altera" 155rsource "Kconfig.altera_jtag" 156rsource "Kconfig.apbuart" 157rsource "Kconfig.b91" 158rsource "Kconfig.bcm2711" 159rsource "Kconfig.bt" 160rsource "Kconfig.cc13xx_cc26xx" 161rsource "Kconfig.cc32xx" 162rsource "Kconfig.cdns" 163rsource "Kconfig.cmsdk_apb" 164rsource "Kconfig.efinix_sapphire" 165rsource "Kconfig.emul" 166rsource "Kconfig.ene" 167rsource "Kconfig.esp32" 168rsource "Kconfig.gd32" 169rsource "Kconfig.gecko" 170rsource "Kconfig.hostlink" 171rsource "Kconfig.ifx_cat1" 172rsource "Kconfig.imx" 173rsource "Kconfig.intel_lw" 174rsource "Kconfig.it8xxx2" 175rsource "Kconfig.leuart_gecko" 176rsource "Kconfig.litex" 177rsource "Kconfig.lpc11u6x" 178rsource "Kconfig.max32" 179rsource "Kconfig.mcux" 180rsource "Kconfig.mcux_flexcomm" 181rsource "Kconfig.mcux_iuart" 182rsource "Kconfig.mcux_lpsci" 183rsource "Kconfig.mcux_lpuart" 184rsource "Kconfig.miv" 185rsource "Kconfig.msp432p4xx" 186rsource "Kconfig.native_posix" 187rsource "Kconfig.native_tty" 188rsource "Kconfig.neorv32" 189rsource "Kconfig.npcx" 190rsource "Kconfig.nrfx" 191rsource "Kconfig.ns16550" 192rsource "Kconfig.numaker" 193rsource "Kconfig.numicro" 194rsource "Kconfig.nxp_s32" 195rsource "Kconfig.opentitan" 196rsource "Kconfig.pl011" 197rsource "Kconfig.psoc6" 198rsource "Kconfig.ql_usbserialport_s3b" 199rsource "Kconfig.rcar" 200rsource "Kconfig.renesas_ra" 201rsource "Kconfig.renesas_ra8" 202rsource "Kconfig.renesas_rz" 203rsource "Kconfig.rpi_pico" 204rsource "Kconfig.rtt" 205rsource "Kconfig.rv32m1_lpuart" 206rsource "Kconfig.rzt2m" 207rsource "Kconfig.sam0" 208rsource "Kconfig.sedi" 209rsource "Kconfig.sifive" 210rsource "Kconfig.smartbond" 211rsource "Kconfig.stellaris" 212rsource "Kconfig.stm32" 213rsource "Kconfig.sy1xx" 214rsource "Kconfig.test" 215rsource "Kconfig.uart_sam" 216rsource "Kconfig.usart_sam" 217rsource "Kconfig.xec" 218rsource "Kconfig.xen" 219rsource "Kconfig.xlnx" 220rsource "Kconfig.xmc4xxx" 221# zephyr-keep-sorted-stop 222 223source "drivers/serial/Kconfig.si32" 224 225source "drivers/serial/Kconfig.wch_usart" 226 227endif # SERIAL 228