xref: /linux/drivers/tty/serial/Kconfig (revision c08b0f2c317223fa702616dfa77f10a92b7b34b2)
1# SPDX-License-Identifier: GPL-2.0
2#
3# Serial device configuration
4#
5
6menu "Serial drivers"
7	depends on HAS_IOMEM
8
9config SERIAL_EARLYCON
10	bool
11	depends on SERIAL_CORE
12	help
13	  Support for early consoles with the earlycon parameter. This enables
14	  the console before standard serial driver is probed. The console is
15	  enabled when early_param is processed.
16
17source "drivers/tty/serial/8250/Kconfig"
18
19comment "Non-8250 serial port support"
20
21config SERIAL_AMBA_PL010
22	tristate "ARM AMBA PL010 serial port support"
23	depends on ARM_AMBA || COMPILE_TEST
24	select SERIAL_CORE
25	help
26	  This selects the ARM(R) AMBA(R) PrimeCell PL010 UART.  If you have
27	  an Integrator/AP or Integrator/PP2 platform, or if you have a
28	  Cirrus Logic EP93xx CPU, say Y or M here.
29
30	  If unsure, say N.
31
32config SERIAL_AMBA_PL010_CONSOLE
33	bool "Support for console on AMBA serial port"
34	depends on SERIAL_AMBA_PL010=y
35	select SERIAL_CORE_CONSOLE
36	help
37	  Say Y here if you wish to use an AMBA PrimeCell UART as the system
38	  console (the system console is the device which receives all kernel
39	  messages and warnings and which allows logins in single user mode).
40
41	  Even if you say Y here, the currently visible framebuffer console
42	  (/dev/tty0) will still be used as the system console by default, but
43	  you can alter that using a kernel command line option such as
44	  "console=ttyAM0". (Try "man bootparam" or see the documentation of
45	  your boot loader (lilo or loadlin) about how to pass options to the
46	  kernel at boot time.)
47
48config SERIAL_AMBA_PL011
49	tristate "ARM AMBA PL011 serial port support"
50	depends on ARM_AMBA
51	select SERIAL_CORE
52	help
53	  This selects the ARM(R) AMBA(R) PrimeCell PL011 UART.  If you have
54	  an Integrator/PP2, Integrator/CP or Versatile platform, say Y or M
55	  here.
56
57	  If unsure, say N.
58
59config SERIAL_AMBA_PL011_CONSOLE
60	bool "Support for console on AMBA serial port"
61	depends on SERIAL_AMBA_PL011=y
62	select SERIAL_CORE_CONSOLE
63	select SERIAL_EARLYCON
64	help
65	  Say Y here if you wish to use an AMBA PrimeCell UART as the system
66	  console (the system console is the device which receives all kernel
67	  messages and warnings and which allows logins in single user mode).
68
69	  Even if you say Y here, the currently visible framebuffer console
70	  (/dev/tty0) will still be used as the system console by default, but
71	  you can alter that using a kernel command line option such as
72	  "console=ttyAMA0". (Try "man bootparam" or see the documentation of
73	  your boot loader (lilo or loadlin) about how to pass options to the
74	  kernel at boot time.)
75
76config SERIAL_EARLYCON_SEMIHOST
77	bool "Early console using Arm compatible semihosting"
78	depends on ARM64 || ARM || RISCV
79	select SERIAL_CORE
80	select SERIAL_CORE_CONSOLE
81	select SERIAL_EARLYCON
82	help
83	  Support for early debug console using Arm compatible semihosting.
84	  This enables the console before standard serial driver is probed.
85	  This is enabled with "earlycon=smh" on the kernel command line.
86	  The console is enabled when early_param is processed.
87
88config SERIAL_EARLYCON_RISCV_SBI
89	bool "Early console using RISC-V SBI"
90	depends on RISCV_SBI
91	select SERIAL_CORE
92	select SERIAL_CORE_CONSOLE
93	select SERIAL_EARLYCON
94	help
95	  Support for early debug console using RISC-V SBI. This enables
96	  the console before standard serial driver is probed. This is enabled
97	  with "earlycon=sbi" on the kernel command line. The console is
98	  enabled when early_param is processed.
99
100config SERIAL_SB1250_DUART
101	tristate "BCM1xxx on-chip DUART serial support"
102	depends on SIBYTE_SB1xxx_SOC=y
103	select SERIAL_CORE
104	default y
105	help
106	  Support for the asynchronous serial interface (DUART) included in
107	  the BCM1250 and derived System-On-a-Chip (SOC) devices.  Note that
108	  the letter D in DUART stands for "dual", which is how the device
109	  is implemented.  Depending on the SOC configuration there may be
110	  one or more DUARTs available of which all are handled.
111
112	  If unsure, say Y.  To compile this driver as a module, choose M here:
113	  the module will be called sb1250-duart.
114
115config SERIAL_SB1250_DUART_CONSOLE
116	bool "Support for console on a BCM1xxx DUART serial port"
117	depends on SERIAL_SB1250_DUART=y
118	select SERIAL_CORE_CONSOLE
119	default y
120	help
121	  If you say Y here, it will be possible to use a serial port as the
122	  system console (the system console is the device which receives all
123	  kernel messages and warnings and which allows logins in single user
124	  mode).
125
126	  If unsure, say Y.
127
128config SERIAL_ATMEL
129	bool "AT91 on-chip serial port support"
130	depends on COMMON_CLK
131	depends on ARCH_AT91 || ARCH_LAN969X || COMPILE_TEST
132	select SERIAL_CORE
133	select SERIAL_MCTRL_GPIO if GPIOLIB
134	select MFD_AT91_USART
135	help
136	  This enables the driver for the on-chip UARTs of the Atmel
137	  AT91 processors.
138
139config SERIAL_ATMEL_CONSOLE
140	bool "Support for console on AT91 serial port"
141	depends on SERIAL_ATMEL=y
142	select SERIAL_CORE_CONSOLE
143	select SERIAL_EARLYCON
144	help
145	  Say Y here if you wish to use an on-chip UART on a Atmel
146	  AT91 processor as the system console (the system
147	  console is the device which receives all kernel messages and
148	  warnings and which allows logins in single user mode).
149
150config SERIAL_ATMEL_PDC
151	bool "Support DMA transfers on AT91 serial port"
152	depends on SERIAL_ATMEL
153	default y
154	help
155	  Say Y here if you wish to use the PDC to do DMA transfers to
156	  and from the Atmel AT91 serial port. In order to
157	  actually use DMA transfers, make sure that the use_dma_tx
158	  and use_dma_rx members in the atmel_uart_data struct is set
159	  appropriately for each port.
160
161	  Note that break and error handling currently doesn't work
162	  properly when DMA is enabled. Make sure that ports where
163	  this matters don't use DMA.
164
165config SERIAL_ATMEL_TTYAT
166	bool "Install as device ttyATn instead of ttySn"
167	depends on SERIAL_ATMEL=y
168	help
169	  Say Y here if you wish to have the internal AT91 UARTs
170	  appear as /dev/ttyATn (major 204, minor starting at 154)
171	  instead of the normal /dev/ttySn (major 4, minor starting at
172	  64). This is necessary if you also want other UARTs, such as
173	  external 8250/16C550 compatible UARTs.
174	  The ttySn nodes are legally reserved for the 8250 serial driver
175	  but are often misused by other serial drivers.
176
177	  To use this, you should create suitable ttyATn device nodes in
178	  /dev/, and pass "console=ttyATn" to the kernel.
179
180	  Say Y if you have an external 8250/16C550 UART.  If unsure, say N.
181
182config SERIAL_MESON
183	tristate "Meson serial port support"
184	depends on ARCH_MESON || COMPILE_TEST
185	select SERIAL_CORE
186	help
187	  This enables the driver for the on-chip UARTs of the Amlogic
188	  MesonX processors.
189
190config SERIAL_MESON_CONSOLE
191	bool "Support for console on meson"
192	depends on SERIAL_MESON
193	select SERIAL_CORE_CONSOLE
194	select SERIAL_EARLYCON
195	help
196	  Say Y here if you wish to use a Amlogic MesonX UART as the
197	  system console (the system console is the device which
198	  receives all kernel messages and warnings and which allows
199	  logins in single user mode) as /dev/ttyAMLx.
200
201config SERIAL_CLPS711X
202	tristate "CLPS711X serial port support"
203	depends on ARCH_CLPS711X || COMPILE_TEST
204	select SERIAL_CORE
205	select SERIAL_MCTRL_GPIO if GPIOLIB
206	help
207	  This enables the driver for the on-chip UARTs of the Cirrus
208	  Logic EP711x/EP721x/EP731x processors.
209
210config SERIAL_CLPS711X_CONSOLE
211	bool "Support for console on CLPS711X serial port"
212	depends on SERIAL_CLPS711X=y
213	select SERIAL_CORE_CONSOLE
214	help
215	  Even if you say Y here, the currently visible virtual console
216	  (/dev/tty0) will still be used as the system console by default, but
217	  you can alter that using a kernel command line option such as
218	  "console=ttyCL1".
219
220config SERIAL_SAMSUNG
221	tristate "Samsung SoC serial support"
222	depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || ARCH_APPLE || ARCH_ARTPEC || COMPILE_TEST
223	select SERIAL_CORE
224	help
225	  Support for the on-chip UARTs on the Samsung
226	  S3C64xx/S5Pv210/Exynos and Apple M1 SoCs, providing
227	  /dev/ttySAC0, 1 and 2 (note, some machines may not provide all of
228	  these ports, depending on how the serial port pins are configured.
229
230	  Choose Y/M here only if you build for such SoC.
231
232config SERIAL_SAMSUNG_UARTS
233	int
234	depends on SERIAL_SAMSUNG
235	default 4
236	help
237	  Select the number of available UART ports for the Samsung S3C
238	  serial driver
239
240config SERIAL_SAMSUNG_CONSOLE
241	bool "Support for console on Samsung SoC serial port"
242	depends on SERIAL_SAMSUNG
243	select SERIAL_CORE_CONSOLE
244	select SERIAL_EARLYCON
245	help
246	  Allow selection of the S3C24XX on-board serial ports for use as
247	  an virtual console.
248
249	  Even if you say Y here, the currently visible virtual console
250	  (/dev/tty0) will still be used as the system console by default, but
251	  you can alter that using a kernel command line option such as
252	  "console=ttySACx". (Try "man bootparam" or see the documentation of
253	  your boot loader about how to pass options to the kernel at
254	  boot time.)
255
256config SERIAL_TEGRA
257	tristate "NVIDIA Tegra20/30 SoC serial controller"
258	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
259	select SERIAL_CORE
260	help
261	  Support for the on-chip UARTs on the NVIDIA Tegra series SOCs
262	  providing /dev/ttyTHS0, 1, 2, 3 and 4 (note, some machines may not
263	  provide all of these ports, depending on how the serial port
264	  are enabled). This driver uses the APB DMA to achieve higher baudrate
265	  and better performance.
266
267config SERIAL_TEGRA_TCU
268	tristate "NVIDIA Tegra Combined UART"
269	depends on MAILBOX
270	depends on (ARCH_TEGRA && TEGRA_HSP_MBOX) || COMPILE_TEST
271	select SERIAL_CORE
272	help
273	  Support for the mailbox-based TCU (Tegra Combined UART) serial port.
274	  TCU is a virtual serial port that allows multiplexing multiple data
275	  streams into a single hardware serial port.
276
277config SERIAL_TEGRA_TCU_CONSOLE
278	bool "Support for console on a Tegra TCU serial port"
279	depends on SERIAL_TEGRA_TCU=y
280	select SERIAL_CORE_CONSOLE
281	default y
282	help
283	  If you say Y here, it will be possible to use a the Tegra TCU as the
284	  system console (the system console is the device which receives all
285	  kernel messages and warnings and which allows logins in single user
286	  mode).
287
288	  If unsure, say Y.
289
290config SERIAL_MAX3100
291	tristate "MAX3100/3110/3111/3222 support"
292	depends on SPI
293	select SERIAL_CORE
294	help
295	  This selects support for an advanced UART from Maxim.
296	  Supported ICs are MAX3100, MAX3110, MAX3111, MAX3222.
297
298	  Say Y here if you want to support these ICs.
299
300config SERIAL_MAX310X
301	tristate "MAX310X support"
302	depends on SPI_MASTER
303	select SERIAL_CORE
304	select REGMAP_SPI if SPI_MASTER
305	select REGMAP_I2C if I2C
306	help
307	  This selects support for an advanced UART from Maxim (Dallas).
308	  Supported ICs are MAX3107, MAX3108, MAX3109, MAX14830.
309	  Each IC contains 128 words each of receive and transmit FIFO
310	  that can be controlled through I2C or high-speed SPI.
311
312	  Say Y here if you want to support this ICs.
313
314config SERIAL_DZ
315	bool "DECstation DZ serial driver"
316	depends on MACH_DECSTATION && 32BIT
317	select SERIAL_CORE
318	default y
319	help
320	  DZ11-family serial controllers for DECstations and VAXstations,
321	  including the DC7085, M7814, and M7819.
322
323config SERIAL_DZ_CONSOLE
324	bool "Support console on DECstation DZ serial driver"
325	depends on SERIAL_DZ=y
326	select SERIAL_CORE_CONSOLE
327	default y
328	help
329	  If you say Y here, it will be possible to use a serial port as the
330	  system console (the system console is the device which receives all
331	  kernel messages and warnings and which allows logins in single user
332	  mode).
333
334	  Note that the firmware uses ttyS3 as the serial console on
335	  DECstations that use this driver.
336
337	  If unsure, say Y.
338
339config SERIAL_ZS
340	tristate "DECstation Z85C30 serial support"
341	depends on MACH_DECSTATION
342	select SERIAL_CORE
343	default y
344	help
345	  Support for the Zilog 85C350 serial communications controller used
346	  for serial ports in newer DECstation systems.  These include the
347	  DECsystem 5900 and all models of the DECstation and DECsystem 5000
348	  systems except from model 200.
349
350	  If unsure, say Y.  To compile this driver as a module, choose M here:
351	  the module will be called zs.
352
353config SERIAL_ZS_CONSOLE
354	bool "Support for console on a DECstation Z85C30 serial port"
355	depends on SERIAL_ZS=y
356	select SERIAL_CORE_CONSOLE
357	default y
358	help
359	  If you say Y here, it will be possible to use a serial port as the
360	  system console (the system console is the device which receives all
361	  kernel messages and warnings and which allows logins in single user
362	  mode).
363
364	  Note that the firmware uses ttyS1 as the serial console on the
365	  Maxine and ttyS3 on the others using this driver.
366
367	  If unsure, say Y.
368
369config SERIAL_21285
370	tristate "DC21285 serial port support"
371	depends on FOOTBRIDGE
372	select SERIAL_CORE
373	help
374	  If you have a machine based on a 21285 (Footbridge) StrongARM(R)/
375	  PCI bridge you can enable its onboard serial port by enabling this
376	  option.
377
378config SERIAL_21285_CONSOLE
379	bool "Console on DC21285 serial port"
380	depends on SERIAL_21285=y
381	select SERIAL_CORE_CONSOLE
382	help
383	  If you have enabled the serial port on the 21285 footbridge you can
384	  make it the console by answering Y to this option.
385
386	  Even if you say Y here, the currently visible virtual console
387	  (/dev/tty0) will still be used as the system console by default, but
388	  you can alter that using a kernel command line option such as
389	  "console=ttyFB". (Try "man bootparam" or see the documentation of
390	  your boot loader (lilo or loadlin) about how to pass options to the
391	  kernel at boot time.)
392
393config SERIAL_PXA
394	bool "PXA serial port support (DEPRECATED)"
395	depends on ARCH_PXA || ARCH_MMP
396	select SERIAL_CORE
397	select SERIAL_8250_PXA if SERIAL_8250=y
398	select SERIAL_PXA_NON8250 if !SERIAL_8250=y
399	help
400	  If you have a machine based on an Intel XScale PXA2xx CPU you
401	  can enable its onboard serial ports by enabling this option.
402
403	  Unless you have a specific need, you should use SERIAL_8250_PXA
404	  instead of this.
405
406config SERIAL_PXA_NON8250
407	bool
408	depends on !SERIAL_8250 || COMPILE_TEST
409
410config SERIAL_PXA_CONSOLE
411	bool "Console on PXA serial port (DEPRECATED)"
412	depends on SERIAL_PXA
413	select SERIAL_CORE_CONSOLE
414	select SERIAL_8250_CONSOLE if SERIAL_8250=y
415	help
416	  If you have enabled the serial port on the Intel XScale PXA
417	  CPU you can make it the console by answering Y to this option.
418
419	  Even if you say Y here, the currently visible virtual console
420	  (/dev/tty0) will still be used as the system console by default, but
421	  you can alter that using a kernel command line option such as
422	  "console=ttySA0". (Try "man bootparam" or see the documentation of
423	  your boot loader (lilo or loadlin) about how to pass options to the
424	  kernel at boot time.)
425
426	  Unless you have a specific need, you should use SERIAL_8250_PXA
427	  and SERIAL_8250_CONSOLE instead of this.
428
429config SERIAL_SA1100
430	bool "SA1100 serial port support"
431	depends on ARCH_SA1100
432	select SERIAL_CORE
433	select SERIAL_MCTRL_GPIO if GPIOLIB
434	help
435	  If you have a machine based on a SA1100/SA1110 StrongARM(R) CPU you
436	  can enable its onboard serial port by enabling this option.
437	  Please read <file:Documentation/arch/arm/sa1100/serial_uart.rst> for
438	  further info.
439
440config SERIAL_SA1100_CONSOLE
441	bool "Console on SA1100 serial port"
442	depends on SERIAL_SA1100
443	select SERIAL_CORE_CONSOLE
444	help
445	  If you have enabled the serial port on the SA1100/SA1110 StrongARM
446	  CPU you can make it the console by answering Y to this option.
447
448	  Even if you say Y here, the currently visible virtual console
449	  (/dev/tty0) will still be used as the system console by default, but
450	  you can alter that using a kernel command line option such as
451	  "console=ttySA0". (Try "man bootparam" or see the documentation of
452	  your boot loader (lilo or loadlin) about how to pass options to the
453	  kernel at boot time.)
454
455config SERIAL_IMX
456	tristate "IMX serial port support"
457	depends on ARCH_MXC || COMPILE_TEST
458	select SERIAL_CORE
459	select RATIONAL
460	select SERIAL_MCTRL_GPIO if GPIOLIB
461	help
462	  If you have a machine based on a Motorola IMX CPU you
463	  can enable its onboard serial port by enabling this option.
464
465config SERIAL_IMX_CONSOLE
466	tristate "Console on IMX serial port"
467	depends on SERIAL_IMX
468	select SERIAL_CORE_CONSOLE
469	help
470	  If you have enabled the serial port on the Freescale IMX
471	  CPU you can make it the console by answering Y/M to this option.
472
473	  Even if you say Y/M here, the currently visible virtual console
474	  (/dev/tty0) will still be used as the system console by default, but
475	  you can alter that using a kernel command line option such as
476	  "console=ttymxc0". (Try "man bootparam" or see the documentation of
477	  your bootloader about how to pass options to the kernel at boot time.)
478
479config SERIAL_IMX_EARLYCON
480	bool "Earlycon on IMX serial port"
481	depends on ARCH_MXC || COMPILE_TEST
482	depends on OF
483	select SERIAL_CORE
484	select SERIAL_EARLYCON
485	select SERIAL_CORE_CONSOLE
486	default y if SERIAL_IMX_CONSOLE
487	help
488	  If you have enabled the earlycon on the Freescale IMX
489	  CPU you can make it the earlycon by answering Y to this option.
490
491config SERIAL_UARTLITE
492	tristate "Xilinx uartlite serial port support"
493	depends on HAS_IOMEM
494	select SERIAL_CORE
495	help
496	  Say Y here if you want to use the Xilinx uartlite serial controller.
497
498	  To compile this driver as a module, choose M here: the
499	  module will be called uartlite.
500
501config SERIAL_UARTLITE_CONSOLE
502	bool "Support for console on Xilinx uartlite serial port"
503	depends on SERIAL_UARTLITE=y
504	select SERIAL_CORE_CONSOLE
505	select SERIAL_EARLYCON
506	help
507	  Say Y here if you wish to use a Xilinx uartlite as the system
508	  console (the system console is the device which receives all kernel
509	  messages and warnings and which allows logins in single user mode).
510
511config SERIAL_UARTLITE_NR_UARTS
512	int "Maximum number of uartlite serial ports"
513	depends on SERIAL_UARTLITE
514	range 1 256
515	default 1
516	help
517	  Set this to the number of uartlites in your system, or the number
518	  you think you might implement.
519	  If maximum number of uartlite serial ports is more than 4, then the
520	  driver uses dynamic allocation instead of static allocation for major
521	  number.
522
523config SERIAL_SUNCORE
524	bool
525	depends on SPARC
526	select SERIAL_CORE
527	select SERIAL_CORE_CONSOLE
528	default y
529
530config SERIAL_SUNZILOG
531	tristate "Sun Zilog8530 serial support"
532	depends on SPARC
533	help
534	  This driver supports the Zilog8530 serial ports found on many Sparc
535	  systems.  Say Y or M if you want to be able to these serial ports.
536
537config SERIAL_SUNZILOG_CONSOLE
538	bool "Console on Sun Zilog8530 serial port"
539	depends on SERIAL_SUNZILOG=y
540	help
541	  If you would like to be able to use the Zilog8530 serial port
542	  on your Sparc system as the console, you can do so by answering
543	  Y to this option.
544
545config SERIAL_SUNSU
546	tristate "Sun SU serial support"
547	depends on SPARC && PCI
548	help
549	  This driver supports the 8250 serial ports that run the keyboard and
550	  mouse on (PCI) UltraSPARC systems.  Say Y or M if you want to be able
551	  to these serial ports.
552
553config SERIAL_SUNSU_CONSOLE
554	bool "Console on Sun SU serial port"
555	depends on SERIAL_SUNSU=y
556	help
557	  If you would like to be able to use the SU serial port
558	  on your Sparc system as the console, you can do so by answering
559	  Y to this option.
560
561config SERIAL_MUX
562	tristate "Serial MUX support"
563	depends on GSC
564	select SERIAL_CORE
565	default y
566	help
567	  Saying Y here will enable the hardware MUX serial driver for
568	  the Nova, K class systems and D class with a 'remote control card'.
569	  The hardware MUX is not 8250/16550 compatible therefore the
570	  /dev/ttyB0 device is shared between the Serial MUX and the PDC
571	  software console. The following steps need to be completed to use
572	  the Serial MUX:
573
574	    1. create the device entry (mknod /dev/ttyB0 c 11 0)
575	    2. Edit the /etc/inittab to start a getty listening on /dev/ttyB0
576	    3. Add device ttyB0 to /etc/securetty (if you want to log on as
577		 root on this console.)
578	    4. Change the kernel command console parameter to: console=ttyB0
579
580config SERIAL_MUX_CONSOLE
581	bool "Support for console on serial MUX"
582	depends on SERIAL_MUX=y
583	select SERIAL_CORE_CONSOLE
584	default y
585
586config SERIAL_SUNSAB
587	tristate "Sun Siemens SAB82532 serial support"
588	depends on SPARC && PCI
589	help
590	  This driver supports the Siemens SAB82532 DUSCC serial ports on newer
591	  (PCI) UltraSPARC systems.  Say Y or M if you want to be able to these
592	  serial ports.
593
594config SERIAL_SUNSAB_CONSOLE
595	bool "Console on Sun Siemens SAB82532 serial port"
596	depends on SERIAL_SUNSAB=y
597	help
598	  If you would like to be able to use the SAB82532 serial port
599	  on your Sparc system as the console, you can do so by answering
600	  Y to this option.
601
602config SERIAL_SUNHV
603	bool "Sun4v Hypervisor Console support"
604	depends on SPARC64
605	help
606	  This driver supports the console device found on SUN4V Sparc
607	  systems.  Say Y if you want to be able to use this device.
608
609config SERIAL_IP22_ZILOG
610	tristate "SGI Zilog8530 serial support"
611	depends on SGI_HAS_ZILOG
612	select SERIAL_CORE
613	help
614	  This driver supports the Zilog8530 serial ports found on SGI
615	  systems.  Say Y or M if you want to be able to these serial ports.
616
617config SERIAL_IP22_ZILOG_CONSOLE
618	bool "Console on SGI Zilog8530 serial port"
619	depends on SERIAL_IP22_ZILOG=y
620	select SERIAL_CORE_CONSOLE
621
622config SERIAL_SH_SCI
623	tristate "SuperH SCI(F) serial port support"
624	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
625	select SERIAL_CORE
626	select SERIAL_MCTRL_GPIO if GPIOLIB
627
628config SERIAL_SH_SCI_NR_UARTS
629	int "Maximum number of SCI(F) serial ports" if EXPERT
630	range 1 64 if 64BIT
631	range 1 32 if !64BIT
632	depends on SERIAL_SH_SCI
633	default "10" if SUPERH
634	default "18" if ARCH_RENESAS
635	default "2"
636
637config SERIAL_SH_SCI_CONSOLE
638	bool "Support for console on SuperH SCI(F)" if EXPERT
639	depends on SERIAL_SH_SCI=y
640	select SERIAL_CORE_CONSOLE
641	default y
642
643config SERIAL_SH_SCI_EARLYCON
644	bool "Support for early console on SuperH SCI(F)" if EXPERT
645	depends on SERIAL_SH_SCI=y
646	select SERIAL_CORE_CONSOLE
647	select SERIAL_EARLYCON
648	default ARCH_RENESAS
649
650config SERIAL_SH_SCI_DMA
651	bool "DMA support" if EXPERT
652	depends on SERIAL_SH_SCI && DMA_ENGINE
653	default ARCH_RENESAS
654
655config SERIAL_HS_LPC32XX
656	tristate "LPC32XX high speed serial port support"
657	depends on ARCH_LPC32XX || COMPILE_TEST
658	depends on OF
659	select SERIAL_CORE
660	help
661	  Support for the LPC32XX high speed serial ports (up to 900kbps).
662	  Those are UARTs completely different from the Standard UARTs on the
663	  LPC32XX SoC.
664	  Choose M or Y here to build this driver.
665
666config SERIAL_HS_LPC32XX_CONSOLE
667	bool "Enable LPC32XX high speed UART serial console"
668	depends on SERIAL_HS_LPC32XX=y
669	select SERIAL_CORE_CONSOLE
670	help
671	  If you would like to be able to use one of the high speed serial
672	  ports on the LPC32XX as the console, you can do so by answering
673	  Y to this option.
674
675config SERIAL_CORE
676	tristate
677
678config SERIAL_CORE_CONSOLE
679	bool
680
681config CONSOLE_POLL
682	bool
683
684config SERIAL_MCF
685	bool "Coldfire serial support"
686	depends on COLDFIRE
687	select SERIAL_CORE
688	help
689	  This serial driver supports the Freescale Coldfire serial ports.
690
691config SERIAL_MCF_BAUDRATE
692	int "Default baudrate for Coldfire serial ports"
693	depends on SERIAL_MCF
694	default 19200
695	help
696	  This setting lets you define what the default baudrate is for the
697	  ColdFire serial ports. The usual default varies from board to board,
698	  and this setting is a way of catering for that.
699
700config SERIAL_MCF_CONSOLE
701	bool "Coldfire serial console support"
702	depends on SERIAL_MCF
703	select SERIAL_CORE_CONSOLE
704	help
705	  Enable a ColdFire internal serial port to be the system console.
706
707config SERIAL_PMACZILOG
708	tristate "Mac or PowerMac z85c30 ESCC support"
709	depends on (M68K && MAC) || PPC_PMAC
710	select SERIAL_CORE
711	help
712	  This driver supports the Zilog z85C30 serial ports found on
713	  (Power)Mac machines.
714	  Say Y or M if you want to be able to these serial ports.
715
716config SERIAL_PMACZILOG_TTYS
717	bool "Use ttySn device nodes for Zilog z85c30"
718	depends on SERIAL_PMACZILOG
719	help
720	  The pmac_zilog driver for the z85C30 chip on many powermacs
721	  historically used the device numbers for /dev/ttySn.  The
722	  8250 serial port driver also uses these numbers, which means
723	  the two drivers being unable to coexist; you could not use
724	  both z85C30 and 8250 type ports at the same time.
725
726	  If this option is not selected, the pmac_zilog driver will
727	  use the device numbers allocated for /dev/ttyPZn.  This allows
728	  the pmac_zilog and 8250 drivers to co-exist, but may cause
729	  existing userspace setups to break.  Programs that need to
730	  access the built-in serial ports on powermacs will need to
731	  be reconfigured to use /dev/ttyPZn instead of /dev/ttySn.
732
733	  If you enable this option, any z85c30 ports in the system will
734	  be registered as ttyS0 onwards as in the past, and you will be
735	  unable to use the 8250 module for PCMCIA or other 16C550-style
736	  UARTs.
737
738	  Say N unless you need the z85c30 ports on your (Power)Mac
739	  to appear as /dev/ttySn.
740
741config SERIAL_PMACZILOG_CONSOLE
742	bool "Console on Mac or PowerMac z85c30 serial port"
743	depends on SERIAL_PMACZILOG=y
744	select SERIAL_CORE_CONSOLE
745	help
746	  If you would like to be able to use the z85c30 serial port
747	  on your (Power)Mac as the console, you can do so by answering
748	  Y to this option.
749
750config SERIAL_CPM
751	tristate "CPM SCC/SMC serial port support"
752	depends on CPM2 || CPM1
753	select SERIAL_CORE
754	help
755	  This driver supports the SCC and SMC serial ports on Motorola
756	  embedded PowerPC that contain a CPM1 (8xx) or CPM2 (8xxx)
757
758config SERIAL_CPM_CONSOLE
759	bool "Support for console on CPM SCC/SMC serial port"
760	depends on SERIAL_CPM=y
761	select SERIAL_CORE_CONSOLE
762	help
763	  Say Y here if you wish to use a SCC or SMC CPM UART as the system
764	  console (the system console is the device which receives all kernel
765	  messages and warnings and which allows logins in single user mode).
766
767	  Even if you say Y here, the currently visible framebuffer console
768	  (/dev/tty0) will still be used as the system console by default, but
769	  you can alter that using a kernel command line option such as
770	  "console=ttyCPM0". (Try "man bootparam" or see the documentation of
771	  your boot loader (lilo or loadlin) about how to pass options to the
772	  kernel at boot time.)
773
774config SERIAL_PIC32
775	tristate "Microchip PIC32 serial support"
776	depends on MACH_PIC32 || (MIPS && COMPILE_TEST)
777	select SERIAL_CORE
778	help
779	  If you have a PIC32, this driver supports the serial ports.
780
781	  Say Y or M to use PIC32 serial ports, otherwise say N. Note that
782	  to use a serial port as a console, this must be included in kernel and
783	  not as a module.
784
785config SERIAL_PIC32_CONSOLE
786	bool "PIC32 serial console support"
787	depends on SERIAL_PIC32=y
788	select SERIAL_CORE_CONSOLE
789	help
790	  If you have a PIC32, this driver supports the putting a console on one
791	  of the serial ports.
792
793	  Say Y to use the PIC32 console, otherwise say N.
794
795config SERIAL_MPC52xx
796	tristate "Freescale MPC52xx/MPC512x family PSC serial support"
797	depends on PPC_MPC52xx || PPC_MPC512x
798	select SERIAL_CORE
799	help
800	  This driver supports MPC52xx and MPC512x PSC serial ports. If you would
801	  like to use them, you must answer Y or M to this option. Note that
802	  for use as console, it must be included in kernel and not as a
803	  module.
804
805config SERIAL_MPC52xx_CONSOLE
806	bool "Console on a Freescale MPC52xx/MPC512x family PSC serial port"
807	depends on SERIAL_MPC52xx=y
808	select SERIAL_CORE_CONSOLE
809	help
810	  Select this options if you'd like to use one of the PSC serial port
811	  of the Freescale MPC52xx family as a console.
812
813config SERIAL_MPC52xx_CONSOLE_BAUD
814	int "Freescale MPC52xx/MPC512x family PSC serial port baud"
815	depends on SERIAL_MPC52xx_CONSOLE=y
816	default "9600"
817	help
818	  Select the MPC52xx console baud rate.
819	  This value is only used if the bootloader doesn't pass in the
820	  console baudrate
821
822config SERIAL_ICOM
823	tristate "IBM Multiport Serial Adapter"
824	depends on PCI
825	depends on PPC_PSERIES || COMPILE_TEST
826	select SERIAL_CORE
827	select FW_LOADER
828	help
829	  This driver is for a family of multiport serial adapters
830	  including 2 port RVX, 2 port internal modem, 4 port internal
831	  modem and a split 1 port RVX and 1 port internal modem.
832
833	  This driver can also be built as a module.  If so, the module
834	  will be called icom.
835
836config SERIAL_TXX9
837	bool "TMPTX39XX/49XX SIO support"
838	depends on HAS_TXX9_SERIAL
839	select SERIAL_CORE
840	default y
841
842config HAS_TXX9_SERIAL
843	bool
844
845config SERIAL_TXX9_NR_UARTS
846	int "Maximum number of TMPTX39XX/49XX SIO ports"
847	depends on SERIAL_TXX9
848	default "6"
849
850config SERIAL_TXX9_CONSOLE
851	bool "TMPTX39XX/49XX SIO Console support"
852	depends on SERIAL_TXX9=y
853	select SERIAL_CORE_CONSOLE
854
855config SERIAL_TXX9_STDSERIAL
856	bool "TX39XX/49XX SIO act as standard serial"
857	depends on !SERIAL_8250 && SERIAL_TXX9
858
859config SERIAL_JSM
860	tristate "Digi International NEO and Classic PCI Support"
861	depends on PCI && HAS_IOPORT
862	select SERIAL_CORE
863	help
864	  This is a driver for Digi International's Neo and Classic series
865	  of cards which provide multiple serial ports. You would need
866	  something like this to connect more than two modems to your Linux
867	  box, for instance in order to become a dial-in server. This driver
868	  supports PCI boards only.
869
870	  If you have a card like this, say Y here, otherwise say N.
871
872	  To compile this driver as a module, choose M here: the
873	  module will be called jsm.
874
875config SERIAL_MSM
876	tristate "MSM on-chip serial port support"
877	depends on ARCH_QCOM || COMPILE_TEST
878	select SERIAL_CORE
879
880config SERIAL_MSM_CONSOLE
881	bool "MSM serial console support"
882	depends on SERIAL_MSM=y
883	select SERIAL_CORE_CONSOLE
884	select SERIAL_EARLYCON
885
886config SERIAL_QCOM_GENI
887	tristate "QCOM on-chip GENI based serial port support"
888	depends on ARCH_QCOM || COMPILE_TEST
889	depends on QCOM_GENI_SE
890	select SERIAL_CORE
891
892config SERIAL_QCOM_GENI_CONSOLE
893	bool "QCOM GENI Serial Console support"
894	depends on SERIAL_QCOM_GENI
895	select SERIAL_CORE_CONSOLE
896	select SERIAL_EARLYCON
897	help
898	  Serial console driver for Qualcomm Technologies Inc's GENI based
899	  QUP hardware.
900
901config SERIAL_VT8500
902	bool "VIA VT8500 on-chip serial port support"
903	depends on ARCH_VT8500 || COMPILE_TEST
904	select SERIAL_CORE
905
906config SERIAL_VT8500_CONSOLE
907	bool "VIA VT8500 serial console support"
908	depends on SERIAL_VT8500=y
909	select SERIAL_CORE_CONSOLE
910
911config SERIAL_OMAP
912	tristate "OMAP serial port support"
913	depends on (ARCH_OMAP2PLUS && !SERIAL_8250_OMAP) || COMPILE_TEST
914	select SERIAL_CORE
915	help
916	  If you have a machine based on an Texas Instruments OMAP CPU you
917	  can enable its onboard serial ports by enabling this option.
918
919	  By enabling this option you take advantage of dma feature available
920	  with the omap-serial driver. DMA support can be enabled from platform
921	  data.
922
923config SERIAL_OMAP_CONSOLE
924	bool "Console on OMAP serial port"
925	depends on SERIAL_OMAP=y
926	select SERIAL_CORE_CONSOLE
927	help
928	  Select this option if you would like to use omap serial port as
929	  console.
930
931	  Even if you say Y here, the currently visible virtual console
932	  (/dev/tty0) will still be used as the system console by default, but
933	  you can alter that using a kernel command line option such as
934	  "console=ttyOx". (Try "man bootparam" or see the documentation of
935	  your boot loader about how to pass options to the kernel at
936	  boot time.)
937
938config SERIAL_SIFIVE
939	tristate "SiFive UART support"
940	depends on OF
941	default ARCH_SIFIVE || ARCH_CANAAN
942	select SERIAL_CORE
943	help
944	  Select this option if you are building a kernel for a device that
945	  contains a SiFive UART IP block.  This type of UART is present on
946	  SiFive FU540 SoCs, among others.
947
948config SERIAL_SIFIVE_CONSOLE
949	bool "Console on SiFive UART"
950	depends on SERIAL_SIFIVE=y
951	default ARCH_SIFIVE || ARCH_CANAAN
952	select SERIAL_CORE_CONSOLE
953	select SERIAL_EARLYCON
954	help
955	  Select this option if you would like to use a SiFive UART as the
956	  system console.
957
958	  Even if you say Y here, the currently visible virtual console
959	  (/dev/tty0) will still be used as the system console by default, but
960	  you can alter that using a kernel command line option such as
961	  "console=ttySIFx". (Try "man bootparam" or see the documentation of
962	  your boot loader about how to pass options to the kernel at
963	  boot time.)
964
965config SERIAL_LANTIQ
966	tristate "Lantiq serial driver"
967	depends on (LANTIQ || X86) || COMPILE_TEST
968	select SERIAL_CORE
969	help
970	  Support for UART on Lantiq and Intel SoCs.
971	  To compile this driver as a module, select M here. The
972	  module will be called lantiq.
973
974config SERIAL_LANTIQ_CONSOLE
975	bool "Console on Lantiq UART"
976	depends on SERIAL_LANTIQ=y
977	select SERIAL_CORE_CONSOLE
978	select SERIAL_EARLYCON
979	help
980	  Select this option if you would like to use a Lantiq UART as the
981	  system console.
982
983config SERIAL_QE
984	tristate "Freescale QUICC Engine serial port support"
985	depends on QUICC_ENGINE
986	select SERIAL_CORE
987	select FW_LOADER
988	help
989	  This driver supports the QE serial ports on Freescale embedded
990	  PowerPC that contain a QUICC Engine.
991
992config SERIAL_SCCNXP
993	tristate "SCCNXP serial port support"
994	select SERIAL_CORE
995	help
996	  This selects support for an advanced UART from NXP (Philips).
997	  Supported ICs are SCC2681, SCC2691, SCC2692, SC28L91, SC28L92,
998	  SC28L202, SCC68681 and SCC68692.
999
1000config SERIAL_SCCNXP_CONSOLE
1001	bool "Console on SCCNXP serial port"
1002	depends on SERIAL_SCCNXP=y
1003	select SERIAL_CORE_CONSOLE
1004	help
1005	  Support for console on SCCNXP serial ports.
1006
1007config SERIAL_SC16IS7XX
1008	tristate "NXP SC16IS7xx UART support"
1009	depends on SPI_MASTER || I2C
1010	select SERIAL_CORE
1011	select SERIAL_SC16IS7XX_SPI if SPI_MASTER
1012	select SERIAL_SC16IS7XX_I2C if I2C
1013	help
1014	  Core driver for NXP SC16IS7xx UARTs.
1015	  Supported ICs are:
1016
1017	    SC16IS740
1018	    SC16IS741
1019	    SC16IS750
1020	    SC16IS752
1021	    SC16IS760
1022	    SC16IS762
1023
1024	  The driver supports both I2C and SPI interfaces.
1025
1026config SERIAL_SC16IS7XX_I2C
1027	tristate
1028	select REGMAP_I2C
1029
1030config SERIAL_SC16IS7XX_SPI
1031	tristate
1032	select REGMAP_SPI
1033
1034config SERIAL_TIMBERDALE
1035	tristate "Support for timberdale UART"
1036	select SERIAL_CORE
1037	depends on X86_32 || COMPILE_TEST
1038	help
1039	Add support for UART controller on timberdale.
1040
1041config SERIAL_BCM63XX
1042	tristate "Broadcom BCM63xx/BCM33xx UART support"
1043	select SERIAL_CORE
1044	depends on ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
1045	default ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC
1046	help
1047	  This enables the driver for the onchip UART core found on
1048	  the following chipsets:
1049
1050	    BCM33xx (cable modem)
1051	    BCM63xx/BCM63xxx (DSL)
1052	    BCM68xx (PON)
1053	    BCM7xxx (STB) - DOCSIS console
1054
1055config SERIAL_BCM63XX_CONSOLE
1056	bool "Console on BCM63xx serial port"
1057	depends on SERIAL_BCM63XX=y
1058	select SERIAL_CORE_CONSOLE
1059	select SERIAL_EARLYCON
1060	help
1061	  If you have enabled the serial port on the BCM63xx CPU
1062	  you can make it the console by answering Y to this option.
1063
1064config SERIAL_GRLIB_GAISLER_APBUART
1065	tristate "GRLIB APBUART serial support"
1066	depends on OF && SPARC
1067	select SERIAL_CORE
1068	help
1069	Add support for the GRLIB APBUART serial port.
1070
1071config SERIAL_GRLIB_GAISLER_APBUART_CONSOLE
1072	bool "Console on GRLIB APBUART serial port"
1073	depends on SERIAL_GRLIB_GAISLER_APBUART=y
1074	select SERIAL_CORE_CONSOLE
1075	help
1076	Support for running a console on the GRLIB APBUART
1077
1078config SERIAL_ALTERA_JTAGUART
1079	tristate "Altera JTAG UART support"
1080	select SERIAL_CORE
1081	help
1082	  This driver supports the Altera JTAG UART port.
1083
1084config SERIAL_ALTERA_JTAGUART_CONSOLE
1085	bool "Altera JTAG UART console support"
1086	depends on SERIAL_ALTERA_JTAGUART=y
1087	select SERIAL_CORE_CONSOLE
1088	select SERIAL_EARLYCON
1089	help
1090	  Enable a Altera JTAG UART port to be the system console.
1091
1092config SERIAL_ALTERA_JTAGUART_CONSOLE_BYPASS
1093	bool "Bypass output when no connection"
1094	depends on SERIAL_ALTERA_JTAGUART_CONSOLE
1095	select SERIAL_CORE_CONSOLE
1096	help
1097	  Bypass console output and keep going even if there is no
1098	  JTAG terminal connection with the host.
1099
1100config SERIAL_ALTERA_UART
1101	tristate "Altera UART support"
1102	select SERIAL_CORE
1103	help
1104	  This driver supports the Altera softcore UART port.
1105
1106config SERIAL_ALTERA_UART_MAXPORTS
1107	int "Maximum number of Altera UART ports"
1108	depends on SERIAL_ALTERA_UART
1109	default 4
1110	help
1111	  This setting lets you define the maximum number of the Altera
1112	  UART ports. The usual default varies from board to board, and
1113	  this setting is a way of catering for that.
1114
1115config SERIAL_ALTERA_UART_BAUDRATE
1116	int "Default baudrate for Altera UART ports"
1117	depends on SERIAL_ALTERA_UART
1118	default 115200
1119	help
1120	  This setting lets you define what the default baudrate is for the
1121	  Altera UART ports. The usual default varies from board to board,
1122	  and this setting is a way of catering for that.
1123
1124config SERIAL_ALTERA_UART_CONSOLE
1125	bool "Altera UART console support"
1126	depends on SERIAL_ALTERA_UART=y
1127	select SERIAL_CORE_CONSOLE
1128	select SERIAL_EARLYCON
1129	help
1130	  Enable a Altera UART port to be the system console.
1131
1132config SERIAL_PCH_UART
1133	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) UART"
1134	depends on PCI && (X86_32 || MIPS ||  COMPILE_TEST)
1135	select SERIAL_CORE
1136	help
1137	  This driver is for PCH(Platform controller Hub) UART of Intel EG20T
1138	  which is an IOH(Input/Output Hub) for x86 embedded processor.
1139	  Enabling PCH_DMA, this PCH UART works as DMA mode.
1140
1141	  This driver also can be used for LAPIS Semiconductor IOH(Input/
1142	  Output Hub), ML7213, ML7223 and ML7831.
1143	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
1144	  for MP(Media Phone) use and ML7831 IOH is for general purpose use.
1145	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
1146	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
1147
1148config SERIAL_PCH_UART_CONSOLE
1149	bool "Support for console on Intel EG20T PCH UART/OKI SEMICONDUCTOR ML7213 IOH"
1150	depends on SERIAL_PCH_UART=y
1151	select SERIAL_CORE_CONSOLE
1152	help
1153	  Say Y here if you wish to use the PCH UART as the system console
1154	  (the system  console is the device which receives all kernel messages and
1155	  warnings and which allows logins in single user mode).
1156
1157config SERIAL_MXS_AUART
1158	tristate "MXS AUART support"
1159	depends on ARCH_MXS || MACH_ASM9260 || COMPILE_TEST
1160	select SERIAL_CORE
1161	select SERIAL_MCTRL_GPIO if GPIOLIB
1162	help
1163	  This driver supports the MXS and Alphascale ASM9260 Application
1164	  UART (AUART) port.
1165
1166config SERIAL_MXS_AUART_CONSOLE
1167	bool "MXS AUART console support"
1168	depends on SERIAL_MXS_AUART=y
1169	select SERIAL_CORE_CONSOLE
1170	help
1171	  Enable a MXS AUART port to be the system console.
1172
1173config SERIAL_XILINX_PS_UART
1174	tristate "Cadence (Xilinx Zynq) UART support"
1175	depends on OF
1176	select SERIAL_CORE
1177	help
1178	  This driver supports the Cadence UART. It is found e.g. in Xilinx
1179	  Zynq.
1180
1181config SERIAL_XILINX_PS_UART_CONSOLE
1182	bool "Cadence UART console support"
1183	depends on SERIAL_XILINX_PS_UART=y
1184	select SERIAL_CORE_CONSOLE
1185	select SERIAL_EARLYCON
1186	help
1187	  Enable a Cadence UART port to be the system console.
1188
1189config SERIAL_AR933X
1190	tristate "AR933X serial port support"
1191	depends on (HAVE_CLK && ATH79) || (MIPS && COMPILE_TEST)
1192	select SERIAL_CORE
1193	select SERIAL_MCTRL_GPIO if GPIOLIB
1194	help
1195	  If you have an Atheros AR933X SOC based board and want to use the
1196	  built-in UART of the SoC, say Y to this option.
1197
1198	  To compile this driver as a module, choose M here: the
1199	  module will be called ar933x_uart.
1200
1201config SERIAL_AR933X_CONSOLE
1202	bool "Console on AR933X serial port"
1203	depends on SERIAL_AR933X=y
1204	select SERIAL_CORE_CONSOLE
1205	help
1206	  Enable a built-in UART port of the AR933X to be the system console.
1207
1208config SERIAL_AR933X_NR_UARTS
1209	int "Maximum number of AR933X serial ports"
1210	depends on SERIAL_AR933X
1211	default "2"
1212	help
1213	  Set this to the number of serial ports you want the driver
1214	  to support.
1215
1216config SERIAL_MPS2_UART_CONSOLE
1217	bool "MPS2 UART console support"
1218	depends on SERIAL_MPS2_UART
1219	select SERIAL_CORE_CONSOLE
1220	select SERIAL_EARLYCON
1221
1222config SERIAL_MPS2_UART
1223	bool "MPS2 UART port"
1224	depends on ARCH_MPS2 || COMPILE_TEST
1225	select SERIAL_CORE
1226	help
1227	  This driver support the UART ports on ARM MPS2.
1228
1229config SERIAL_ARC
1230	tristate "ARC UART driver support"
1231	select SERIAL_CORE
1232	help
1233	  Driver for on-chip UART for ARC(Synopsys) for the legacy
1234	  FPGA Boards (ML50x/ARCAngel4)
1235
1236config SERIAL_ARC_CONSOLE
1237	bool "Console on ARC UART"
1238	depends on SERIAL_ARC=y
1239	select SERIAL_CORE_CONSOLE
1240	select SERIAL_EARLYCON
1241	help
1242	  Enable system Console on ARC UART
1243
1244config SERIAL_ARC_NR_PORTS
1245	int "Number of ARC UART ports"
1246	depends on SERIAL_ARC
1247	range 1 3
1248	default "1"
1249	help
1250	  Set this to the number of serial ports you want the driver
1251	  to support.
1252
1253config SERIAL_RP2
1254	tristate "Comtrol RocketPort EXPRESS/INFINITY support"
1255	depends on PCI
1256	select SERIAL_CORE
1257	help
1258	  This driver supports the Comtrol RocketPort EXPRESS and
1259	  RocketPort INFINITY families of PCI/PCIe multiport serial adapters.
1260	  These adapters use a "RocketPort 2" ASIC that is not compatible
1261	  with the original RocketPort driver (CONFIG_ROCKETPORT).
1262
1263	  To compile this driver as a module, choose M here: the
1264	  module will be called rp2.
1265
1266	  If you want to compile this driver into the kernel, say Y here.  If
1267	  you don't have a suitable RocketPort card installed, say N.
1268
1269config SERIAL_RP2_NR_UARTS
1270	int "Maximum number of RocketPort EXPRESS/INFINITY ports"
1271	depends on SERIAL_RP2
1272	default "32"
1273	help
1274	  If multiple cards are present, the default limit of 32 ports may
1275	  need to be increased.
1276
1277config SERIAL_FSL_LPUART
1278	tristate "Freescale lpuart serial port support"
1279	depends on HAS_DMA
1280	select SERIAL_CORE
1281	help
1282	  Support for the on-chip lpuart on some Freescale SOCs.
1283
1284config SERIAL_FSL_LPUART_CONSOLE
1285	bool "Console on Freescale lpuart serial port"
1286	depends on SERIAL_FSL_LPUART=y
1287	select SERIAL_CORE_CONSOLE
1288	select SERIAL_EARLYCON
1289	help
1290	  If you have enabled the lpuart serial port on the Freescale SoCs,
1291	  you can make it the console by answering Y to this option.
1292
1293config SERIAL_FSL_LINFLEXUART
1294	tristate "Freescale LINFlexD UART serial port support"
1295	depends on PRINTK
1296	select SERIAL_CORE
1297	help
1298	  Support for the on-chip LINFlexD UART on some Freescale SOCs.
1299
1300config SERIAL_FSL_LINFLEXUART_CONSOLE
1301	bool "Console on Freescale LINFlexD UART serial port"
1302	depends on SERIAL_FSL_LINFLEXUART=y
1303	select SERIAL_CORE_CONSOLE
1304	select SERIAL_EARLYCON
1305	help
1306	  If you have enabled the LINFlexD UART serial port on the Freescale
1307	  SoCs, you can make it the console by answering Y to this option.
1308
1309config SERIAL_CONEXANT_DIGICOLOR
1310	tristate "Conexant Digicolor CX92xxx USART serial port support"
1311	depends on OF
1312	select SERIAL_CORE
1313	help
1314	  Support for the on-chip USART on Conexant Digicolor SoCs.
1315
1316config SERIAL_CONEXANT_DIGICOLOR_CONSOLE
1317	bool "Console on Conexant Digicolor serial port"
1318	depends on SERIAL_CONEXANT_DIGICOLOR=y
1319	select SERIAL_CORE_CONSOLE
1320	help
1321	  If you have enabled the USART serial port on Conexant Digicolor
1322	  SoCs, you can make it the console by answering Y to this option.
1323
1324config SERIAL_ST_ASC
1325	tristate "ST ASC serial port support"
1326	select SERIAL_CORE
1327	depends on ARM || COMPILE_TEST
1328	help
1329	  This driver is for the on-chip Asynchronous Serial Controller on
1330	  STMicroelectronics STi SoCs.
1331	  ASC is embedded in ST COMMS IP block. It supports Rx & Tx functionality.
1332	  It support all industry standard baud rates.
1333
1334	  If unsure, say N.
1335
1336config SERIAL_ST_ASC_CONSOLE
1337	bool "Support for console on ST ASC"
1338	depends on SERIAL_ST_ASC=y
1339	select SERIAL_CORE_CONSOLE
1340
1341config SERIAL_MEN_Z135
1342	tristate "MEN 16z135 Support"
1343	select SERIAL_CORE
1344	depends on MCB
1345	help
1346	  Say yes here to enable support for the MEN 16z135 High Speed UART IP-Core
1347	  on a MCB carrier.
1348
1349	  This driver can also be build as a module. If so, the module will be called
1350	  men_z135_uart.ko
1351
1352config SERIAL_SPRD
1353	tristate "Support for Spreadtrum serial"
1354	select SERIAL_CORE
1355	depends on COMMON_CLK
1356	help
1357	  This enables the driver for the Spreadtrum's serial.
1358
1359config SERIAL_SPRD_CONSOLE
1360	bool "Spreadtrum UART console support"
1361	depends on SERIAL_SPRD=y
1362	select SERIAL_CORE_CONSOLE
1363	select SERIAL_EARLYCON
1364	help
1365	  Support for early debug console using Spreadtrum's serial. This enables
1366	  the console before standard serial driver is probed. This is enabled
1367	  with "earlycon" on the kernel command line. The console is
1368	  enabled when early_param is processed.
1369
1370config SERIAL_STM32
1371	tristate "STMicroelectronics STM32 serial port support"
1372	select SERIAL_CORE
1373	depends on ARCH_STM32 || COMPILE_TEST
1374	select SERIAL_MCTRL_GPIO if GPIOLIB
1375	help
1376	  This driver is for the on-chip Serial Controller on
1377	  STMicroelectronics STM32 MCUs.
1378	  USART supports Rx & Tx functionality.
1379	  It support all industry standard baud rates.
1380
1381	  If unsure, say N.
1382
1383config SERIAL_STM32_CONSOLE
1384	bool "Support for console on STM32"
1385	depends on SERIAL_STM32=y
1386	select SERIAL_CORE_CONSOLE
1387	select SERIAL_EARLYCON
1388
1389config SERIAL_MVEBU_UART
1390	bool "Marvell EBU serial port support"
1391	depends on ARCH_MVEBU || COMPILE_TEST
1392	depends on COMMON_CLK
1393	select SERIAL_CORE
1394	help
1395	  This driver is for Marvell EBU SoC's UART. If you have a machine
1396	  based on the Armada-3700 SoC and wish to use the on-board serial
1397	  port,
1398	  say 'Y' here.
1399	  Otherwise, say 'N'.
1400
1401config SERIAL_MVEBU_CONSOLE
1402	bool "Console on Marvell EBU serial port"
1403	depends on SERIAL_MVEBU_UART
1404	select SERIAL_CORE_CONSOLE
1405	select SERIAL_EARLYCON
1406	default y
1407	help
1408	  Say 'Y' here if you wish to use Armada-3700 UART as the system console.
1409	  (the system console is the device which receives all kernel messages
1410	  and warnings and which allows logins in single user mode)
1411	  Otherwise, say 'N'.
1412
1413config SERIAL_OWL
1414	tristate "Actions Semi Owl serial port support"
1415	depends on ARCH_ACTIONS || COMPILE_TEST
1416	select SERIAL_CORE
1417	help
1418	  This driver is for Actions Semiconductor S500/S900 SoC's UART.
1419	  Say 'Y' here if you wish to use the on-board serial port.
1420	  Otherwise, say 'N'.
1421
1422config SERIAL_OWL_CONSOLE
1423	bool "Console on Actions Semi Owl serial port"
1424	depends on SERIAL_OWL=y
1425	select SERIAL_CORE_CONSOLE
1426	select SERIAL_EARLYCON
1427	default y
1428	help
1429	  Say 'Y' here if you wish to use Actions Semiconductor S500/S900 UART
1430	  as the system console.
1431
1432config SERIAL_RDA
1433	bool "RDA Micro serial port support"
1434	depends on ARCH_RDA || COMPILE_TEST
1435	select SERIAL_CORE
1436	help
1437	  This driver is for RDA8810PL SoC's UART.
1438	  Say 'Y' here if you wish to use the on-board serial port.
1439	  Otherwise, say 'N'.
1440
1441config SERIAL_RDA_CONSOLE
1442	bool "Console on RDA Micro serial port"
1443	depends on SERIAL_RDA=y
1444	select SERIAL_CORE_CONSOLE
1445	select SERIAL_EARLYCON
1446	default y
1447	help
1448	  Say 'Y' here if you wish to use the RDA8810PL UART as the system
1449	  console. Only earlycon is implemented currently.
1450
1451config SERIAL_MILBEAUT_USIO
1452	tristate "Milbeaut USIO/UART serial port support"
1453	depends on ARCH_MILBEAUT || (COMPILE_TEST && OF)
1454	default ARCH_MILBEAUT
1455	select SERIAL_CORE
1456	help
1457	  This selects the USIO/UART IP found in Socionext Milbeaut SoCs.
1458
1459config SERIAL_MILBEAUT_USIO_PORTS
1460	int "Maximum number of CSIO/UART ports (1-8)"
1461	range 1 8
1462	depends on SERIAL_MILBEAUT_USIO
1463	default "4"
1464
1465config SERIAL_MILBEAUT_USIO_CONSOLE
1466	bool "Support for console on MILBEAUT USIO/UART serial port"
1467	depends on SERIAL_MILBEAUT_USIO=y
1468	default y
1469	select SERIAL_CORE_CONSOLE
1470	select SERIAL_EARLYCON
1471	help
1472	  Say 'Y' here if you wish to use a USIO/UART of Socionext Milbeaut
1473	  SoCs as the system console (the system console is the device which
1474	  receives all kernel messages and warnings and which allows logins in
1475	  single user mode).
1476
1477config SERIAL_LITEUART
1478	tristate "LiteUART serial port support"
1479	depends on HAS_IOMEM
1480	depends on OF
1481	depends on LITEX || COMPILE_TEST
1482	select SERIAL_CORE
1483	help
1484	  This driver is for the FPGA-based LiteUART serial controller from LiteX
1485	  SoC builder.
1486
1487	  Say 'Y' or 'M' here if you wish to use the LiteUART serial controller.
1488	  Otherwise, say 'N'.
1489
1490config SERIAL_LITEUART_MAX_PORTS
1491	int "Maximum number of LiteUART ports"
1492	depends on SERIAL_LITEUART
1493	default "1"
1494	help
1495	  Set this to the maximum number of serial ports you want the driver
1496	  to support.
1497
1498config SERIAL_LITEUART_CONSOLE
1499	bool "LiteUART serial port console support"
1500	depends on SERIAL_LITEUART=y
1501	select SERIAL_CORE_CONSOLE
1502	select SERIAL_EARLYCON
1503	help
1504	  Say 'Y' or 'M' here if you wish to use the FPGA-based LiteUART serial
1505	  controller from LiteX SoC builder as the system console
1506	  (the system console is the device which receives all kernel messages
1507	  and warnings and which allows logins in single user mode).
1508	  Otherwise, say 'N'.
1509
1510config SERIAL_SUNPLUS
1511	tristate "Sunplus UART support"
1512	depends on ARCH_SUNPLUS || COMPILE_TEST
1513	select SERIAL_CORE
1514	help
1515	  Select this option if you would like to use Sunplus serial port on
1516	  Sunplus SoC SP7021.
1517	  If you enable this option, Sunplus serial ports in the system will
1518	  be registered as ttySUPx.
1519	  This driver can also be built as a module. If so, the module will be
1520	  called sunplus-uart.
1521
1522config SERIAL_SUNPLUS_CONSOLE
1523	bool "Console on Sunplus UART"
1524	depends on SERIAL_SUNPLUS
1525	select SERIAL_CORE_CONSOLE
1526	select SERIAL_EARLYCON
1527	help
1528	  Select this option if you would like to use a Sunplus UART as the
1529	  system console.
1530	  Even if you say Y here, the currently visible virtual console
1531	  (/dev/tty0) will still be used as the system console by default, but
1532	  you can alter that using a kernel command line option such as
1533	  "console=ttySUPx".
1534
1535config SERIAL_NUVOTON_MA35D1
1536	tristate "Nuvoton MA35D1 family UART support"
1537	depends on ARCH_MA35 || COMPILE_TEST
1538	select SERIAL_CORE
1539	help
1540	  This driver supports Nuvoton MA35D1 family UART ports. If you would
1541	  like to use them, you must answer Y or M to this option. Note that
1542	  for use as console, it must be included in kernel and not as a
1543	  module. If you enable this option, Ma35D1 serial ports in the system
1544	  will be registered as ttyNVTx.
1545
1546config SERIAL_NUVOTON_MA35D1_CONSOLE
1547	bool "Console on a Nuvotn MA35D1 family UART port"
1548	depends on SERIAL_NUVOTON_MA35D1=y
1549	select SERIAL_CORE_CONSOLE
1550	help
1551	  Select this options if you'd like to use the UART port0 of the
1552	  Nuvoton MA35D1 family as a console.
1553	  Even if you say Y here, the currently visible virtual console
1554	  (/dev/tty0) will still be used as the system console by default,
1555	  but you can alter that using a kernel command line option such as
1556	  "console=ttyNVTx".
1557
1558config SERIAL_ESP32
1559	tristate "Espressif ESP32 UART support"
1560	depends on XTENSA_PLATFORM_ESP32 || (COMPILE_TEST && OF)
1561	select SERIAL_CORE
1562	select SERIAL_CORE_CONSOLE
1563	select SERIAL_EARLYCON
1564	help
1565	  Driver for the UART controllers of the Espressif ESP32xx SoCs.
1566	  When earlycon option is enabled the following kernel command line
1567	  snippets may be used:
1568	    earlycon=esp32s3uart,mmio32,0x60000000,115200n8,40000000
1569	    earlycon=esp32uart,mmio32,0x3ff40000,115200n8
1570
1571config SERIAL_ESP32_ACM
1572	tristate "Espressif ESP32 USB ACM gadget support"
1573	depends on XTENSA_PLATFORM_ESP32 || (COMPILE_TEST && OF)
1574	select SERIAL_CORE
1575	select SERIAL_CORE_CONSOLE
1576	select SERIAL_EARLYCON
1577	help
1578	  Driver for the CDC ACM gadget controller of the Espressif ESP32S3
1579	  SoCs that share separate USB controller with the JTAG adapter.
1580	  When earlycon option is enabled the following kernel command line
1581	  snippet may be used:
1582	    earlycon=esp32s3acm,mmio32,0x60038000
1583
1584endmenu
1585
1586config SERIAL_MCTRL_GPIO
1587	tristate
1588