linux/drivers/tty/serial/Kconfig

# SPDX-License-Identifier: GPL-2.0
#
# Serial device configuration
#

menu "Serial drivers"
	depends on HAS_IOMEM

config SERIAL_EARLYCON
	bool
	depends on SERIAL_CORE
	help
	  Support for early consoles with the earlycon parameter. This enables
	  the console before standard serial driver is probed. The console is
	  enabled when early_param is processed.

source "drivers/tty/serial/8250/Kconfig"

comment "Non-8250 serial port support"

config SERIAL_AMBA_PL010
	tristate "ARM AMBA PL010 serial port support"
	depends on ARM_AMBA || COMPILE_TEST
	select SERIAL_CORE
	help
	  This selects the ARM(R) AMBA(R) PrimeCell PL010 UART.  If you have
	  an Integrator/AP or Integrator/PP2 platform, or if you have a
	  Cirrus Logic EP93xx CPU, say Y or M here.

	  If unsure, say N.

config SERIAL_AMBA_PL010_CONSOLE
	bool "Support for console on AMBA serial port"
	depends on SERIAL_AMBA_PL010=y
	select SERIAL_CORE_CONSOLE
	help
	  Say Y here if you wish to use an AMBA PrimeCell UART as the system
	  console (the system console is the device which receives all kernel
	  messages and warnings and which allows logins in single user mode).

	  Even if you say Y here, the currently visible framebuffer console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyAM0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_AMBA_PL011
	tristate "ARM AMBA PL011 serial port support"
	depends on ARM_AMBA
	select SERIAL_CORE
	help
	  This selects the ARM(R) AMBA(R) PrimeCell PL011 UART.  If you have
	  an Integrator/PP2, Integrator/CP or Versatile platform, say Y or M
	  here.

	  If unsure, say N.

config SERIAL_AMBA_PL011_CONSOLE
	bool "Support for console on AMBA serial port"
	depends on SERIAL_AMBA_PL011=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say Y here if you wish to use an AMBA PrimeCell UART as the system
	  console (the system console is the device which receives all kernel
	  messages and warnings and which allows logins in single user mode).

	  Even if you say Y here, the currently visible framebuffer console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyAMA0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_EARLYCON_SEMIHOST
	bool "Early console using Arm compatible semihosting"
	depends on ARM64 || ARM || RISCV
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Support for early debug console using Arm compatible semihosting.
	  This enables the console before standard serial driver is probed.
	  This is enabled with "earlycon=smh" on the kernel command line.
	  The console is enabled when early_param is processed.

config SERIAL_EARLYCON_RISCV_SBI
	bool "Early console using RISC-V SBI"
	depends on RISCV_SBI
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Support for early debug console using RISC-V SBI. This enables
	  the console before standard serial driver is probed. This is enabled
	  with "earlycon=sbi" on the kernel command line. The console is
	  enabled when early_param is processed.

config SERIAL_SB1250_DUART
	tristate "BCM1xxx on-chip DUART serial support"
	depends on SIBYTE_SB1xxx_SOC=y
	select SERIAL_CORE
	default y
	help
	  Support for the asynchronous serial interface (DUART) included in
	  the BCM1250 and derived System-On-a-Chip (SOC) devices.  Note that
	  the letter D in DUART stands for "dual", which is how the device
	  is implemented.  Depending on the SOC configuration there may be
	  one or more DUARTs available of which all are handled.

	  If unsure, say Y.  To compile this driver as a module, choose M here:
	  the module will be called sb1250-duart.

config SERIAL_SB1250_DUART_CONSOLE
	bool "Support for console on a BCM1xxx DUART serial port"
	depends on SERIAL_SB1250_DUART=y
	select SERIAL_CORE_CONSOLE
	default y
	help
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  If unsure, say Y.

config SERIAL_ATMEL
	bool "AT91 on-chip serial port support"
	depends on COMMON_CLK
	depends on ARCH_AT91 || COMPILE_TEST
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	select MFD_AT91_USART
	help
	  This enables the driver for the on-chip UARTs of the Atmel
	  AT91 processors.

config SERIAL_ATMEL_CONSOLE
	bool "Support for console on AT91 serial port"
	depends on SERIAL_ATMEL=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say Y here if you wish to use an on-chip UART on a Atmel
	  AT91 processor as the system console (the system
	  console is the device which receives all kernel messages and
	  warnings and which allows logins in single user mode).

config SERIAL_ATMEL_PDC
	bool "Support DMA transfers on AT91 serial port"
	depends on SERIAL_ATMEL
	default y
	help
	  Say Y here if you wish to use the PDC to do DMA transfers to
	  and from the Atmel AT91 serial port. In order to
	  actually use DMA transfers, make sure that the use_dma_tx
	  and use_dma_rx members in the atmel_uart_data struct is set
	  appropriately for each port.

	  Note that break and error handling currently doesn't work
	  properly when DMA is enabled. Make sure that ports where
	  this matters don't use DMA.

config SERIAL_ATMEL_TTYAT
	bool "Install as device ttyATn instead of ttySn"
	depends on SERIAL_ATMEL=y
	help
	  Say Y here if you wish to have the internal AT91 UARTs
	  appear as /dev/ttyATn (major 204, minor starting at 154)
	  instead of the normal /dev/ttySn (major 4, minor starting at
	  64). This is necessary if you also want other UARTs, such as
	  external 8250/16C550 compatible UARTs.
	  The ttySn nodes are legally reserved for the 8250 serial driver
	  but are often misused by other serial drivers.

	  To use this, you should create suitable ttyATn device nodes in
	  /dev/, and pass "console=ttyATn" to the kernel.

	  Say Y if you have an external 8250/16C550 UART.  If unsure, say N.

