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