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