config SERIAL_KGDB_NMI
	bool "Serial console over KGDB NMI debugger port"
	depends on KGDB_SERIAL_CONSOLE
	help
	  This special driver allows you to temporary use NMI debugger port
	  as a normal console (assuming that the port is attached to KGDB).

	  Unlike KDB's disable_nmi command, with this driver you are always
	  able to go back to the debugger using KGDB escape sequence ($3#33).
	  This is because this console driver processes the input in NMI
	  context, and thus is able to intercept the magic sequence.

	  Note that since the console interprets input and uses polling
	  communication methods, for things like PPP you still must fully
	  detach debugger port from the KGDB NMI (i.e. disable_nmi), and
	  use raw console.

	  If unsure, say N.

config SERIAL_MESON
	tristate "Meson serial port support"
	depends on ARCH_MESON || COMPILE_TEST
	select SERIAL_CORE
	help
	  This enables the driver for the on-chip UARTs of the Amlogic
	  MesonX processors.

config SERIAL_MESON_CONSOLE
	bool "Support for console on meson"
	depends on SERIAL_MESON
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say Y here if you wish to use a Amlogic MesonX UART as the
	  system console (the system console is the device which
	  receives all kernel messages and warnings and which allows
	  logins in single user mode) as /dev/ttyAMLx.

config SERIAL_CLPS711X
	tristate "CLPS711X serial port support"
	depends on ARCH_CLPS711X || COMPILE_TEST
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  This enables the driver for the on-chip UARTs of the Cirrus
	  Logic EP711x/EP721x/EP731x processors.

config SERIAL_CLPS711X_CONSOLE
	bool "Support for console on CLPS711X serial port"
	depends on SERIAL_CLPS711X=y
	select SERIAL_CORE_CONSOLE
	help
	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyCL1".

config SERIAL_SAMSUNG
	tristate "Samsung SoC serial support"
	depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || ARCH_APPLE || ARCH_ARTPEC || COMPILE_TEST
	select SERIAL_CORE
	help
	  Support for the on-chip UARTs on the Samsung
	  S3C64xx/S5Pv210/Exynos and Apple M1 SoCs, providing
	  /dev/ttySAC0, 1 and 2 (note, some machines may not provide all of
	  these ports, depending on how the serial port pins are configured.

	  Choose Y/M here only if you build for such SoC.

config SERIAL_SAMSUNG_UARTS
	int
	depends on SERIAL_SAMSUNG
	default 4
	help
	  Select the number of available UART ports for the Samsung S3C
	  serial driver

config SERIAL_SAMSUNG_CONSOLE
	bool "Support for console on Samsung SoC serial port"
	depends on SERIAL_SAMSUNG
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Allow selection of the S3C24XX on-board serial ports for use as
	  an virtual console.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySACx". (Try "man bootparam" or see the documentation of
	  your boot loader about how to pass options to the kernel at
	  boot time.)

config SERIAL_TEGRA
	tristate "NVIDIA Tegra20/30 SoC serial controller"
	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
	select SERIAL_CORE
	help
	  Support for the on-chip UARTs on the NVIDIA Tegra series SOCs
	  providing /dev/ttyTHS0, 1, 2, 3 and 4 (note, some machines may not
	  provide all of these ports, depending on how the serial port
	  are enabled). This driver uses the APB DMA to achieve higher baudrate
	  and better performance.

config SERIAL_TEGRA_TCU
	tristate "NVIDIA Tegra Combined UART"
	depends on MAILBOX
	depends on (ARCH_TEGRA && TEGRA_HSP_MBOX) || COMPILE_TEST
	select SERIAL_CORE
	help
	  Support for the mailbox-based TCU (Tegra Combined UART) serial port.
	  TCU is a virtual serial port that allows multiplexing multiple data
	  streams into a single hardware serial port.

config SERIAL_TEGRA_TCU_CONSOLE
	bool "Support for console on a Tegra TCU serial port"
	depends on SERIAL_TEGRA_TCU=y
	select SERIAL_CORE_CONSOLE
	default y
	help
	  If you say Y here, it will be possible to use a the Tegra TCU as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  If unsure, say Y.

config SERIAL_MAX3100
	tristate "MAX3100/3110/3111/3222 support"
	depends on SPI
	select SERIAL_CORE
	help
	  This selects support for an advanced UART from Maxim.
	  Supported ICs are MAX3100, MAX3110, MAX3111, MAX3222.

	  Say Y here if you want to support these ICs.

config SERIAL_MAX310X
	tristate "MAX310X support"
	depends on SPI_MASTER
	select SERIAL_CORE
	select REGMAP_SPI if SPI_MASTER
	select REGMAP_I2C if I2C
	help
	  This selects support for an advanced UART from Maxim (Dallas).
	  Supported ICs are MAX3107, MAX3108, MAX3109, MAX14830.
	  Each IC contains 128 words each of receive and transmit FIFO
	  that can be controlled through I2C or high-speed SPI.

	  Say Y here if you want to support this ICs.

config SERIAL_DZ
	bool "DECstation DZ serial driver"
	depends on MACH_DECSTATION && 32BIT
	select SERIAL_CORE
	default y
	help
	  DZ11-family serial controllers for DECstations and VAXstations,
	  including the DC7085, M7814, and M7819.

config SERIAL_DZ_CONSOLE
	bool "Support console on DECstation DZ serial driver"
	depends on SERIAL_DZ=y
	select SERIAL_CORE_CONSOLE
	default y
	help
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  Note that the firmware uses ttyS3 as the serial console on
	  DECstations that use this driver.

	  If unsure, say Y.

config SERIAL_ZS
	tristate "DECstation Z85C30 serial support"
	depends on MACH_DECSTATION
	select SERIAL_CORE
	default y
	help
	  Support for the Zilog 85C350 serial communications controller used
	  for serial ports in newer DECstation systems.  These include the
	  DECsystem 5900 and all models of the DECstation and DECsystem 5000
	  systems except from model 200.

	  If unsure, say Y.  To compile this driver as a module, choose M here:
	  the module will be called zs.

config SERIAL_ZS_CONSOLE
	bool "Support for console on a DECstation Z85C30 serial port"
	depends on SERIAL_ZS=y
	select SERIAL_CORE_CONSOLE
	default y
	help
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  Note that the firmware uses ttyS1 as the serial console on the
	  Maxine and ttyS3 on the others using this driver.

	  If unsure, say Y.

config SERIAL_21285
	tristate "DC21285 serial port support"
	depends on FOOTBRIDGE
	select SERIAL_CORE
	help
	  If you have a machine based on a 21285 (Footbridge) StrongARM(R)/
	  PCI bridge you can enable its onboard serial port by enabling this
	  option.

config SERIAL_21285_CONSOLE
	bool "Console on DC21285 serial port"
	depends on SERIAL_21285=y
	select SERIAL_CORE_CONSOLE
	help
	  If you have enabled the serial port on the 21285 footbridge you can
	  make it the console by answering Y to this option.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyFB". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_PXA
	bool "PXA serial port support (DEPRECATED)"
	depends on ARCH_PXA || ARCH_MMP
	select SERIAL_CORE
	select SERIAL_8250_PXA if SERIAL_8250=y
	select SERIAL_PXA_NON8250 if !SERIAL_8250=y
	help
	  If you have a machine based on an Intel XScale PXA2xx CPU you
	  can enable its onboard serial ports by enabling this option.

	  Unless you have a specific need, you should use SERIAL_8250_PXA
	  instead of this.

config SERIAL_PXA_NON8250
	bool
	depends on !SERIAL_8250 || COMPILE_TEST

config SERIAL_PXA_CONSOLE
	bool "Console on PXA serial port (DEPRECATED)"
	depends on SERIAL_PXA
	select SERIAL_CORE_CONSOLE
	select SERIAL_8250_CONSOLE if SERIAL_8250=y
	help
	  If you have enabled the serial port on the Intel XScale PXA
	  CPU you can make it the console by answering Y to this option.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySA0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

	  Unless you have a specific need, you should use SERIAL_8250_PXA
	  and SERIAL_8250_CONSOLE instead of this.

config SERIAL_SA1100
	bool "SA1100 serial port support"
	depends on ARCH_SA1100
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  If you have a machine based on a SA1100/SA1110 StrongARM(R) CPU you
	  can enable its onboard serial port by enabling this option.
	  Please read <file:Documentation/arch/arm/sa1100/serial_uart.rst> for
	  further info.

config SERIAL_SA1100_CONSOLE
	bool "Console on SA1100 serial port"
	depends on SERIAL_SA1100
	select SERIAL_CORE_CONSOLE
	help
	  If you have enabled the serial port on the SA1100/SA1110 StrongARM
	  CPU you can make it the console by answering Y to this option.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySA0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_IMX
	tristate "IMX serial port support"
	depends on ARCH_MXC || COMPILE_TEST
	select SERIAL_CORE
	select RATIONAL
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  If you have a machine based on a Motorola IMX CPU you
	  can enable its onboard serial port by enabling this option.

config SERIAL_IMX_CONSOLE
	tristate "Console on IMX serial port"
	depends on SERIAL_IMX
	select SERIAL_CORE_CONSOLE
	help
	  If you have enabled the serial port on the Freescale IMX
	  CPU you can make it the console by answering Y/M to this option.

	  Even if you say Y/M here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttymxc0". (Try "man bootparam" or see the documentation of
	  your bootloader about how to pass options to the kernel at boot time.)

