fanotify: disallow mount/sb marks on kernel internal pseudo fs
[sfrench/cifs-2.6.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_V01
91         select SERIAL_CORE
92         select SERIAL_CORE_CONSOLE
93         select SERIAL_EARLYCON
94         help
95           Support for early debug console using RISC-V SBI. This enables
96           the console before standard serial driver is probed. This is enabled
97           with "earlycon=sbi" on the kernel command line. The console is
98           enabled when early_param is processed.
99
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
536 config SERIAL_SUNCORE
537         bool
538         depends on SPARC
539         select SERIAL_CORE
540         select SERIAL_CORE_CONSOLE
541         default y
542
543 config SERIAL_SUNZILOG
544         tristate "Sun Zilog8530 serial support"
545         depends on SPARC
546         help
547           This driver supports the Zilog8530 serial ports found on many Sparc
548           systems.  Say Y or M if you want to be able to these serial ports.
549
550 config SERIAL_SUNZILOG_CONSOLE
551         bool "Console on Sun Zilog8530 serial port"
552         depends on SERIAL_SUNZILOG=y
553         help
554           If you would like to be able to use the Zilog8530 serial port
555           on your Sparc system as the console, you can do so by answering
556           Y to this option.
557
558 config SERIAL_SUNSU
559         tristate "Sun SU serial support"
560         depends on SPARC && PCI
561         help
562           This driver supports the 8250 serial ports that run the keyboard and
563           mouse on (PCI) UltraSPARC systems.  Say Y or M if you want to be able
564           to these serial ports.
565
566 config SERIAL_SUNSU_CONSOLE
567         bool "Console on Sun SU serial port"
568         depends on SERIAL_SUNSU=y
569         help
570           If you would like to be able to use the SU serial port
571           on your Sparc system as the console, you can do so by answering
572           Y to this option.
573
574 config SERIAL_MUX
575         tristate "Serial MUX support"
576         depends on GSC
577         select SERIAL_CORE
578         default y
579         help
580           Saying Y here will enable the hardware MUX serial driver for
581           the Nova, K class systems and D class with a 'remote control card'.
582           The hardware MUX is not 8250/16550 compatible therefore the
583           /dev/ttyB0 device is shared between the Serial MUX and the PDC
584           software console. The following steps need to be completed to use
585           the Serial MUX:
586
587             1. create the device entry (mknod /dev/ttyB0 c 11 0)
588             2. Edit the /etc/inittab to start a getty listening on /dev/ttyB0
589             3. Add device ttyB0 to /etc/securetty (if you want to log on as
590                  root on this console.)
591             4. Change the kernel command console parameter to: console=ttyB0
592
593 config SERIAL_MUX_CONSOLE
594         bool "Support for console on serial MUX"
595         depends on SERIAL_MUX=y
596         select SERIAL_CORE_CONSOLE
597         default y
598
599 config SERIAL_SUNSAB
600         tristate "Sun Siemens SAB82532 serial support"
601         depends on SPARC && PCI
602         help
603           This driver supports the Siemens SAB82532 DUSCC serial ports on newer
604           (PCI) UltraSPARC systems.  Say Y or M if you want to be able to these
605           serial ports.
606
607 config SERIAL_SUNSAB_CONSOLE
608         bool "Console on Sun Siemens SAB82532 serial port"
609         depends on SERIAL_SUNSAB=y
610         help
611           If you would like to be able to use the SAB82532 serial port
612           on your Sparc system as the console, you can do so by answering
613           Y to this option.
614
615 config SERIAL_SUNHV
616         bool "Sun4v Hypervisor Console support"
617         depends on SPARC64
618         help
619           This driver supports the console device found on SUN4V Sparc
620           systems.  Say Y if you want to be able to use this device.
621
622 config SERIAL_IP22_ZILOG
623         tristate "SGI Zilog8530 serial support"
624         depends on SGI_HAS_ZILOG
625         select SERIAL_CORE
626         help
627           This driver supports the Zilog8530 serial ports found on SGI
628           systems.  Say Y or M if you want to be able to these serial ports.
629
630 config SERIAL_IP22_ZILOG_CONSOLE
631         bool "Console on SGI Zilog8530 serial port"
632         depends on SERIAL_IP22_ZILOG=y
633         select SERIAL_CORE_CONSOLE
634
635 config SERIAL_SH_SCI
636         tristate "SuperH SCI(F) serial port support"
637         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
638         select SERIAL_CORE
639         select SERIAL_MCTRL_GPIO if GPIOLIB
640
641 config SERIAL_SH_SCI_NR_UARTS
642         int "Maximum number of SCI(F) serial ports" if EXPERT
643         range 1 64 if 64BIT
644         range 1 32 if !64BIT
645         depends on SERIAL_SH_SCI
646         default "10" if SUPERH
647         default "18" if ARCH_RENESAS
648         default "2"
649
650 config SERIAL_SH_SCI_CONSOLE
651         bool "Support for console on SuperH SCI(F)" if EXPERT
652         depends on SERIAL_SH_SCI=y
653         select SERIAL_CORE_CONSOLE
654         default y
655
656 config SERIAL_SH_SCI_EARLYCON
657         bool "Support for early console on SuperH SCI(F)" if EXPERT
658         depends on SERIAL_SH_SCI=y
659         select SERIAL_CORE_CONSOLE
660         select SERIAL_EARLYCON
661         default ARCH_RENESAS
662
663 config SERIAL_SH_SCI_DMA
664         bool "DMA support" if EXPERT
665         depends on SERIAL_SH_SCI && DMA_ENGINE
666         default ARCH_RENESAS
667
668 config SERIAL_HS_LPC32XX
669         tristate "LPC32XX high speed serial port support"
670         depends on ARCH_LPC32XX || COMPILE_TEST
671         depends on OF
672         select SERIAL_CORE
673         help
674           Support for the LPC32XX high speed serial ports (up to 900kbps).
675           Those are UARTs completely different from the Standard UARTs on the
676           LPC32XX SoC.
677           Choose M or Y here to build this driver.
678
679 config SERIAL_HS_LPC32XX_CONSOLE
680         bool "Enable LPC32XX high speed UART serial console"
681         depends on SERIAL_HS_LPC32XX=y
682         select SERIAL_CORE_CONSOLE
683         help
684           If you would like to be able to use one of the high speed serial
685           ports on the LPC32XX as the console, you can do so by answering
686           Y to this option.
687
688 config SERIAL_CORE
689         tristate
690
691 config SERIAL_CORE_CONSOLE
692         bool
693
694 config CONSOLE_POLL
695         bool
696
697 config SERIAL_MCF
698         bool "Coldfire serial support"
699         depends on COLDFIRE
700         select SERIAL_CORE
701         help
702           This serial driver supports the Freescale Coldfire serial ports.
703
704 config SERIAL_MCF_BAUDRATE
705         int "Default baudrate for Coldfire serial ports"
706         depends on SERIAL_MCF
707         default 19200
708         help
709           This setting lets you define what the default baudrate is for the
710           ColdFire serial ports. The usual default varies from board to board,
711           and this setting is a way of catering for that.
712
713 config SERIAL_MCF_CONSOLE
714         bool "Coldfire serial console support"
715         depends on SERIAL_MCF
716         select SERIAL_CORE_CONSOLE
717         help
718           Enable a ColdFire internal serial port to be the system console.
719
720 config SERIAL_PMACZILOG
721         tristate "Mac or PowerMac z85c30 ESCC support"
722         depends on (M68K && MAC) || PPC_PMAC
723         select SERIAL_CORE
724         help
725           This driver supports the Zilog z85C30 serial ports found on
726           (Power)Mac machines.
727           Say Y or M if you want to be able to these serial ports.
728
729 config SERIAL_PMACZILOG_TTYS
730         bool "Use ttySn device nodes for Zilog z85c30"
731         depends on SERIAL_PMACZILOG
732         help
733           The pmac_zilog driver for the z85C30 chip on many powermacs
734           historically used the device numbers for /dev/ttySn.  The
735           8250 serial port driver also uses these numbers, which means
736           the two drivers being unable to coexist; you could not use
737           both z85C30 and 8250 type ports at the same time.
738
739           If this option is not selected, the pmac_zilog driver will
740           use the device numbers allocated for /dev/ttyPZn.  This allows
741           the pmac_zilog and 8250 drivers to co-exist, but may cause
742           existing userspace setups to break.  Programs that need to
743           access the built-in serial ports on powermacs will need to
744           be reconfigured to use /dev/ttyPZn instead of /dev/ttySn.
745
746           If you enable this option, any z85c30 ports in the system will
747           be registered as ttyS0 onwards as in the past, and you will be
748           unable to use the 8250 module for PCMCIA or other 16C550-style
749           UARTs.
750
751           Say N unless you need the z85c30 ports on your (Power)Mac
752           to appear as /dev/ttySn.
753
754 config SERIAL_PMACZILOG_CONSOLE
755         bool "Console on Mac or PowerMac z85c30 serial port"
756         depends on SERIAL_PMACZILOG=y
757         select SERIAL_CORE_CONSOLE
758         help
759           If you would like to be able to use the z85c30 serial port
760           on your (Power)Mac as the console, you can do so by answering
761           Y to this option.
762
763 config SERIAL_CPM
764         tristate "CPM SCC/SMC serial port support"
765         depends on CPM2 || CPM1
766         select SERIAL_CORE
767         help
768           This driver supports the SCC and SMC serial ports on Motorola 
769           embedded PowerPC that contain a CPM1 (8xx) or CPM2 (8xxx)
770
771 config SERIAL_CPM_CONSOLE
772         bool "Support for console on CPM SCC/SMC serial port"
773         depends on SERIAL_CPM=y
774         select SERIAL_CORE_CONSOLE
775         help
776           Say Y here if you wish to use a SCC or SMC CPM UART as the system
777           console (the system console is the device which receives all kernel
778           messages and warnings and which allows logins in single user mode).
779
780           Even if you say Y here, the currently visible framebuffer console
781           (/dev/tty0) will still be used as the system console by default, but
782           you can alter that using a kernel command line option such as
783           "console=ttyCPM0". (Try "man bootparam" or see the documentation of
784           your boot loader (lilo or loadlin) about how to pass options to the
785           kernel at boot time.)
786
787 config SERIAL_PIC32
788         tristate "Microchip PIC32 serial support"
789         depends on MACH_PIC32 || (MIPS && COMPILE_TEST)
790         select SERIAL_CORE
791         help
792           If you have a PIC32, this driver supports the serial ports.
793
794           Say Y or M to use PIC32 serial ports, otherwise say N. Note that
795           to use a serial port as a console, this must be included in kernel and
796           not as a module.
797
798 config SERIAL_PIC32_CONSOLE
799         bool "PIC32 serial console support"
800         depends on SERIAL_PIC32=y
801         select SERIAL_CORE_CONSOLE
802         help
803           If you have a PIC32, this driver supports the putting a console on one
804           of the serial ports.
805
806           Say Y to use the PIC32 console, otherwise say N.
807
808 config SERIAL_MPC52xx
809         tristate "Freescale MPC52xx/MPC512x family PSC serial support"
810         depends on PPC_MPC52xx || PPC_MPC512x
811         select SERIAL_CORE
812         help
813           This driver supports MPC52xx and MPC512x PSC serial ports. If you would
814           like to use them, you must answer Y or M to this option. Note that
815           for use as console, it must be included in kernel and not as a
816           module.
817
818 config SERIAL_MPC52xx_CONSOLE
819         bool "Console on a Freescale MPC52xx/MPC512x family PSC serial port"
820         depends on SERIAL_MPC52xx=y
821         select SERIAL_CORE_CONSOLE
822         help
823           Select this options if you'd like to use one of the PSC serial port
824           of the Freescale MPC52xx family as a console.
825
826 config SERIAL_MPC52xx_CONSOLE_BAUD
827         int "Freescale MPC52xx/MPC512x family PSC serial port baud"
828         depends on SERIAL_MPC52xx_CONSOLE=y
829         default "9600"
830         help
831           Select the MPC52xx console baud rate.
832           This value is only used if the bootloader doesn't pass in the
833           console baudrate
834
835 config SERIAL_ICOM
836         tristate "IBM Multiport Serial Adapter"
837         depends on PCI
838         depends on PPC_PSERIES || COMPILE_TEST
839         select SERIAL_CORE
840         select FW_LOADER
841         help
842           This driver is for a family of multiport serial adapters
843           including 2 port RVX, 2 port internal modem, 4 port internal
844           modem and a split 1 port RVX and 1 port internal modem.
845
846           This driver can also be built as a module.  If so, the module
847           will be called icom.
848
849 config SERIAL_TXX9
850         bool "TMPTX39XX/49XX SIO support"
851         depends on HAS_TXX9_SERIAL
852         select SERIAL_CORE
853         default y
854
855 config HAS_TXX9_SERIAL
856         bool
857
858 config SERIAL_TXX9_NR_UARTS
859         int "Maximum number of TMPTX39XX/49XX SIO ports"
860         depends on SERIAL_TXX9
861         default "6"
862
863 config SERIAL_TXX9_CONSOLE
864         bool "TMPTX39XX/49XX SIO Console support"
865         depends on SERIAL_TXX9=y
866         select SERIAL_CORE_CONSOLE
867
868 config SERIAL_TXX9_STDSERIAL
869         bool "TX39XX/49XX SIO act as standard serial"
870         depends on !SERIAL_8250 && SERIAL_TXX9
871
872 config SERIAL_JSM
873         tristate "Digi International NEO and Classic PCI Support"
874         depends on PCI
875         select SERIAL_CORE
876         help
877           This is a driver for Digi International's Neo and Classic series
878           of cards which provide multiple serial ports. You would need
879           something like this to connect more than two modems to your Linux
880           box, for instance in order to become a dial-in server. This driver
881           supports PCI boards only.
882
883           If you have a card like this, say Y here, otherwise say N.
884
885           To compile this driver as a module, choose M here: the
886           module will be called jsm.
887
888 config SERIAL_MSM
889         tristate "MSM on-chip serial port support"
890         depends on ARCH_QCOM || COMPILE_TEST
891         select SERIAL_CORE
892
893 config SERIAL_MSM_CONSOLE
894         bool "MSM serial console support"
895         depends on SERIAL_MSM=y
896         select SERIAL_CORE_CONSOLE
897         select SERIAL_EARLYCON
898
899 config SERIAL_QCOM_GENI
900         tristate "QCOM on-chip GENI based serial port support"
901         depends on ARCH_QCOM || COMPILE_TEST
902         depends on QCOM_GENI_SE
903         select SERIAL_CORE
904
905 config SERIAL_QCOM_GENI_CONSOLE
906         bool "QCOM GENI Serial Console support"
907         depends on SERIAL_QCOM_GENI
908         select SERIAL_CORE_CONSOLE
909         select SERIAL_EARLYCON
910         help
911           Serial console driver for Qualcomm Technologies Inc's GENI based
912           QUP hardware.
913
914 config SERIAL_VT8500
915         bool "VIA VT8500 on-chip serial port support"
916         depends on ARCH_VT8500 || COMPILE_TEST
917         select SERIAL_CORE
918
919 config SERIAL_VT8500_CONSOLE
920         bool "VIA VT8500 serial console support"
921         depends on SERIAL_VT8500=y
922         select SERIAL_CORE_CONSOLE
923
924 config SERIAL_OMAP
925         tristate "OMAP serial port support"
926         depends on (ARCH_OMAP2PLUS && !SERIAL_8250_OMAP) || COMPILE_TEST
927         select SERIAL_CORE
928         help
929           If you have a machine based on an Texas Instruments OMAP CPU you
930           can enable its onboard serial ports by enabling this option.
931
932           By enabling this option you take advantage of dma feature available
933           with the omap-serial driver. DMA support can be enabled from platform
934           data.
935
936 config SERIAL_OMAP_CONSOLE
937         bool "Console on OMAP serial port"
938         depends on SERIAL_OMAP=y
939         select SERIAL_CORE_CONSOLE
940         help
941           Select this option if you would like to use omap serial port as
942           console.
943
944           Even if you say Y here, the currently visible virtual console
945           (/dev/tty0) will still be used as the system console by default, but
946           you can alter that using a kernel command line option such as
947           "console=ttyOx". (Try "man bootparam" or see the documentation of
948           your boot loader about how to pass options to the kernel at
949           boot time.)
950
951 config SERIAL_SIFIVE
952         tristate "SiFive UART support"
953         depends on OF
954         default ARCH_SIFIVE || ARCH_CANAAN
955         select SERIAL_CORE
956         help
957           Select this option if you are building a kernel for a device that
958           contains a SiFive UART IP block.  This type of UART is present on
959           SiFive FU540 SoCs, among others.
960
961 config SERIAL_SIFIVE_CONSOLE
962         bool "Console on SiFive UART"
963         depends on SERIAL_SIFIVE=y
964         default ARCH_SIFIVE || ARCH_CANAAN
965         select SERIAL_CORE_CONSOLE
966         select SERIAL_EARLYCON
967         help
968           Select this option if you would like to use a SiFive UART as the
969           system console.
970
971           Even if you say Y here, the currently visible virtual console
972           (/dev/tty0) will still be used as the system console by default, but
973           you can alter that using a kernel command line option such as
974           "console=ttySIFx". (Try "man bootparam" or see the documentation of
975           your boot loader about how to pass options to the kernel at
976           boot time.)
977
978 config SERIAL_LANTIQ
979         tristate "Lantiq serial driver"
980         depends on (LANTIQ || X86) || COMPILE_TEST
981         select SERIAL_CORE
982         help
983           Support for UART on Lantiq and Intel SoCs.
984           To compile this driver as a module, select M here. The
985           module will be called lantiq.
986
987 config SERIAL_LANTIQ_CONSOLE
988         bool "Console on Lantiq UART"
989         depends on SERIAL_LANTIQ=y
990         select SERIAL_CORE_CONSOLE
991         select SERIAL_EARLYCON
992         help
993           Select this option if you would like to use a Lantiq UART as the
994           system console.
995
996 config SERIAL_QE
997         tristate "Freescale QUICC Engine serial port support"
998         depends on QUICC_ENGINE
999         select SERIAL_CORE
1000         select FW_LOADER
1001         help
1002           This driver supports the QE serial ports on Freescale embedded
1003           PowerPC that contain a QUICC Engine.
1004
1005 config SERIAL_SCCNXP
1006         tristate "SCCNXP serial port support"
1007         select SERIAL_CORE
1008         help
1009           This selects support for an advanced UART from NXP (Philips).
1010           Supported ICs are SCC2681, SCC2691, SCC2692, SC28L91, SC28L92,
1011           SC28L202, SCC68681 and SCC68692.
1012
1013 config SERIAL_SCCNXP_CONSOLE
1014         bool "Console on SCCNXP serial port"
1015         depends on SERIAL_SCCNXP=y
1016         select SERIAL_CORE_CONSOLE
1017         help
1018           Support for console on SCCNXP serial ports.
1019
1020 config SERIAL_SC16IS7XX_CORE
1021         tristate
1022
1023 config SERIAL_SC16IS7XX
1024         tristate "SC16IS7xx serial support"
1025         select SERIAL_CORE
1026         depends on (SPI_MASTER && !I2C) || I2C
1027         help
1028           This selects support for SC16IS7xx serial ports.
1029           Supported ICs are SC16IS740, SC16IS741, SC16IS750, SC16IS752,
1030           SC16IS760 and SC16IS762. Select supported buses using options below.
1031
1032 config SERIAL_SC16IS7XX_I2C
1033         bool "SC16IS7xx for I2C interface"
1034         depends on SERIAL_SC16IS7XX
1035         depends on I2C
1036         select SERIAL_SC16IS7XX_CORE if SERIAL_SC16IS7XX
1037         select REGMAP_I2C if I2C
1038         default y
1039         help
1040           Enable SC16IS7xx driver on I2C bus,
1041           If required say y, and say n to i2c if not required,
1042           Enabled by default to support oldconfig.
1043           You must select at least one bus for the driver to be built.
1044
1045 config SERIAL_SC16IS7XX_SPI
1046         bool "SC16IS7xx for spi interface"
1047         depends on SERIAL_SC16IS7XX
1048         depends on SPI_MASTER
1049         select SERIAL_SC16IS7XX_CORE if SERIAL_SC16IS7XX
1050         select REGMAP_SPI if SPI_MASTER
1051         help
1052           Enable SC16IS7xx driver on SPI bus,
1053           If required say y, and say n to spi if not required,
1054           This is additional support to existing driver.
1055           You must select at least one bus for the driver to be built.
1056
1057 config SERIAL_TIMBERDALE
1058         tristate "Support for timberdale UART"
1059         select SERIAL_CORE
1060         depends on X86_32 || COMPILE_TEST
1061         help
1062         Add support for UART controller on timberdale.
1063
1064 config SERIAL_BCM63XX
1065         tristate "Broadcom BCM63xx/BCM33xx UART support"
1066         select SERIAL_CORE
1067         depends on ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
1068         default ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC
1069         help
1070           This enables the driver for the onchip UART core found on
1071           the following chipsets:
1072
1073             BCM33xx (cable modem)
1074             BCM63xx/BCM63xxx (DSL)
1075             BCM68xx (PON)
1076             BCM7xxx (STB) - DOCSIS console
1077
1078 config SERIAL_BCM63XX_CONSOLE
1079         bool "Console on BCM63xx serial port"
1080         depends on SERIAL_BCM63XX=y
1081         select SERIAL_CORE_CONSOLE
1082         select SERIAL_EARLYCON
1083         help
1084           If you have enabled the serial port on the BCM63xx CPU
1085           you can make it the console by answering Y to this option.
1086
1087 config SERIAL_GRLIB_GAISLER_APBUART
1088         tristate "GRLIB APBUART serial support"
1089         depends on OF && SPARC
1090         select SERIAL_CORE
1091         help
1092         Add support for the GRLIB APBUART serial port.
1093
1094 config SERIAL_GRLIB_GAISLER_APBUART_CONSOLE
1095         bool "Console on GRLIB APBUART serial port"
1096         depends on SERIAL_GRLIB_GAISLER_APBUART=y
1097         select SERIAL_CORE_CONSOLE
1098         help
1099         Support for running a console on the GRLIB APBUART
1100
1101 config SERIAL_ALTERA_JTAGUART
1102         tristate "Altera JTAG UART support"
1103         select SERIAL_CORE
1104         help
1105           This driver supports the Altera JTAG UART port.
1106
1107 config SERIAL_ALTERA_JTAGUART_CONSOLE
1108         bool "Altera JTAG UART console support"
1109         depends on SERIAL_ALTERA_JTAGUART=y
1110         select SERIAL_CORE_CONSOLE
1111         select SERIAL_EARLYCON
1112         help
1113           Enable a Altera JTAG UART port to be the system console.
1114
1115 config SERIAL_ALTERA_JTAGUART_CONSOLE_BYPASS
1116         bool "Bypass output when no connection"
1117         depends on SERIAL_ALTERA_JTAGUART_CONSOLE
1118         select SERIAL_CORE_CONSOLE
1119         help
1120           Bypass console output and keep going even if there is no
1121           JTAG terminal connection with the host.
1122
1123 config SERIAL_ALTERA_UART
1124         tristate "Altera UART support"
1125         select SERIAL_CORE
1126         help
1127           This driver supports the Altera softcore UART port.
1128
1129 config SERIAL_ALTERA_UART_MAXPORTS
1130         int "Maximum number of Altera UART ports"
1131         depends on SERIAL_ALTERA_UART
1132         default 4
1133         help
1134           This setting lets you define the maximum number of the Altera
1135           UART ports. The usual default varies from board to board, and
1136           this setting is a way of catering for that.
1137
1138 config SERIAL_ALTERA_UART_BAUDRATE
1139         int "Default baudrate for Altera UART ports"
1140         depends on SERIAL_ALTERA_UART
1141         default 115200
1142         help
1143           This setting lets you define what the default baudrate is for the
1144           Altera UART ports. The usual default varies from board to board,
1145           and this setting is a way of catering for that.
1146
1147 config SERIAL_ALTERA_UART_CONSOLE
1148         bool "Altera UART console support"
1149         depends on SERIAL_ALTERA_UART=y
1150         select SERIAL_CORE_CONSOLE
1151         select SERIAL_EARLYCON
1152         help
1153           Enable a Altera UART port to be the system console.
1154
1155 config SERIAL_PCH_UART
1156         tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) UART"
1157         depends on PCI && (X86_32 || MIPS ||  COMPILE_TEST)
1158         select SERIAL_CORE
1159         help
1160           This driver is for PCH(Platform controller Hub) UART of Intel EG20T
1161           which is an IOH(Input/Output Hub) for x86 embedded processor.
1162           Enabling PCH_DMA, this PCH UART works as DMA mode.
1163
1164           This driver also can be used for LAPIS Semiconductor IOH(Input/
1165           Output Hub), ML7213, ML7223 and ML7831.
1166           ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
1167           for MP(Media Phone) use and ML7831 IOH is for general purpose use.
1168           ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
1169           ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
1170
1171 config SERIAL_PCH_UART_CONSOLE
1172         bool "Support for console on Intel EG20T PCH UART/OKI SEMICONDUCTOR ML7213 IOH"
1173         depends on SERIAL_PCH_UART=y
1174         select SERIAL_CORE_CONSOLE
1175         help
1176           Say Y here if you wish to use the PCH UART as the system console
1177           (the system  console is the device which receives all kernel messages and
1178           warnings and which allows logins in single user mode).
1179
1180 config SERIAL_MXS_AUART
1181         tristate "MXS AUART support"
1182         depends on ARCH_MXS || MACH_ASM9260 || COMPILE_TEST
1183         select SERIAL_CORE
1184         select SERIAL_MCTRL_GPIO if GPIOLIB
1185         help
1186           This driver supports the MXS and Alphascale ASM9260 Application
1187           UART (AUART) port.
1188
1189 config SERIAL_MXS_AUART_CONSOLE
1190         bool "MXS AUART console support"
1191         depends on SERIAL_MXS_AUART=y
1192         select SERIAL_CORE_CONSOLE
1193         help
1194           Enable a MXS AUART port to be the system console.
1195
1196 config SERIAL_XILINX_PS_UART
1197         tristate "Cadence (Xilinx Zynq) UART support"
1198         depends on OF
1199         select SERIAL_CORE
1200         help
1201           This driver supports the Cadence UART. It is found e.g. in Xilinx
1202           Zynq.
1203
1204 config SERIAL_XILINX_PS_UART_CONSOLE
1205         bool "Cadence UART console support"
1206         depends on SERIAL_XILINX_PS_UART=y
1207         select SERIAL_CORE_CONSOLE
1208         select SERIAL_EARLYCON
1209         help
1210           Enable a Cadence UART port to be the system console.
1211
1212 config SERIAL_AR933X
1213         tristate "AR933X serial port support"
1214         depends on (HAVE_CLK && ATH79) || (MIPS && COMPILE_TEST)
1215         select SERIAL_CORE
1216         select SERIAL_MCTRL_GPIO if GPIOLIB
1217         help
1218           If you have an Atheros AR933X SOC based board and want to use the
1219           built-in UART of the SoC, say Y to this option.
1220
1221           To compile this driver as a module, choose M here: the
1222           module will be called ar933x_uart.
1223
1224 config SERIAL_AR933X_CONSOLE
1225         bool "Console on AR933X serial port"
1226         depends on SERIAL_AR933X=y
1227         select SERIAL_CORE_CONSOLE
1228         help
1229           Enable a built-in UART port of the AR933X to be the system console.
1230
1231 config SERIAL_AR933X_NR_UARTS
1232         int "Maximum number of AR933X serial ports"
1233         depends on SERIAL_AR933X
1234         default "2"
1235         help
1236           Set this to the number of serial ports you want the driver
1237           to support.
1238
1239 config SERIAL_MPS2_UART_CONSOLE
1240         bool "MPS2 UART console support"
1241         depends on SERIAL_MPS2_UART
1242         select SERIAL_CORE_CONSOLE
1243         select SERIAL_EARLYCON
1244
1245 config SERIAL_MPS2_UART
1246         bool "MPS2 UART port"
1247         depends on ARCH_MPS2 || COMPILE_TEST
1248         select SERIAL_CORE
1249         help
1250           This driver support the UART ports on ARM MPS2.
1251
1252 config SERIAL_ARC
1253         tristate "ARC UART driver support"
1254         select SERIAL_CORE
1255         help
1256           Driver for on-chip UART for ARC(Synopsys) for the legacy
1257           FPGA Boards (ML50x/ARCAngel4)
1258
1259 config SERIAL_ARC_CONSOLE
1260         bool "Console on ARC UART"
1261         depends on SERIAL_ARC=y
1262         select SERIAL_CORE_CONSOLE
1263         select SERIAL_EARLYCON
1264         help
1265           Enable system Console on ARC UART
1266
1267 config SERIAL_ARC_NR_PORTS
1268         int "Number of ARC UART ports"
1269         depends on SERIAL_ARC
1270         range 1 3
1271         default "1"
1272         help
1273           Set this to the number of serial ports you want the driver
1274           to support.
1275
1276 config SERIAL_RP2
1277         tristate "Comtrol RocketPort EXPRESS/INFINITY support"
1278         depends on PCI
1279         select SERIAL_CORE
1280         help
1281           This driver supports the Comtrol RocketPort EXPRESS and
1282           RocketPort INFINITY families of PCI/PCIe multiport serial adapters.
1283           These adapters use a "RocketPort 2" ASIC that is not compatible
1284           with the original RocketPort driver (CONFIG_ROCKETPORT).
1285
1286           To compile this driver as a module, choose M here: the
1287           module will be called rp2.
1288
1289           If you want to compile this driver into the kernel, say Y here.  If
1290           you don't have a suitable RocketPort card installed, say N.
1291
1292 config SERIAL_RP2_NR_UARTS
1293         int "Maximum number of RocketPort EXPRESS/INFINITY ports"
1294         depends on SERIAL_RP2
1295         default "32"
1296         help
1297           If multiple cards are present, the default limit of 32 ports may
1298           need to be increased.
1299
1300 config SERIAL_FSL_LPUART
1301         tristate "Freescale lpuart serial port support"
1302         depends on HAS_DMA
1303         select SERIAL_CORE
1304         help
1305           Support for the on-chip lpuart on some Freescale SOCs.
1306
1307 config SERIAL_FSL_LPUART_CONSOLE
1308         bool "Console on Freescale lpuart serial port"
1309         depends on SERIAL_FSL_LPUART=y
1310         select SERIAL_CORE_CONSOLE
1311         select SERIAL_EARLYCON
1312         help
1313           If you have enabled the lpuart serial port on the Freescale SoCs,
1314           you can make it the console by answering Y to this option.
1315
1316 config SERIAL_FSL_LINFLEXUART
1317         tristate "Freescale LINFlexD UART serial port support"
1318         depends on PRINTK
1319         select SERIAL_CORE
1320         help
1321           Support for the on-chip LINFlexD UART on some Freescale SOCs.
1322
1323 config SERIAL_FSL_LINFLEXUART_CONSOLE
1324         bool "Console on Freescale LINFlexD UART serial port"
1325         depends on SERIAL_FSL_LINFLEXUART=y
1326         select SERIAL_CORE_CONSOLE
1327         select SERIAL_EARLYCON
1328         help
1329           If you have enabled the LINFlexD UART serial port on the Freescale
1330           SoCs, you can make it the console by answering Y to this option.
1331
1332 config SERIAL_CONEXANT_DIGICOLOR
1333         tristate "Conexant Digicolor CX92xxx USART serial port support"
1334         depends on OF
1335         select SERIAL_CORE
1336         help
1337           Support for the on-chip USART on Conexant Digicolor SoCs.
1338
1339 config SERIAL_CONEXANT_DIGICOLOR_CONSOLE
1340         bool "Console on Conexant Digicolor serial port"
1341         depends on SERIAL_CONEXANT_DIGICOLOR=y
1342         select SERIAL_CORE_CONSOLE
1343         help
1344           If you have enabled the USART serial port on Conexant Digicolor
1345           SoCs, you can make it the console by answering Y to this option.
1346
1347 config SERIAL_ST_ASC
1348         tristate "ST ASC serial port support"
1349         select SERIAL_CORE
1350         depends on ARM || COMPILE_TEST
1351         help
1352           This driver is for the on-chip Asynchronous Serial Controller on
1353           STMicroelectronics STi SoCs.
1354           ASC is embedded in ST COMMS IP block. It supports Rx & Tx functionality.
1355           It support all industry standard baud rates.
1356
1357           If unsure, say N.
1358
1359 config SERIAL_ST_ASC_CONSOLE
1360         bool "Support for console on ST ASC"
1361         depends on SERIAL_ST_ASC=y
1362         select SERIAL_CORE_CONSOLE
1363
1364 config SERIAL_MEN_Z135
1365         tristate "MEN 16z135 Support"
1366         select SERIAL_CORE
1367         depends on MCB
1368         help
1369           Say yes here to enable support for the MEN 16z135 High Speed UART IP-Core
1370           on a MCB carrier.
1371
1372           This driver can also be build as a module. If so, the module will be called
1373           men_z135_uart.ko
1374
1375 config SERIAL_SPRD
1376         tristate "Support for Spreadtrum serial"
1377         select SERIAL_CORE
1378         depends on COMMON_CLK
1379         help
1380           This enables the driver for the Spreadtrum's serial.
1381
1382 config SERIAL_SPRD_CONSOLE
1383         bool "Spreadtrum UART console support"
1384         depends on SERIAL_SPRD=y
1385         select SERIAL_CORE_CONSOLE
1386         select SERIAL_EARLYCON
1387         help
1388           Support for early debug console using Spreadtrum's serial. This enables
1389           the console before standard serial driver is probed. This is enabled
1390           with "earlycon" on the kernel command line. The console is
1391           enabled when early_param is processed.
1392
1393 config SERIAL_STM32
1394         tristate "STMicroelectronics STM32 serial port support"
1395         select SERIAL_CORE
1396         depends on ARCH_STM32 || COMPILE_TEST
1397         select SERIAL_MCTRL_GPIO if GPIOLIB
1398         help
1399           This driver is for the on-chip Serial Controller on
1400           STMicroelectronics STM32 MCUs.
1401           USART supports Rx & Tx functionality.
1402           It support all industry standard baud rates.
1403
1404           If unsure, say N.
1405
1406 config SERIAL_STM32_CONSOLE
1407         bool "Support for console on STM32"
1408         depends on SERIAL_STM32=y
1409         select SERIAL_CORE_CONSOLE
1410         select SERIAL_EARLYCON
1411
1412 config SERIAL_MVEBU_UART
1413         bool "Marvell EBU serial port support"
1414         depends on ARCH_MVEBU || COMPILE_TEST
1415         depends on COMMON_CLK
1416         select SERIAL_CORE
1417         help
1418           This driver is for Marvell EBU SoC's UART. If you have a machine
1419           based on the Armada-3700 SoC and wish to use the on-board serial
1420           port,
1421           say 'Y' here.
1422           Otherwise, say 'N'.
1423
1424 config SERIAL_MVEBU_CONSOLE
1425         bool "Console on Marvell EBU serial port"
1426         depends on SERIAL_MVEBU_UART
1427         select SERIAL_CORE_CONSOLE
1428         select SERIAL_EARLYCON
1429         default y
1430         help
1431           Say 'Y' here if you wish to use Armada-3700 UART as the system console.
1432           (the system console is the device which receives all kernel messages
1433           and warnings and which allows logins in single user mode)
1434           Otherwise, say 'N'.
1435
1436 config SERIAL_OWL
1437         tristate "Actions Semi Owl serial port support"
1438         depends on ARCH_ACTIONS || COMPILE_TEST
1439         select SERIAL_CORE
1440         help
1441           This driver is for Actions Semiconductor S500/S900 SoC's UART.
1442           Say 'Y' here if you wish to use the on-board serial port.
1443           Otherwise, say 'N'.
1444
1445 config SERIAL_OWL_CONSOLE
1446         bool "Console on Actions Semi Owl serial port"
1447         depends on SERIAL_OWL=y
1448         select SERIAL_CORE_CONSOLE
1449         select SERIAL_EARLYCON
1450         default y
1451         help
1452           Say 'Y' here if you wish to use Actions Semiconductor S500/S900 UART
1453           as the system console.
1454
1455 config SERIAL_RDA
1456         bool "RDA Micro serial port support"
1457         depends on ARCH_RDA || COMPILE_TEST
1458         select SERIAL_CORE
1459         help
1460           This driver is for RDA8810PL SoC's UART.
1461           Say 'Y' here if you wish to use the on-board serial port.
1462           Otherwise, say 'N'.
1463
1464 config SERIAL_RDA_CONSOLE
1465         bool "Console on RDA Micro serial port"
1466         depends on SERIAL_RDA=y
1467         select SERIAL_CORE_CONSOLE
1468         select SERIAL_EARLYCON
1469         default y
1470         help
1471           Say 'Y' here if you wish to use the RDA8810PL UART as the system
1472           console. Only earlycon is implemented currently.
1473
1474 config SERIAL_MILBEAUT_USIO
1475         tristate "Milbeaut USIO/UART serial port support"
1476         depends on ARCH_MILBEAUT || (COMPILE_TEST && OF)
1477         default ARCH_MILBEAUT
1478         select SERIAL_CORE
1479         help
1480           This selects the USIO/UART IP found in Socionext Milbeaut SoCs.
1481
1482 config SERIAL_MILBEAUT_USIO_PORTS
1483         int "Maximum number of CSIO/UART ports (1-8)"
1484         range 1 8
1485         depends on SERIAL_MILBEAUT_USIO
1486         default "4"
1487
1488 config SERIAL_MILBEAUT_USIO_CONSOLE
1489         bool "Support for console on MILBEAUT USIO/UART serial port"
1490         depends on SERIAL_MILBEAUT_USIO=y
1491         default y
1492         select SERIAL_CORE_CONSOLE
1493         select SERIAL_EARLYCON
1494         help
1495           Say 'Y' here if you wish to use a USIO/UART of Socionext Milbeaut
1496           SoCs as the system console (the system console is the device which
1497           receives all kernel messages and warnings and which allows logins in
1498           single user mode).
1499
1500 config SERIAL_LITEUART
1501         tristate "LiteUART serial port support"
1502         depends on HAS_IOMEM
1503         depends on OF
1504         depends on LITEX || COMPILE_TEST
1505         select SERIAL_CORE
1506         help
1507           This driver is for the FPGA-based LiteUART serial controller from LiteX
1508           SoC builder.
1509
1510           Say 'Y' or 'M' here if you wish to use the LiteUART serial controller.
1511           Otherwise, say 'N'.
1512
1513 config SERIAL_LITEUART_MAX_PORTS
1514         int "Maximum number of LiteUART ports"
1515         depends on SERIAL_LITEUART
1516         default "1"
1517         help
1518           Set this to the maximum number of serial ports you want the driver
1519           to support.
1520
1521 config SERIAL_LITEUART_CONSOLE
1522         bool "LiteUART serial port console support"
1523         depends on SERIAL_LITEUART=y
1524         select SERIAL_CORE_CONSOLE
1525         select SERIAL_EARLYCON
1526         help
1527           Say 'Y' or 'M' here if you wish to use the FPGA-based LiteUART serial
1528           controller from LiteX SoC builder as the system console
1529           (the system console is the device which receives all kernel messages
1530           and warnings and which allows logins in single user mode).
1531           Otherwise, say 'N'.
1532
1533 config SERIAL_SUNPLUS
1534         tristate "Sunplus UART support"
1535         depends on ARCH_SUNPLUS || COMPILE_TEST
1536         select SERIAL_CORE
1537         help
1538           Select this option if you would like to use Sunplus serial port on
1539           Sunplus SoC SP7021.
1540           If you enable this option, Sunplus serial ports in the system will
1541           be registered as ttySUPx.
1542           This driver can also be built as a module. If so, the module will be
1543           called sunplus-uart.
1544
1545 config SERIAL_SUNPLUS_CONSOLE
1546         bool "Console on Sunplus UART"
1547         depends on SERIAL_SUNPLUS
1548         select SERIAL_CORE_CONSOLE
1549         select SERIAL_EARLYCON
1550         help
1551           Select this option if you would like to use a Sunplus UART as the
1552           system console.
1553           Even if you say Y here, the currently visible virtual console
1554           (/dev/tty0) will still be used as the system console by default, but
1555           you can alter that using a kernel command line option such as
1556           "console=ttySUPx".
1557
1558 endmenu
1559
1560 config SERIAL_MCTRL_GPIO
1561         tristate