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