config SERIAL_IMX_EARLYCON
	bool "Earlycon on IMX serial port"
	depends on ARCH_MXC || COMPILE_TEST
	depends on OF
	select SERIAL_CORE
	select SERIAL_EARLYCON
	select SERIAL_CORE_CONSOLE
	default y if SERIAL_IMX_CONSOLE
	help
	  If you have enabled the earlycon on the Freescale IMX
	  CPU you can make it the earlycon by answering Y to this option.

config SERIAL_UARTLITE
	tristate "Xilinx uartlite serial port support"
	depends on HAS_IOMEM
	select SERIAL_CORE
	help
	  Say Y here if you want to use the Xilinx uartlite serial controller.

	  To compile this driver as a module, choose M here: the
	  module will be called uartlite.

config SERIAL_UARTLITE_CONSOLE
	bool "Support for console on Xilinx uartlite serial port"
	depends on SERIAL_UARTLITE=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say Y here if you wish to use a Xilinx uartlite as the system
	  console (the system console is the device which receives all kernel
	  messages and warnings and which allows logins in single user mode).

config SERIAL_UARTLITE_NR_UARTS
	int "Maximum number of uartlite serial ports"
	depends on SERIAL_UARTLITE
	range 1 256
	default 1
	help
	  Set this to the number of uartlites in your system, or the number
	  you think you might implement.
	  If maximum number of uartlite serial ports is more than 4, then the
	  driver uses dynamic allocation instead of static allocation for major
	  number.

config SERIAL_SUNCORE
	bool
	depends on SPARC
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	default y

config SERIAL_SUNZILOG
	tristate "Sun Zilog8530 serial support"
	depends on SPARC
	help
	  This driver supports the Zilog8530 serial ports found on many Sparc
	  systems.  Say Y or M if you want to be able to these serial ports.

config SERIAL_SUNZILOG_CONSOLE
	bool "Console on Sun Zilog8530 serial port"
	depends on SERIAL_SUNZILOG=y
	help
	  If you would like to be able to use the Zilog8530 serial port
	  on your Sparc system as the console, you can do so by answering
	  Y to this option.

config SERIAL_SUNSU
	tristate "Sun SU serial support"
	depends on SPARC && PCI
	help
	  This driver supports the 8250 serial ports that run the keyboard and
	  mouse on (PCI) UltraSPARC systems.  Say Y or M if you want to be able
	  to these serial ports.

config SERIAL_SUNSU_CONSOLE
	bool "Console on Sun SU serial port"
	depends on SERIAL_SUNSU=y
	help
	  If you would like to be able to use the SU serial port
	  on your Sparc system as the console, you can do so by answering
	  Y to this option.

config SERIAL_MUX
	tristate "Serial MUX support"
	depends on GSC
	select SERIAL_CORE
	default y
	help
	  Saying Y here will enable the hardware MUX serial driver for
	  the Nova, K class systems and D class with a 'remote control card'.
	  The hardware MUX is not 8250/16550 compatible therefore the
	  /dev/ttyB0 device is shared between the Serial MUX and the PDC
	  software console. The following steps need to be completed to use
	  the Serial MUX:

	    1. create the device entry (mknod /dev/ttyB0 c 11 0)
	    2. Edit the /etc/inittab to start a getty listening on /dev/ttyB0
	    3. Add device ttyB0 to /etc/securetty (if you want to log on as
		 root on this console.)
	    4. Change the kernel command console parameter to: console=ttyB0

config SERIAL_MUX_CONSOLE
	bool "Support for console on serial MUX"
	depends on SERIAL_MUX=y
	select SERIAL_CORE_CONSOLE
	default y

config SERIAL_SUNSAB
	tristate "Sun Siemens SAB82532 serial support"
	depends on SPARC && PCI
	help
	  This driver supports the Siemens SAB82532 DUSCC serial ports on newer
	  (PCI) UltraSPARC systems.  Say Y or M if you want to be able to these
	  serial ports.

config SERIAL_SUNSAB_CONSOLE
	bool "Console on Sun Siemens SAB82532 serial port"
	depends on SERIAL_SUNSAB=y
	help
	  If you would like to be able to use the SAB82532 serial port
	  on your Sparc system as the console, you can do so by answering
	  Y to this option.

