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
128comment "Serial Drivers"
129
130source "drivers/serial/Kconfig.b91"
131
132source "drivers/serial/Kconfig.ns16550"
133
134source "drivers/serial/Kconfig.mcux"
135
136source "drivers/serial/Kconfig.mcux_flexcomm"
137
138source "drivers/serial/Kconfig.mcux_iuart"
139
140source "drivers/serial/Kconfig.mcux_lpsci"
141
142source "drivers/serial/Kconfig.mcux_lpuart"
143
144source "drivers/serial/Kconfig.miv"
145
146source "drivers/serial/Kconfig.imx"
147
148source "drivers/serial/Kconfig.it8xxx2"
149
150source "drivers/serial/Kconfig.stellaris"
151
152source "drivers/serial/Kconfig.native_posix"
153
154source "drivers/serial/Kconfig.usart_sam"
155
156source "drivers/serial/Kconfig.uart_sam"
157
158source "drivers/serial/Kconfig.stm32"
159
160source "drivers/serial/Kconfig.nrfx"
161
162source "drivers/serial/Kconfig.altera_jtag"
163
164source "drivers/serial/Kconfig.cc13xx_cc26xx"
165
166source "drivers/serial/Kconfig.cc32xx"
167
168source "drivers/serial/Kconfig.cmsdk_apb"
169
170source "drivers/serial/Kconfig.sifive"
171
172source "drivers/serial/Kconfig.esp32"
173
174source "drivers/serial/Kconfig.gecko"
175
176source "drivers/serial/Kconfig.leuart_gecko"
177
178source "drivers/serial/Kconfig.msp432p4xx"
179
180source "drivers/serial/Kconfig.numicro"
181
182source "drivers/serial/Kconfig.sam0"
183
184source "drivers/serial/Kconfig.psoc6"
185
186source "drivers/serial/Kconfig.pl011"
187
188source "drivers/serial/Kconfig.ql_usbserialport_s3b"
189
190source "drivers/serial/Kconfig.rv32m1_lpuart"
191
192source "drivers/serial/Kconfig.rpi_pico"
193
194source "drivers/serial/Kconfig.litex"
195
196source "drivers/serial/Kconfig.rtt"
197
198source "drivers/serial/Kconfig.xlnx"
199
200source "drivers/serial/Kconfig.xmc4xxx"
201
202source "drivers/serial/Kconfig.lpc11u6x"
203
204source "drivers/serial/Kconfig.npcx"
205
206source "drivers/serial/Kconfig.apbuart"
207
208source "drivers/serial/Kconfig.rcar"
209
210source "drivers/serial/Kconfig.xec"
211
212source "drivers/serial/Kconfig.gd32"
213
214source "drivers/serial/Kconfig.test"
215
216source "drivers/serial/Kconfig.neorv32"
217
218source "drivers/serial/Kconfig.xen"
219
220source "drivers/serial/Kconfig.ifx_cat1"
221
222source "drivers/serial/Kconfig.smartbond"
223
224source "drivers/serial/Kconfig.nxp_s32"
225
226source "drivers/serial/Kconfig.cdns"
227
228source "drivers/serial/Kconfig.opentitan"
229
230source "drivers/serial/Kconfig.altera"
231
232source "drivers/serial/Kconfig.hostlink"
233
234source "drivers/serial/Kconfig.emul"
235
236source "drivers/serial/Kconfig.native_tty"
237
238source "drivers/serial/Kconfig.numaker"
239
240source "drivers/serial/Kconfig.efinix_sapphire"
241
242source "drivers/serial/Kconfig.sedi"
243
244source "drivers/serial/Kconfig.bcm2711"
245
246endif # SERIAL
247