mirror of
https://github.com/torvalds/linux.git
synced 2024-12-16 08:02:17 +00:00
b1442c55ce
Allow more drivers to be compile tested more easily, for example, when doing subsystem-wide changes. Verified on X86_64 as well as arm, powerpc and m68k with minimal configs in order to catch missing implicit build dependencies. Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://lore.kernel.org/r/20210715083011.18887-1-johan@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
534 lines
19 KiB
Plaintext
534 lines
19 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# The 8250/16550 serial drivers. You shouldn't be in this list unless
|
|
# you somehow have an implicit or explicit dependency on SERIAL_8250.
|
|
#
|
|
|
|
config SERIAL_8250
|
|
tristate "8250/16550 and compatible serial support"
|
|
depends on !S390
|
|
select SERIAL_CORE
|
|
select SERIAL_MCTRL_GPIO if GPIOLIB
|
|
help
|
|
This selects whether you want to include the driver for the standard
|
|
serial ports. The standard answer is Y. People who might say N
|
|
here are those that are setting up dedicated Ethernet WWW/FTP
|
|
servers, or users that have one of the various bus mice instead of a
|
|
serial mouse and don't intend to use their machine's standard serial
|
|
port for anything.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called 8250.
|
|
[WARNING: Do not compile this driver as a module if you are using
|
|
non-standard serial ports, since the configuration information will
|
|
be lost when the driver is unloaded. This limitation may be lifted
|
|
in the future.]
|
|
|
|
BTW1: If you have a mouseman serial mouse which is not recognized by
|
|
the X window system, try running gpm first.
|
|
|
|
BTW2: If you intend to use a software modem (also called Winmodem)
|
|
under Linux, forget it. These modems are crippled and require
|
|
proprietary drivers which are only available under Windows.
|
|
|
|
Most people will say Y or M here, so that they can use serial mice,
|
|
modems and similar devices connecting to the standard serial ports.
|
|
|
|
config SERIAL_8250_DEPRECATED_OPTIONS
|
|
bool "Support 8250_core.* kernel options (DEPRECATED)"
|
|
depends on SERIAL_8250
|
|
default y
|
|
help
|
|
In 3.7 we renamed 8250 to 8250_core by mistake, so now we have to
|
|
accept kernel parameters in both forms like 8250_core.nr_uarts=4 and
|
|
8250.nr_uarts=4. We now renamed the module back to 8250, but if
|
|
anybody noticed in 3.7 and changed their userspace we still have to
|
|
keep the 8250_core.* options around until they revert the changes
|
|
they already did.
|
|
|
|
If 8250 is built as a module, this adds 8250_core alias instead.
|
|
|
|
If you did not notice yet and/or you have userspace from pre-3.7, it
|
|
is safe (and recommended) to say N here.
|
|
|
|
config SERIAL_8250_PNP
|
|
bool "8250/16550 PNP device support" if EXPERT
|
|
depends on SERIAL_8250 && PNP
|
|
default y
|
|
help
|
|
This builds standard PNP serial support. You may be able to
|
|
disable this feature if you only need legacy serial support.
|
|
|
|
config SERIAL_8250_16550A_VARIANTS
|
|
bool "Support for variants of the 16550A serial port"
|
|
depends on SERIAL_8250
|
|
default !X86
|
|
help
|
|
The 8250 driver can probe for many variants of the venerable 16550A
|
|
serial port. Doing so takes additional time at boot.
|
|
|
|
On modern systems, especially those using serial only for a simple
|
|
console, you can say N here.
|
|
|
|
config SERIAL_8250_FINTEK
|
|
bool "Support for Fintek F81216A LPC to 4 UART RS485 API"
|
|
depends on SERIAL_8250
|
|
help
|
|
Selecting this option will add support for the RS485 capabilities
|
|
of the Fintek F81216A LPC to 4 UART.
|
|
|
|
If this option is not selected the device will be configured as a
|
|
standard 16550A serial port.
|
|
|
|
If unsure, say N.
|
|
|
|
config SERIAL_8250_CONSOLE
|
|
bool "Console on 8250/16550 and compatible serial port"
|
|
depends on SERIAL_8250=y
|
|
select SERIAL_CORE_CONSOLE
|
|
select SERIAL_EARLYCON
|
|
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). This could be useful if some terminal or printer is connected
|
|
to that serial port.
|
|
|
|
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=ttyS1". (Try "man bootparam" or see the documentation of
|
|
your boot loader (grub or lilo or loadlin) about how to pass options
|
|
to the kernel at boot time.)
|
|
|
|
If you don't have a VGA card installed and you say Y here, the
|
|
kernel will automatically use the first serial line, /dev/ttyS0, as
|
|
system console.
|
|
|
|
You can set that using a kernel command line option such as
|
|
"console=uart8250,io,0x3f8,9600n8"
|
|
"console=uart8250,mmio,0xff5e0000,115200n8".
|
|
and it will switch to normal serial console when the corresponding
|
|
port is ready.
|
|
"earlycon=uart8250,io,0x3f8,9600n8"
|
|
"earlycon=uart8250,mmio,0xff5e0000,115200n8".
|
|
it will not only setup early console.
|
|
|
|
If unsure, say N.
|
|
|
|
config SERIAL_8250_GSC
|
|
tristate
|
|
depends on SERIAL_8250 && GSC
|
|
default SERIAL_8250
|
|
|
|
config SERIAL_8250_DMA
|
|
bool "DMA support for 16550 compatible UART controllers" if EXPERT
|
|
depends on SERIAL_8250 && DMADEVICES=y
|
|
default SERIAL_8250
|
|
help
|
|
This builds DMA support that can be used with 8250/16650
|
|
compatible UART controllers that support DMA signaling.
|
|
|
|
config SERIAL_8250_PCI
|
|
tristate "8250/16550 PCI device support"
|
|
depends on SERIAL_8250 && PCI
|
|
default SERIAL_8250
|
|
help
|
|
This builds standard PCI serial support. You may be able to
|
|
disable this feature if you only need legacy serial support.
|
|
Saves about 9K.
|
|
Note that serial ports on NetMos 9835 Multi-I/O cards are handled
|
|
by the parport_serial driver, enabled with CONFIG_PARPORT_SERIAL.
|
|
|
|
config SERIAL_8250_EXAR
|
|
tristate "8250/16550 Exar/Commtech PCI/PCIe device support"
|
|
depends on SERIAL_8250_PCI
|
|
default SERIAL_8250
|
|
help
|
|
This builds support for XR17C1xx, XR17V3xx and some Commtech
|
|
422x PCIe serial cards that are not covered by the more generic
|
|
SERIAL_8250_PCI option.
|
|
|
|
config SERIAL_8250_HP300
|
|
tristate
|
|
depends on SERIAL_8250 && HP300
|
|
default SERIAL_8250
|
|
|
|
config SERIAL_8250_CS
|
|
tristate "8250/16550 PCMCIA device support"
|
|
depends on PCMCIA && SERIAL_8250
|
|
help
|
|
Say Y here to enable support for 16-bit PCMCIA serial devices,
|
|
including serial port cards, modems, and the modem functions of
|
|
multi-function Ethernet/modem cards. (PCMCIA- or PC-cards are
|
|
credit-card size devices often used with laptops.)
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called serial_cs.
|
|
|
|
If unsure, say N.
|
|
|
|
config SERIAL_8250_MEN_MCB
|
|
tristate "MEN MCB UART device support"
|
|
depends on MCB && SERIAL_8250
|
|
help
|
|
This enables support for FPGA based UARTs found on many MEN
|
|
boards. This driver enables support for the 16z025, 16z057
|
|
and 16z125 UARTs.
|
|
|
|
To compile this driver as a module, chose M here: the
|
|
module will be called 8250_men_mcb.
|
|
|
|
|
|
config SERIAL_8250_NR_UARTS
|
|
int "Maximum number of 8250/16550 serial ports"
|
|
depends on SERIAL_8250
|
|
default "4"
|
|
help
|
|
Set this to the number of serial ports you want the driver
|
|
to support. This includes any ports discovered via ACPI or
|
|
PCI enumeration and any ports that may be added at run-time
|
|
via hot-plug, or any ISA multi-port serial cards.
|
|
|
|
config SERIAL_8250_RUNTIME_UARTS
|
|
int "Number of 8250/16550 serial ports to register at runtime"
|
|
depends on SERIAL_8250
|
|
range 0 SERIAL_8250_NR_UARTS
|
|
default "4"
|
|
help
|
|
Set this to the maximum number of serial ports you want
|
|
the kernel to register at boot time. This can be overridden
|
|
with the module parameter "nr_uarts", or boot-time parameter
|
|
8250.nr_uarts
|
|
|
|
config SERIAL_8250_EXTENDED
|
|
bool "Extended 8250/16550 serial driver options"
|
|
depends on SERIAL_8250
|
|
help
|
|
If you wish to use any non-standard features of the standard "dumb"
|
|
driver, say Y here. This includes HUB6 support, shared serial
|
|
interrupts, special multiport support, support for more than the
|
|
four COM 1/2/3/4 boards, etc.
|
|
|
|
Note that the answer to this question won't directly affect the
|
|
kernel: saying N will just cause the configurator to skip all
|
|
the questions about serial driver options. If unsure, say N.
|
|
|
|
config SERIAL_8250_MANY_PORTS
|
|
bool "Support more than 4 legacy serial ports"
|
|
depends on SERIAL_8250_EXTENDED && !IA64
|
|
help
|
|
Say Y here if you have dumb serial boards other than the four
|
|
standard COM 1/2/3/4 ports. This may happen if you have an AST
|
|
FourPort, Accent Async, Boca (read the Boca mini-HOWTO, available
|
|
from <https://www.tldp.org/docs.html#howto>), or other custom
|
|
serial port hardware which acts similar to standard serial port
|
|
hardware. If you only use the standard COM 1/2/3/4 ports, you can
|
|
say N here to save some memory. You can also say Y if you have an
|
|
"intelligent" multiport card such as Digiboards, etc.
|
|
|
|
#
|
|
# Multi-port serial cards
|
|
#
|
|
|
|
config SERIAL_8250_FOURPORT
|
|
tristate "Support Fourport cards"
|
|
depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
|
|
help
|
|
Say Y here if you have an AST FourPort serial board.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called 8250_fourport.
|
|
|
|
config SERIAL_8250_ACCENT
|
|
tristate "Support Accent cards"
|
|
depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
|
|
help
|
|
Say Y here if you have an Accent Async serial board.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called 8250_accent.
|
|
|
|
config SERIAL_8250_ASPEED_VUART
|
|
tristate "Aspeed Virtual UART"
|
|
depends on SERIAL_8250
|
|
depends on OF
|
|
depends on REGMAP && MFD_SYSCON
|
|
help
|
|
If you want to use the virtual UART (VUART) device on Aspeed
|
|
BMC platforms, enable this option. This enables the 16550A-
|
|
compatible device on the local LPC bus, giving a UART device
|
|
with no physical RS232 connections.
|
|
|
|
config SERIAL_8250_BOCA
|
|
tristate "Support Boca cards"
|
|
depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
|
|
help
|
|
Say Y here if you have a Boca serial board. Please read the Boca
|
|
mini-HOWTO, available from <https://www.tldp.org/docs.html#howto>
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called 8250_boca.
|
|
|
|
config SERIAL_8250_EXAR_ST16C554
|
|
tristate "Support Exar ST16C554/554D Quad UART"
|
|
depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
|
|
help
|
|
The Uplogix Envoy TU301 uses this Exar Quad UART. If you are
|
|
tinkering with your Envoy TU301, or have a machine with this UART,
|
|
say Y here.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called 8250_exar_st16c554.
|
|
|
|
config SERIAL_8250_HUB6
|
|
tristate "Support Hub6 cards"
|
|
depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
|
|
help
|
|
Say Y here if you have a HUB6 serial board.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called 8250_hub6.
|
|
|
|
#
|
|
# Misc. options/drivers.
|
|
#
|
|
|
|
config SERIAL_8250_SHARE_IRQ
|
|
bool "Support for sharing serial interrupts"
|
|
depends on SERIAL_8250_EXTENDED
|
|
help
|
|
Some serial boards have hardware support which allows multiple dumb
|
|
serial ports on the same board to share a single IRQ. To enable
|
|
support for this in the serial driver, say Y here.
|
|
|
|
config SERIAL_8250_DETECT_IRQ
|
|
bool "Autodetect IRQ on standard ports (unsafe)"
|
|
depends on SERIAL_8250_EXTENDED
|
|
help
|
|
Say Y here if you want the kernel to try to guess which IRQ
|
|
to use for your serial port.
|
|
|
|
This is considered unsafe; it is far better to configure the IRQ in
|
|
a boot script using the setserial command.
|
|
|
|
If unsure, say N.
|
|
|
|
config SERIAL_8250_RSA
|
|
bool "Support RSA serial ports"
|
|
depends on SERIAL_8250_EXTENDED
|
|
help
|
|
Say Y here if you have a IODATA RSA-DV II/S ISA card and
|
|
would like to use its >115kbps speeds.
|
|
You will need to provide module parameter "probe_rsa", or boot-time
|
|
parameter 8250.probe_rsa with I/O addresses of this card then.
|
|
|
|
If you don't have such card, or if unsure, say N.
|
|
|
|
config SERIAL_8250_DWLIB
|
|
bool
|
|
|
|
config SERIAL_8250_ACORN
|
|
tristate "Acorn expansion card serial port support"
|
|
depends on ARCH_ACORN && SERIAL_8250
|
|
help
|
|
If you have an Atomwide Serial card or Serial Port card for an Acorn
|
|
system, say Y to this option. The driver can handle 1, 2, or 3 port
|
|
cards. If unsure, say N.
|
|
|
|
config SERIAL_8250_BCM2835AUX
|
|
tristate "BCM2835 auxiliar mini UART support"
|
|
depends on ARCH_BCM2835 || COMPILE_TEST
|
|
depends on SERIAL_8250 && SERIAL_8250_SHARE_IRQ
|
|
help
|
|
Support for the BCM2835 auxiliar mini UART.
|
|
|
|
Features and limitations of the UART are
|
|
Registers are similar to 16650 registers,
|
|
set bits in the control registers that are unsupported
|
|
are ignored and read back as 0
|
|
7/8 bit operation with 1 start and 1 stop bit
|
|
8 symbols deep fifo for rx and tx
|
|
SW controlled RTS and SW readable CTS
|
|
Clock rate derived from system clock
|
|
Uses 8 times oversampling (compared to 16 times for 16650)
|
|
Missing break detection (but break generation)
|
|
Missing framing error detection
|
|
Missing parity bit
|
|
Missing receive time-out interrupt
|
|
Missing DCD, DSR, DTR and RI signals
|
|
|
|
If unsure, say N.
|
|
|
|
config SERIAL_8250_FSL
|
|
bool
|
|
depends on SERIAL_8250_CONSOLE
|
|
default PPC || ARM || ARM64 || COMPILE_TEST
|
|
|
|
config SERIAL_8250_DW
|
|
tristate "Support for Synopsys DesignWare 8250 quirks"
|
|
depends on SERIAL_8250
|
|
select SERIAL_8250_DWLIB
|
|
help
|
|
Selecting this option will enable handling of the extra features
|
|
present in the Synopsys DesignWare APB UART.
|
|
|
|
config SERIAL_8250_EM
|
|
tristate "Support for Emma Mobile integrated serial port"
|
|
depends on SERIAL_8250 && HAVE_CLK
|
|
depends on ARM || COMPILE_TEST
|
|
help
|
|
Selecting this option will add support for the integrated serial
|
|
port hardware found on the Emma Mobile line of processors.
|
|
If unsure, say N.
|
|
|
|
config SERIAL_8250_IOC3
|
|
tristate "SGI IOC3 8250 UART support"
|
|
depends on SERIAL_8250
|
|
depends on SGI_MFD_IOC3 || COMPILE_TEST
|
|
select SERIAL_8250_EXTENDED
|
|
select SERIAL_8250_SHARE_IRQ
|
|
help
|
|
Enable this if you have a SGI Origin or Octane machine. This module
|
|
provides basic serial support by directly driving the UART chip
|
|
behind the IOC3 device on those systems. Maximum baud speed is
|
|
38400bps using this driver.
|
|
|
|
config SERIAL_8250_RT288X
|
|
bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
|
|
depends on SERIAL_8250
|
|
default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
|
|
help
|
|
Selecting this option will add support for the alternate register
|
|
layout used by Ralink RT288x/RT305x, Alchemy Au1xxx, and some others.
|
|
If unsure, say N.
|
|
|
|
config SERIAL_8250_OMAP
|
|
tristate "Support for OMAP internal UART (8250 based driver)"
|
|
depends on SERIAL_8250
|
|
depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
|
|
help
|
|
If you have a machine based on an Texas Instruments OMAP CPU you
|
|
can enable its onboard serial ports by enabling this option.
|
|
|
|
This driver uses ttyS instead of ttyO.
|
|
|
|
config SERIAL_8250_OMAP_TTYO_FIXUP
|
|
bool "Replace ttyO with ttyS"
|
|
depends on SERIAL_8250_OMAP=y && SERIAL_8250_CONSOLE
|
|
default y
|
|
help
|
|
This option replaces the "console=ttyO" argument with the matching
|
|
ttyS argument if the user did not specified it on the command line.
|
|
This ensures that the user can see the kernel output during boot
|
|
which he wouldn't see otherwise. The getty has still to be configured
|
|
for ttyS instead of ttyO regardless of this option.
|
|
This option is intended for people who "automatically" enable this
|
|
driver without knowing that this driver requires a different console=
|
|
argument. If you read this, please keep this option disabled and
|
|
instead update your kernel command line. If you prepare a kernel for a
|
|
distribution or other kind of larger user base then you probably want
|
|
to keep this option enabled. Otherwise people might complain about a
|
|
not booting kernel because the serial console remains silent in case
|
|
they forgot to update the command line.
|
|
|
|
config SERIAL_8250_LPC18XX
|
|
tristate "NXP LPC18xx/43xx serial port support"
|
|
depends on SERIAL_8250 && OF && (ARCH_LPC18XX || COMPILE_TEST)
|
|
default ARCH_LPC18XX
|
|
help
|
|
If you have a LPC18xx/43xx based board and want to use the
|
|
serial port, say Y to this option. If unsure, say Y.
|
|
|
|
config SERIAL_8250_MT6577
|
|
tristate "Mediatek serial port support"
|
|
depends on SERIAL_8250
|
|
depends on ARCH_MEDIATEK || COMPILE_TEST
|
|
help
|
|
If you have a Mediatek based board and want to use the
|
|
serial port, say Y to this option. If unsure, say N.
|
|
|
|
config SERIAL_8250_UNIPHIER
|
|
tristate "Support for UniPhier on-chip UART"
|
|
depends on SERIAL_8250
|
|
depends on ARCH_UNIPHIER || COMPILE_TEST
|
|
help
|
|
If you have a UniPhier based board and want to use the on-chip
|
|
serial ports, say Y to this option. If unsure, say N.
|
|
|
|
config SERIAL_8250_INGENIC
|
|
tristate "Support for Ingenic SoC serial ports"
|
|
depends on SERIAL_8250
|
|
depends on OF_FLATTREE
|
|
depends on MIPS || COMPILE_TEST
|
|
help
|
|
If you have a system using an Ingenic SoC and wish to make use of
|
|
its UARTs, say Y to this option. If unsure, say N.
|
|
|
|
config SERIAL_8250_LPSS
|
|
tristate "Support for serial ports on Intel LPSS platforms"
|
|
default SERIAL_8250
|
|
depends on SERIAL_8250 && PCI
|
|
depends on X86 || COMPILE_TEST
|
|
select SERIAL_8250_DWLIB
|
|
select DW_DMAC_CORE if SERIAL_8250_DMA
|
|
select DW_DMAC_PCI if (SERIAL_8250_DMA && X86_INTEL_LPSS)
|
|
select RATIONAL
|
|
help
|
|
Selecting this option will enable handling of the extra features
|
|
present on the UART found on various Intel platforms such as:
|
|
- Intel Baytrail SoC
|
|
- Intel Braswell SoC
|
|
- Intel Quark X1000 SoC
|
|
|
|
config SERIAL_8250_MID
|
|
tristate "Support for serial ports on Intel MID platforms"
|
|
default SERIAL_8250
|
|
depends on SERIAL_8250 && PCI
|
|
depends on X86 || COMPILE_TEST
|
|
select HSU_DMA if SERIAL_8250_DMA
|
|
select HSU_DMA_PCI if (HSU_DMA && X86_INTEL_MID)
|
|
select RATIONAL
|
|
help
|
|
Selecting this option will enable handling of the extra features
|
|
present on the UART found on Intel Medfield SOC and various other
|
|
Intel platforms.
|
|
|
|
config SERIAL_8250_PXA
|
|
tristate "PXA serial port support"
|
|
depends on SERIAL_8250
|
|
depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
|
|
help
|
|
If you have a machine based on an Intel XScale PXA2xx CPU you can
|
|
enable its onboard serial ports by enabling this option. The option is
|
|
applicable to both devicetree and legacy boards, and early console is
|
|
part of its support.
|
|
|
|
config SERIAL_8250_TEGRA
|
|
tristate "8250 support for Tegra serial ports"
|
|
default SERIAL_8250
|
|
depends on SERIAL_8250
|
|
depends on ARCH_TEGRA || COMPILE_TEST
|
|
help
|
|
Select this option if you have machine with an NVIDIA Tegra SoC and
|
|
wish to enable 8250 serial driver for the Tegra serial interfaces.
|
|
|
|
config SERIAL_8250_BCM7271
|
|
tristate "Broadcom 8250 based serial port"
|
|
depends on SERIAL_8250 && (ARCH_BRCMSTB || COMPILE_TEST)
|
|
default ARCH_BRCMSTB
|
|
help
|
|
If you have a Broadcom STB based board and want to use the
|
|
enhanced features of the Broadcom 8250 based serial port,
|
|
including DMA support and high accuracy BAUD rates, say
|
|
Y to this option. If unsure, say N.
|
|
|
|
config SERIAL_OF_PLATFORM
|
|
tristate "Devicetree based probing for 8250 ports"
|
|
depends on SERIAL_8250 && OF
|
|
help
|
|
This option is used for all 8250 compatible serial ports that
|
|
are probed through devicetree, including Open Firmware based
|
|
PowerPC systems and embedded systems on architectures using the
|
|
flattened device tree format.
|