config SERIAL_SUNHV
	bool "Sun4v Hypervisor Console support"
	depends on SPARC64
	help
	  This driver supports the console device found on SUN4V Sparc
	  systems.  Say Y if you want to be able to use this device.

config SERIAL_IP22_ZILOG
	tristate "SGI Zilog8530 serial support"
	depends on SGI_HAS_ZILOG
	select SERIAL_CORE
	help
	  This driver supports the Zilog8530 serial ports found on SGI
	  systems.  Say Y or M if you want to be able to these serial ports.

config SERIAL_IP22_ZILOG_CONSOLE
	bool "Console on SGI Zilog8530 serial port"
	depends on SERIAL_IP22_ZILOG=y
	select SERIAL_CORE_CONSOLE

config SERIAL_SH_SCI
	tristate "SuperH SCI(F) serial port support"
	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB

config SERIAL_SH_SCI_NR_UARTS
	int "Maximum number of SCI(F) serial ports" if EXPERT
	range 1 64 if 64BIT
	range 1 32 if !64BIT
	depends on SERIAL_SH_SCI
	default "10" if SUPERH
	default "18" if ARCH_RENESAS
	default "2"

config SERIAL_SH_SCI_CONSOLE
	bool "Support for console on SuperH SCI(F)" if EXPERT
	depends on SERIAL_SH_SCI=y
	select SERIAL_CORE_CONSOLE
	default y

config SERIAL_SH_SCI_EARLYCON
	bool "Support for early console on SuperH SCI(F)" if EXPERT
	depends on SERIAL_SH_SCI=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	default ARCH_RENESAS

config SERIAL_SH_SCI_DMA
	bool "DMA support" if EXPERT
	depends on SERIAL_SH_SCI && DMA_ENGINE
	default ARCH_RENESAS

config SERIAL_HS_LPC32XX
	tristate "LPC32XX high speed serial port support"
	depends on ARCH_LPC32XX || COMPILE_TEST
	depends on OF
	select SERIAL_CORE
	help
	  Support for the LPC32XX high speed serial ports (up to 900kbps).
	  Those are UARTs completely different from the Standard UARTs on the
	  LPC32XX SoC.
	  Choose M or Y here to build this driver.

config SERIAL_HS_LPC32XX_CONSOLE
	bool "Enable LPC32XX high speed UART serial console"
	depends on SERIAL_HS_LPC32XX=y
	select SERIAL_CORE_CONSOLE
	help
	  If you would like to be able to use one of the high speed serial
	  ports on the LPC32XX as the console, you can do so by answering
	  Y to this option.

config SERIAL_CORE
	tristate

config SERIAL_CORE_CONSOLE
	bool

config CONSOLE_POLL
	bool

config SERIAL_MCF
	bool "Coldfire serial support"
	depends on COLDFIRE
	select SERIAL_CORE
	help
	  This serial driver supports the Freescale Coldfire serial ports.

config SERIAL_MCF_BAUDRATE
	int "Default baudrate for Coldfire serial ports"
	depends on SERIAL_MCF
	default 19200
	help
	  This setting lets you define what the default baudrate is for the
	  ColdFire serial ports. The usual default varies from board to board,
	  and this setting is a way of catering for that.

config SERIAL_MCF_CONSOLE
	bool "Coldfire serial console support"
	depends on SERIAL_MCF
	select SERIAL_CORE_CONSOLE
	help
	  Enable a ColdFire internal serial port to be the system console.

config SERIAL_PMACZILOG
	tristate "Mac or PowerMac z85c30 ESCC support"
	depends on (M68K && MAC) || PPC_PMAC
	select SERIAL_CORE
	help
	  This driver supports the Zilog z85C30 serial ports found on
	  (Power)Mac machines.
	  Say Y or M if you want to be able to these serial ports.

config SERIAL_PMACZILOG_TTYS
	bool "Use ttySn device nodes for Zilog z85c30"
	depends on SERIAL_PMACZILOG
	help
	  The pmac_zilog driver for the z85C30 chip on many powermacs
	  historically used the device numbers for /dev/ttySn.  The
	  8250 serial port driver also uses these numbers, which means
	  the two drivers being unable to coexist; you could not use
	  both z85C30 and 8250 type ports at the same time.

	  If this option is not selected, the pmac_zilog driver will
	  use the device numbers allocated for /dev/ttyPZn.  This allows
	  the pmac_zilog and 8250 drivers to co-exist, but may cause
	  existing userspace setups to break.  Programs that need to
	  access the built-in serial ports on powermacs will need to
	  be reconfigured to use /dev/ttyPZn instead of /dev/ttySn.

	  If you enable this option, any z85c30 ports in the system will
	  be registered as ttyS0 onwards as in the past, and you will be
	  unable to use the 8250 module for PCMCIA or other 16C550-style
	  UARTs.

	  Say N unless you need the z85c30 ports on your (Power)Mac
	  to appear as /dev/ttySn.

config SERIAL_PMACZILOG_CONSOLE
	bool "Console on Mac or PowerMac z85c30 serial port"
	depends on SERIAL_PMACZILOG=y
	select SERIAL_CORE_CONSOLE
	help
	  If you would like to be able to use the z85c30 serial port
	  on your (Power)Mac as the console, you can do so by answering
	  Y to this option.

config SERIAL_CPM
	tristate "CPM SCC/SMC serial port support"
	depends on CPM2 || CPM1
	select SERIAL_CORE
	help
	  This driver supports the SCC and SMC serial ports on Motorola 
	  embedded PowerPC that contain a CPM1 (8xx) or CPM2 (8xxx)

config SERIAL_CPM_CONSOLE
	bool "Support for console on CPM SCC/SMC serial port"
	depends on SERIAL_CPM=y
	select SERIAL_CORE_CONSOLE
	help
	  Say Y here if you wish to use a SCC or SMC CPM UART as the system
	  console (the system console is the device which receives all kernel
	  messages and warnings and which allows logins in single user mode).

	  Even if you say Y here, the currently visible framebuffer console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyCPM0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_PIC32
	tristate "Microchip PIC32 serial support"
	depends on MACH_PIC32 || (MIPS && COMPILE_TEST)
	select SERIAL_CORE
	help
	  If you have a PIC32, this driver supports the serial ports.

	  Say Y or M to use PIC32 serial ports, otherwise say N. Note that
	  to use a serial port as a console, this must be included in kernel and
	  not as a module.

