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