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