config SERIAL_PIC32_CONSOLE
	bool "PIC32 serial console support"
	depends on SERIAL_PIC32=y
	select SERIAL_CORE_CONSOLE
	help
	  If you have a PIC32, this driver supports the putting a console on one
	  of the serial ports.

	  Say Y to use the PIC32 console, otherwise say N.

config SERIAL_MPC52xx
	tristate "Freescale MPC52xx/MPC512x family PSC serial support"
	depends on PPC_MPC52xx || PPC_MPC512x
	select SERIAL_CORE
	help
	  This driver supports MPC52xx and MPC512x PSC serial ports. If you would
	  like to use them, you must answer Y or M to this option. Note that
	  for use as console, it must be included in kernel and not as a
	  module.

config SERIAL_MPC52xx_CONSOLE
	bool "Console on a Freescale MPC52xx/MPC512x family PSC serial port"
	depends on SERIAL_MPC52xx=y
	select SERIAL_CORE_CONSOLE
	help
	  Select this options if you'd like to use one of the PSC serial port
	  of the Freescale MPC52xx family as a console.

config SERIAL_MPC52xx_CONSOLE_BAUD
	int "Freescale MPC52xx/MPC512x family PSC serial port baud"
	depends on SERIAL_MPC52xx_CONSOLE=y
	default "9600"
	help
	  Select the MPC52xx console baud rate.
	  This value is only used if the bootloader doesn't pass in the
	  console baudrate

config SERIAL_ICOM
	tristate "IBM Multiport Serial Adapter"
	depends on PCI
	depends on PPC_PSERIES || COMPILE_TEST
	select SERIAL_CORE
	select FW_LOADER
	help
	  This driver is for a family of multiport serial adapters
	  including 2 port RVX, 2 port internal modem, 4 port internal
	  modem and a split 1 port RVX and 1 port internal modem.

	  This driver can also be built as a module.  If so, the module
	  will be called icom.

config SERIAL_TXX9
	bool "TMPTX39XX/49XX SIO support"
	depends on HAS_TXX9_SERIAL
	select SERIAL_CORE
	default y

config HAS_TXX9_SERIAL
	bool

config SERIAL_TXX9_NR_UARTS
	int "Maximum number of TMPTX39XX/49XX SIO ports"
	depends on SERIAL_TXX9
	default "6"

config SERIAL_TXX9_CONSOLE
	bool "TMPTX39XX/49XX SIO Console support"
	depends on SERIAL_TXX9=y
	select SERIAL_CORE_CONSOLE

config SERIAL_TXX9_STDSERIAL
	bool "TX39XX/49XX SIO act as standard serial"
	depends on !SERIAL_8250 && SERIAL_TXX9

config SERIAL_JSM
	tristate "Digi International NEO and Classic PCI Support"
	depends on PCI
	select SERIAL_CORE
	help
	  This is a driver for Digi International's Neo and Classic series
	  of cards which provide multiple serial ports. You would need
	  something like this to connect more than two modems to your Linux
	  box, for instance in order to become a dial-in server. This driver
	  supports PCI boards only.

	  If you have a card like this, say Y here, otherwise say N.

	  To compile this driver as a module, choose M here: the
	  module will be called jsm.

config SERIAL_MSM
	tristate "MSM on-chip serial port support"
	depends on ARCH_QCOM || COMPILE_TEST
	select SERIAL_CORE

config SERIAL_MSM_CONSOLE
	bool "MSM serial console support"
	depends on SERIAL_MSM=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON

config SERIAL_QCOM_GENI
	tristate "QCOM on-chip GENI based serial port support"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on QCOM_GENI_SE
	select SERIAL_CORE

config SERIAL_QCOM_GENI_CONSOLE
	bool "QCOM GENI Serial Console support"
	depends on SERIAL_QCOM_GENI
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Serial console driver for Qualcomm Technologies Inc's GENI based
	  QUP hardware.

config SERIAL_VT8500
	bool "VIA VT8500 on-chip serial port support"
	depends on ARCH_VT8500 || COMPILE_TEST
	select SERIAL_CORE

config SERIAL_VT8500_CONSOLE
	bool "VIA VT8500 serial console support"
	depends on SERIAL_VT8500=y
	select SERIAL_CORE_CONSOLE

config SERIAL_OMAP
	tristate "OMAP serial port support"
	depends on (ARCH_OMAP2PLUS && !SERIAL_8250_OMAP) || COMPILE_TEST
	select SERIAL_CORE
	help
	  If you have a machine based on an Texas Instruments OMAP CPU you
	  can enable its onboard serial ports by enabling this option.

	  By enabling this option you take advantage of dma feature available
	  with the omap-serial driver. DMA support can be enabled from platform
	  data.

config SERIAL_OMAP_CONSOLE
	bool "Console on OMAP serial port"
	depends on SERIAL_OMAP=y
	select SERIAL_CORE_CONSOLE
	help
	  Select this option if you would like to use omap serial port as
	  console.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyOx". (Try "man bootparam" or see the documentation of
	  your boot loader about how to pass options to the kernel at
	  boot time.)

config SERIAL_SIFIVE
	tristate "SiFive UART support"
	depends on OF
	default ARCH_SIFIVE || ARCH_CANAAN
	select SERIAL_CORE
	help
	  Select this option if you are building a kernel for a device that
	  contains a SiFive UART IP block.  This type of UART is present on
	  SiFive FU540 SoCs, among others.

config SERIAL_SIFIVE_CONSOLE
	bool "Console on SiFive UART"
	depends on SERIAL_SIFIVE=y
	default ARCH_SIFIVE || ARCH_CANAAN
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Select this option if you would like to use a SiFive UART as the
	  system console.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySIFx". (Try "man bootparam" or see the documentation of
	  your boot loader about how to pass options to the kernel at
	  boot time.)

config SERIAL_LANTIQ
	tristate "Lantiq serial driver"
	depends on (LANTIQ || X86) || COMPILE_TEST
	select SERIAL_CORE
	help
	  Support for UART on Lantiq and Intel SoCs.
	  To compile this driver as a module, select M here. The
	  module will be called lantiq.

config SERIAL_LANTIQ_CONSOLE
	bool "Console on Lantiq UART"
	depends on SERIAL_LANTIQ=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Select this option if you would like to use a Lantiq UART as the
	  system console.

config SERIAL_QE
	tristate "Freescale QUICC Engine serial port support"
	depends on QUICC_ENGINE
	select SERIAL_CORE
	select FW_LOADER
	help
	  This driver supports the QE serial ports on Freescale embedded
	  PowerPC that contain a QUICC Engine.

config SERIAL_SCCNXP
	tristate "SCCNXP serial port support"
	select SERIAL_CORE
	help
	  This selects support for an advanced UART from NXP (Philips).
	  Supported ICs are SCC2681, SCC2691, SCC2692, SC28L91, SC28L92,
	  SC28L202, SCC68681 and SCC68692.

config SERIAL_SCCNXP_CONSOLE
	bool "Console on SCCNXP serial port"
	depends on SERIAL_SCCNXP=y
	select SERIAL_CORE_CONSOLE
	help
	  Support for console on SCCNXP serial ports.

config SERIAL_SC16IS7XX
	tristate "NXP SC16IS7xx UART support"
	depends on SPI_MASTER || I2C
	select SERIAL_CORE
	select SERIAL_SC16IS7XX_SPI if SPI_MASTER
	select SERIAL_SC16IS7XX_I2C if I2C
	help
	  Core driver for NXP SC16IS7xx UARTs.
	  Supported ICs are:

	    SC16IS740
	    SC16IS741
	    SC16IS750
	    SC16IS752
	    SC16IS760
	    SC16IS762

	  The driver supports both I2C and SPI interfaces.

config SERIAL_SC16IS7XX_I2C
	tristate
	select REGMAP_I2C

config SERIAL_SC16IS7XX_SPI
	tristate
	select REGMAP_SPI

config SERIAL_TIMBERDALE
	tristate "Support for timberdale UART"
	select SERIAL_CORE
	depends on X86_32 || COMPILE_TEST
	help
	Add support for UART controller on timberdale.

config SERIAL_BCM63XX
	tristate "Broadcom BCM63xx/BCM33xx UART support"
	select SERIAL_CORE
	depends on ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
	default ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC
	help
	  This enables the driver for the onchip UART core found on
	  the following chipsets:

	    BCM33xx (cable modem)
	    BCM63xx/BCM63xxx (DSL)
	    BCM68xx (PON)
	    BCM7xxx (STB) - DOCSIS console

config SERIAL_BCM63XX_CONSOLE
	bool "Console on BCM63xx serial port"
	depends on SERIAL_BCM63XX=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  If you have enabled the serial port on the BCM63xx CPU
	  you can make it the console by answering Y to this option.

config SERIAL_GRLIB_GAISLER_APBUART
	tristate "GRLIB APBUART serial support"
	depends on OF && SPARC
	select SERIAL_CORE
	help
	Add support for the GRLIB APBUART serial port.

config SERIAL_GRLIB_GAISLER_APBUART_CONSOLE
	bool "Console on GRLIB APBUART serial port"
	depends on SERIAL_GRLIB_GAISLER_APBUART=y
	select SERIAL_CORE_CONSOLE
	help
	Support for running a console on the GRLIB APBUART

config SERIAL_ALTERA_JTAGUART
	tristate "Altera JTAG UART support"
	select SERIAL_CORE
	help
	  This driver supports the Altera JTAG UART port.

config SERIAL_ALTERA_JTAGUART_CONSOLE
	bool "Altera JTAG UART console support"
	depends on SERIAL_ALTERA_JTAGUART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable a Altera JTAG UART port to be the system console.

config SERIAL_ALTERA_JTAGUART_CONSOLE_BYPASS
	bool "Bypass output when no connection"
	depends on SERIAL_ALTERA_JTAGUART_CONSOLE
	select SERIAL_CORE_CONSOLE
	help
	  Bypass console output and keep going even if there is no
	  JTAG terminal connection with the host.

config SERIAL_ALTERA_UART
	tristate "Altera UART support"
	select SERIAL_CORE
	help
	  This driver supports the Altera softcore UART port.

config SERIAL_ALTERA_UART_MAXPORTS
	int "Maximum number of Altera UART ports"
	depends on SERIAL_ALTERA_UART
	default 4
	help
	  This setting lets you define the maximum number of the Altera
	  UART ports. The usual default varies from board to board, and
	  this setting is a way of catering for that.

config SERIAL_ALTERA_UART_BAUDRATE
	int "Default baudrate for Altera UART ports"
	depends on SERIAL_ALTERA_UART
	default 115200
	help
	  This setting lets you define what the default baudrate is for the
	  Altera UART ports. The usual default varies from board to board,
	  and this setting is a way of catering for that.

config SERIAL_ALTERA_UART_CONSOLE
	bool "Altera UART console support"
	depends on SERIAL_ALTERA_UART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable a Altera UART port to be the system console.

config SERIAL_PCH_UART
	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) UART"
	depends on PCI && (X86_32 || MIPS ||  COMPILE_TEST)
	select SERIAL_CORE
	help
	  This driver is for PCH(Platform controller Hub) UART of Intel EG20T
	  which is an IOH(Input/Output Hub) for x86 embedded processor.
	  Enabling PCH_DMA, this PCH UART works as DMA mode.

	  This driver also can be used for LAPIS Semiconductor IOH(Input/
	  Output Hub), ML7213, ML7223 and ML7831.
	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
	  for MP(Media Phone) use and ML7831 IOH is for general purpose use.
	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.

config SERIAL_PCH_UART_CONSOLE
	bool "Support for console on Intel EG20T PCH UART/OKI SEMICONDUCTOR ML7213 IOH"
	depends on SERIAL_PCH_UART=y
	select SERIAL_CORE_CONSOLE
	help
	  Say Y here if you wish to use the PCH UART as the system console
	  (the system  console is the device which receives all kernel messages and
	  warnings and which allows logins in single user mode).

config SERIAL_MXS_AUART
	tristate "MXS AUART support"
	depends on ARCH_MXS || MACH_ASM9260 || COMPILE_TEST
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  This driver supports the MXS and Alphascale ASM9260 Application
	  UART (AUART) port.

config SERIAL_MXS_AUART_CONSOLE
	bool "MXS AUART console support"
	depends on SERIAL_MXS_AUART=y
	select SERIAL_CORE_CONSOLE
	help
	  Enable a MXS AUART port to be the system console.

config SERIAL_XILINX_PS_UART
	tristate "Cadence (Xilinx Zynq) UART support"
	depends on OF
	select SERIAL_CORE
	help
	  This driver supports the Cadence UART. It is found e.g. in Xilinx
	  Zynq.

config SERIAL_XILINX_PS_UART_CONSOLE
	bool "Cadence UART console support"
	depends on SERIAL_XILINX_PS_UART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable a Cadence UART port to be the system console.

config SERIAL_AR933X
	tristate "AR933X serial port support"
	depends on (HAVE_CLK && ATH79) || (MIPS && COMPILE_TEST)
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  If you have an Atheros AR933X SOC based board and want to use the
	  built-in UART of the SoC, say Y to this option.

	  To compile this driver as a module, choose M here: the
	  module will be called ar933x_uart.

config SERIAL_AR933X_CONSOLE
	bool "Console on AR933X serial port"
	depends on SERIAL_AR933X=y
	select SERIAL_CORE_CONSOLE
	help
	  Enable a built-in UART port of the AR933X to be the system console.

config SERIAL_AR933X_NR_UARTS
	int "Maximum number of AR933X serial ports"
	depends on SERIAL_AR933X
	default "2"
	help
	  Set this to the number of serial ports you want the driver
	  to support.

config SERIAL_MPS2_UART_CONSOLE
	bool "MPS2 UART console support"
	depends on SERIAL_MPS2_UART
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON

config SERIAL_MPS2_UART
	bool "MPS2 UART port"
	depends on ARCH_MPS2 || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver support the UART ports on ARM MPS2.

config SERIAL_ARC
	tristate "ARC UART driver support"
	select SERIAL_CORE
	help
	  Driver for on-chip UART for ARC(Synopsys) for the legacy
	  FPGA Boards (ML50x/ARCAngel4)

config SERIAL_ARC_CONSOLE
	bool "Console on ARC UART"
	depends on SERIAL_ARC=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable system Console on ARC UART

config SERIAL_ARC_NR_PORTS
	int "Number of ARC UART ports"
	depends on SERIAL_ARC
	range 1 3
	default "1"
	help
	  Set this to the number of serial ports you want the driver
	  to support.

config SERIAL_RP2
	tristate "Comtrol RocketPort EXPRESS/INFINITY support"
	depends on PCI
	select SERIAL_CORE
	help
	  This driver supports the Comtrol RocketPort EXPRESS and
	  RocketPort INFINITY families of PCI/PCIe multiport serial adapters.
	  These adapters use a "RocketPort 2" ASIC that is not compatible
	  with the original RocketPort driver (CONFIG_ROCKETPORT).

	  To compile this driver as a module, choose M here: the
	  module will be called rp2.

	  If you want to compile this driver into the kernel, say Y here.  If
	  you don't have a suitable RocketPort card installed, say N.

config SERIAL_RP2_NR_UARTS
	int "Maximum number of RocketPort EXPRESS/INFINITY ports"
	depends on SERIAL_RP2
	default "32"
	help
	  If multiple cards are present, the default limit of 32 ports may
	  need to be increased.

config SERIAL_FSL_LPUART
	tristate "Freescale lpuart serial port support"
	depends on HAS_DMA
	select SERIAL_CORE
	help
	  Support for the on-chip lpuart on some Freescale SOCs.

config SERIAL_FSL_LPUART_CONSOLE
	bool "Console on Freescale lpuart serial port"
	depends on SERIAL_FSL_LPUART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  If you have enabled the lpuart serial port on the Freescale SoCs,
	  you can make it the console by answering Y to this option.

config SERIAL_FSL_LINFLEXUART
	tristate "Freescale LINFlexD UART serial port support"
	depends on PRINTK
	select SERIAL_CORE
	help
	  Support for the on-chip LINFlexD UART on some Freescale SOCs.

config SERIAL_FSL_LINFLEXUART_CONSOLE
	bool "Console on Freescale LINFlexD UART serial port"
	depends on SERIAL_FSL_LINFLEXUART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  If you have enabled the LINFlexD UART serial port on the Freescale
	  SoCs, you can make it the console by answering Y to this option.

config SERIAL_CONEXANT_DIGICOLOR
	tristate "Conexant Digicolor CX92xxx USART serial port support"
	depends on OF
	select SERIAL_CORE
	help
	  Support for the on-chip USART on Conexant Digicolor SoCs.

config SERIAL_CONEXANT_DIGICOLOR_CONSOLE
	bool "Console on Conexant Digicolor serial port"
	depends on SERIAL_CONEXANT_DIGICOLOR=y
	select SERIAL_CORE_CONSOLE
	help
	  If you have enabled the USART serial port on Conexant Digicolor
	  SoCs, you can make it the console by answering Y to this option.

config SERIAL_ST_ASC
	tristate "ST ASC serial port support"
	select SERIAL_CORE
	depends on ARM || COMPILE_TEST
	help
	  This driver is for the on-chip Asynchronous Serial Controller on
	  STMicroelectronics STi SoCs.
	  ASC is embedded in ST COMMS IP block. It supports Rx & Tx functionality.
	  It support all industry standard baud rates.

	  If unsure, say N.

config SERIAL_ST_ASC_CONSOLE
	bool "Support for console on ST ASC"
	depends on SERIAL_ST_ASC=y
	select SERIAL_CORE_CONSOLE

config SERIAL_MEN_Z135
	tristate "MEN 16z135 Support"
	select SERIAL_CORE
	depends on MCB
	help
	  Say yes here to enable support for the MEN 16z135 High Speed UART IP-Core
	  on a MCB carrier.

	  This driver can also be build as a module. If so, the module will be called
	  men_z135_uart.ko

config SERIAL_SPRD
	tristate "Support for Spreadtrum serial"
	select SERIAL_CORE
	depends on COMMON_CLK
	help
	  This enables the driver for the Spreadtrum's serial.

config SERIAL_SPRD_CONSOLE
	bool "Spreadtrum UART console support"
	depends on SERIAL_SPRD=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Support for early debug console using Spreadtrum's serial. This enables
	  the console before standard serial driver is probed. This is enabled
	  with "earlycon" on the kernel command line. The console is
	  enabled when early_param is processed.

config SERIAL_STM32
	tristate "STMicroelectronics STM32 serial port support"
	select SERIAL_CORE
	depends on ARCH_STM32 || COMPILE_TEST
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  This driver is for the on-chip Serial Controller on
	  STMicroelectronics STM32 MCUs.
	  USART supports Rx & Tx functionality.
	  It support all industry standard baud rates.

	  If unsure, say N.

config SERIAL_STM32_CONSOLE
	bool "Support for console on STM32"
	depends on SERIAL_STM32=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON

config SERIAL_MVEBU_UART
	bool "Marvell EBU serial port support"
	depends on ARCH_MVEBU || COMPILE_TEST
	depends on COMMON_CLK
	select SERIAL_CORE
	help
	  This driver is for Marvell EBU SoC's UART. If you have a machine
	  based on the Armada-3700 SoC and wish to use the on-board serial
	  port,
	  say 'Y' here.
	  Otherwise, say 'N'.

config SERIAL_MVEBU_CONSOLE
	bool "Console on Marvell EBU serial port"
	depends on SERIAL_MVEBU_UART
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	default y
	help
	  Say 'Y' here if you wish to use Armada-3700 UART as the system console.
	  (the system console is the device which receives all kernel messages
	  and warnings and which allows logins in single user mode)
	  Otherwise, say 'N'.

config SERIAL_OWL
	tristate "Actions Semi Owl serial port support"
	depends on ARCH_ACTIONS || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver is for Actions Semiconductor S500/S900 SoC's UART.
	  Say 'Y' here if you wish to use the on-board serial port.
	  Otherwise, say 'N'.

config SERIAL_OWL_CONSOLE
	bool "Console on Actions Semi Owl serial port"
	depends on SERIAL_OWL=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	default y
	help
	  Say 'Y' here if you wish to use Actions Semiconductor S500/S900 UART
	  as the system console.

config SERIAL_RDA
	bool "RDA Micro serial port support"
	depends on ARCH_RDA || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver is for RDA8810PL SoC's UART.
	  Say 'Y' here if you wish to use the on-board serial port.
	  Otherwise, say 'N'.

config SERIAL_RDA_CONSOLE
	bool "Console on RDA Micro serial port"
	depends on SERIAL_RDA=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	default y
	help
	  Say 'Y' here if you wish to use the RDA8810PL UART as the system
	  console. Only earlycon is implemented currently.

config SERIAL_MILBEAUT_USIO
	tristate "Milbeaut USIO/UART serial port support"
	depends on ARCH_MILBEAUT || (COMPILE_TEST && OF)
	default ARCH_MILBEAUT
	select SERIAL_CORE
	help
	  This selects the USIO/UART IP found in Socionext Milbeaut SoCs.

config SERIAL_MILBEAUT_USIO_PORTS
	int "Maximum number of CSIO/UART ports (1-8)"
	range 1 8
	depends on SERIAL_MILBEAUT_USIO
	default "4"

config SERIAL_MILBEAUT_USIO_CONSOLE
	bool "Support for console on MILBEAUT USIO/UART serial port"
	depends on SERIAL_MILBEAUT_USIO=y
	default y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say 'Y' here if you wish to use a USIO/UART of Socionext Milbeaut
	  SoCs as the system console (the system console is the device which
	  receives all kernel messages and warnings and which allows logins in
	  single user mode).

config SERIAL_LITEUART
	tristate "LiteUART serial port support"
	depends on HAS_IOMEM
	depends on OF
	depends on LITEX || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver is for the FPGA-based LiteUART serial controller from LiteX
	  SoC builder.

	  Say 'Y' or 'M' here if you wish to use the LiteUART serial controller.
	  Otherwise, say 'N'.

config SERIAL_LITEUART_MAX_PORTS
	int "Maximum number of LiteUART ports"
	depends on SERIAL_LITEUART
	default "1"
	help
	  Set this to the maximum number of serial ports you want the driver
	  to support.

config SERIAL_LITEUART_CONSOLE
	bool "LiteUART serial port console support"
	depends on SERIAL_LITEUART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say 'Y' or 'M' here if you wish to use the FPGA-based LiteUART serial
	  controller from LiteX SoC builder as the system console
	  (the system console is the device which receives all kernel messages
	  and warnings and which allows logins in single user mode).
	  Otherwise, say 'N'.

config SERIAL_SUNPLUS
	tristate "Sunplus UART support"
	depends on ARCH_SUNPLUS || COMPILE_TEST
	select SERIAL_CORE
	help
	  Select this option if you would like to use Sunplus serial port on
	  Sunplus SoC SP7021.
	  If you enable this option, Sunplus serial ports in the system will
	  be registered as ttySUPx.
	  This driver can also be built as a module. If so, the module will be
	  called sunplus-uart.

config SERIAL_SUNPLUS_CONSOLE
	bool "Console on Sunplus UART"
	depends on SERIAL_SUNPLUS
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Select this option if you would like to use a Sunplus UART as the
	  system console.
	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySUPx".

config SERIAL_NUVOTON_MA35D1
	tristate "Nuvoton MA35D1 family UART support"
	depends on ARCH_MA35 || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver supports Nuvoton MA35D1 family UART ports. If you would
	  like to use them, you must answer Y or M to this option. Note that
	  for use as console, it must be included in kernel and not as a
	  module. If you enable this option, Ma35D1 serial ports in the system
	  will be registered as ttyNVTx.

config SERIAL_NUVOTON_MA35D1_CONSOLE
	bool "Console on a Nuvotn MA35D1 family UART port"
	depends on SERIAL_NUVOTON_MA35D1=y
	select SERIAL_CORE_CONSOLE
	help
	  Select this options if you'd like to use the UART port0 of the
	  Nuvoton MA35D1 family as a console.
	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default,
	  but you can alter that using a kernel command line option such as
	  "console=ttyNVTx".

config SERIAL_ESP32
	tristate "Espressif ESP32 UART support"
	depends on XTENSA_PLATFORM_ESP32 || (COMPILE_TEST && OF)
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Driver for the UART controllers of the Espressif ESP32xx SoCs.
	  When earlycon option is enabled the following kernel command line
	  snippets may be used:
	    earlycon=esp32s3uart,mmio32,0x60000000,115200n8,40000000
	    earlycon=esp32uart,mmio32,0x3ff40000,115200n8

config SERIAL_ESP32_ACM
	tristate "Espressif ESP32 USB ACM gadget support"
	depends on XTENSA_PLATFORM_ESP32 || (COMPILE_TEST && OF)
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Driver for the CDC ACM gadget controller of the Espressif ESP32S3
	  SoCs that share separate USB controller with the JTAG adapter.
	  When earlycon option is enabled the following kernel command line
	  snippet may be used:
	    earlycon=esp32s3acm,mmio32,0x60038000

endmenu

config SERIAL_MCTRL_GPIO
	tristate