162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# The 8250/16550 serial drivers.  You shouldn't be in this list unless
462306a36Sopenharmony_ci# you somehow have an implicit or explicit dependency on SERIAL_8250.
562306a36Sopenharmony_ci#
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciconfig SERIAL_8250
862306a36Sopenharmony_ci	tristate "8250/16550 and compatible serial support"
962306a36Sopenharmony_ci	depends on !S390
1062306a36Sopenharmony_ci	select SERIAL_CORE
1162306a36Sopenharmony_ci	select SERIAL_MCTRL_GPIO if GPIOLIB
1262306a36Sopenharmony_ci	help
1362306a36Sopenharmony_ci	  This selects whether you want to include the driver for the standard
1462306a36Sopenharmony_ci	  serial ports.  The standard answer is Y.  People who might say N
1562306a36Sopenharmony_ci	  here are those that are setting up dedicated Ethernet WWW/FTP
1662306a36Sopenharmony_ci	  servers, or users that have one of the various bus mice instead of a
1762306a36Sopenharmony_ci	  serial mouse and don't intend to use their machine's standard serial
1862306a36Sopenharmony_ci	  port for anything.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
2162306a36Sopenharmony_ci	  module will be called 8250.
2262306a36Sopenharmony_ci	  [WARNING: Do not compile this driver as a module if you are using
2362306a36Sopenharmony_ci	  non-standard serial ports, since the configuration information will
2462306a36Sopenharmony_ci	  be lost when the driver is unloaded.  This limitation may be lifted
2562306a36Sopenharmony_ci	  in the future.]
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	  BTW1: If you have a mouseman serial mouse which is not recognized by
2862306a36Sopenharmony_ci	  the X window system, try running gpm first.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	  BTW2: If you intend to use a software modem (also called Winmodem)
3162306a36Sopenharmony_ci	  under Linux, forget it.  These modems are crippled and require
3262306a36Sopenharmony_ci	  proprietary drivers which are only available under Windows.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	  Most people will say Y or M here, so that they can use serial mice,
3562306a36Sopenharmony_ci	  modems and similar devices connecting to the standard serial ports.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciconfig SERIAL_8250_DEPRECATED_OPTIONS
3862306a36Sopenharmony_ci	bool "Support 8250_core.* kernel options (DEPRECATED)"
3962306a36Sopenharmony_ci	depends on SERIAL_8250
4062306a36Sopenharmony_ci	default y
4162306a36Sopenharmony_ci	help
4262306a36Sopenharmony_ci	  In 3.7 we renamed 8250 to 8250_core by mistake, so now we have to
4362306a36Sopenharmony_ci	  accept kernel parameters in both forms like 8250_core.nr_uarts=4 and
4462306a36Sopenharmony_ci	  8250.nr_uarts=4. We now renamed the module back to 8250, but if
4562306a36Sopenharmony_ci	  anybody noticed in 3.7 and changed their userspace we still have to
4662306a36Sopenharmony_ci	  keep the 8250_core.* options around until they revert the changes
4762306a36Sopenharmony_ci	  they already did.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	  If 8250 is built as a module, this adds 8250_core alias instead. 
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	  If you did not notice yet and/or you have userspace from pre-3.7, it
5262306a36Sopenharmony_ci	  is safe (and recommended) to say N here.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciconfig SERIAL_8250_PNP
5562306a36Sopenharmony_ci	bool "8250/16550 PNP device support" if EXPERT
5662306a36Sopenharmony_ci	depends on SERIAL_8250 && PNP
5762306a36Sopenharmony_ci	default y
5862306a36Sopenharmony_ci	help
5962306a36Sopenharmony_ci	  This builds standard PNP serial support. You may be able to
6062306a36Sopenharmony_ci	  disable this feature if you only need legacy serial support.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciconfig SERIAL_8250_16550A_VARIANTS
6362306a36Sopenharmony_ci	bool "Support for variants of the 16550A serial port"
6462306a36Sopenharmony_ci	depends on SERIAL_8250
6562306a36Sopenharmony_ci	default !X86
6662306a36Sopenharmony_ci	help
6762306a36Sopenharmony_ci	  The 8250 driver can probe for many variants of the venerable 16550A
6862306a36Sopenharmony_ci	  serial port. Doing so takes additional time at boot.
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci	  On modern systems, especially those using serial only for a simple
7162306a36Sopenharmony_ci	  console, you can say N here.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciconfig SERIAL_8250_FINTEK
7462306a36Sopenharmony_ci	bool "Support for Fintek variants"
7562306a36Sopenharmony_ci	depends on SERIAL_8250
7662306a36Sopenharmony_ci	help
7762306a36Sopenharmony_ci	  Selecting this option will add support for the RS232 and RS485
7862306a36Sopenharmony_ci	  capabilities of the Fintek F81216A LPC to 4 UART as well similar
7962306a36Sopenharmony_ci	  variants.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci	  If this option is not selected the device will be configured as a
8262306a36Sopenharmony_ci	  standard 16550A serial port, however the device may not function
8362306a36Sopenharmony_ci	  correctly without this option enabled.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	  If unsure, say N.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciconfig SERIAL_8250_CONSOLE
8862306a36Sopenharmony_ci	bool "Console on 8250/16550 and compatible serial port"
8962306a36Sopenharmony_ci	depends on SERIAL_8250=y
9062306a36Sopenharmony_ci	select SERIAL_CORE_CONSOLE
9162306a36Sopenharmony_ci	select SERIAL_EARLYCON
9262306a36Sopenharmony_ci	help
9362306a36Sopenharmony_ci	  If you say Y here, it will be possible to use a serial port as the
9462306a36Sopenharmony_ci	  system console (the system console is the device which receives all
9562306a36Sopenharmony_ci	  kernel messages and warnings and which allows logins in single user
9662306a36Sopenharmony_ci	  mode). This could be useful if some terminal or printer is connected
9762306a36Sopenharmony_ci	  to that serial port.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	  Even if you say Y here, the currently visible virtual console
10062306a36Sopenharmony_ci	  (/dev/tty0) will still be used as the system console by default, but
10162306a36Sopenharmony_ci	  you can alter that using a kernel command line option such as
10262306a36Sopenharmony_ci	  "console=ttyS1". (Try "man bootparam" or see the documentation of
10362306a36Sopenharmony_ci	  your boot loader (grub or lilo or loadlin) about how to pass options
10462306a36Sopenharmony_ci	  to the kernel at boot time.)
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci	  If you don't have a VGA card installed and you say Y here, the
10762306a36Sopenharmony_ci	  kernel will automatically use the first serial line, /dev/ttyS0, as
10862306a36Sopenharmony_ci	  system console.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci	  You can set that using a kernel command line option such as
11162306a36Sopenharmony_ci	  "console=uart8250,io,0x3f8,9600n8"
11262306a36Sopenharmony_ci	  "console=uart8250,mmio,0xff5e0000,115200n8".
11362306a36Sopenharmony_ci	  and it will switch to normal serial console when the corresponding
11462306a36Sopenharmony_ci	  port is ready.
11562306a36Sopenharmony_ci	  "earlycon=uart8250,io,0x3f8,9600n8"
11662306a36Sopenharmony_ci	  "earlycon=uart8250,mmio,0xff5e0000,115200n8".
11762306a36Sopenharmony_ci	  it will not only setup early console.
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci	  If unsure, say N.
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ciconfig SERIAL_8250_PARISC
12262306a36Sopenharmony_ci	tristate
12362306a36Sopenharmony_ci	depends on SERIAL_8250 && PARISC
12462306a36Sopenharmony_ci	default SERIAL_8250
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ciconfig SERIAL_8250_DMA
12762306a36Sopenharmony_ci	bool "DMA support for 16550 compatible UART controllers" if EXPERT
12862306a36Sopenharmony_ci	depends on SERIAL_8250 && DMADEVICES=y
12962306a36Sopenharmony_ci	default SERIAL_8250
13062306a36Sopenharmony_ci	help
13162306a36Sopenharmony_ci	  This builds DMA support that can be used with 8250/16650
13262306a36Sopenharmony_ci	  compatible UART controllers that support DMA signaling.
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciconfig SERIAL_8250_PCILIB
13562306a36Sopenharmony_ci	bool
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciconfig SERIAL_8250_PCI
13862306a36Sopenharmony_ci	tristate "8250/16550 PCI device support"
13962306a36Sopenharmony_ci	depends on SERIAL_8250 && PCI
14062306a36Sopenharmony_ci	select SERIAL_8250_PCILIB
14162306a36Sopenharmony_ci	default SERIAL_8250
14262306a36Sopenharmony_ci	help
14362306a36Sopenharmony_ci	  This builds standard PCI serial support. You may be able to
14462306a36Sopenharmony_ci	  disable this feature if you only need legacy serial support.
14562306a36Sopenharmony_ci	  Saves about 9K.
14662306a36Sopenharmony_ci	  Note that serial ports on NetMos 9835 Multi-I/O cards are handled
14762306a36Sopenharmony_ci	  by the parport_serial driver, enabled with CONFIG_PARPORT_SERIAL.
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ciconfig SERIAL_8250_EXAR
15062306a36Sopenharmony_ci	tristate "8250/16550 Exar/Commtech PCI/PCIe device support"
15162306a36Sopenharmony_ci	depends on SERIAL_8250_PCI
15262306a36Sopenharmony_ci	default SERIAL_8250
15362306a36Sopenharmony_ci	help
15462306a36Sopenharmony_ci	  This builds support for XR17C1xx, XR17V3xx and some Commtech
15562306a36Sopenharmony_ci	  422x PCIe serial cards that are not covered by the more generic
15662306a36Sopenharmony_ci	  SERIAL_8250_PCI option.
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ciconfig SERIAL_8250_HP300
15962306a36Sopenharmony_ci	tristate
16062306a36Sopenharmony_ci	depends on SERIAL_8250 && HP300
16162306a36Sopenharmony_ci	default SERIAL_8250
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ciconfig SERIAL_8250_CS
16462306a36Sopenharmony_ci	tristate "8250/16550 PCMCIA device support"
16562306a36Sopenharmony_ci	depends on PCMCIA && SERIAL_8250
16662306a36Sopenharmony_ci	help
16762306a36Sopenharmony_ci	  Say Y here to enable support for 16-bit PCMCIA serial devices,
16862306a36Sopenharmony_ci	  including serial port cards, modems, and the modem functions of
16962306a36Sopenharmony_ci	  multi-function Ethernet/modem cards. (PCMCIA- or PC-cards are
17062306a36Sopenharmony_ci	  credit-card size devices often used with laptops.)
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
17362306a36Sopenharmony_ci	  module will be called serial_cs.
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci	  If unsure, say N.
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ciconfig SERIAL_8250_MEN_MCB
17862306a36Sopenharmony_ci	tristate "MEN MCB UART device support"
17962306a36Sopenharmony_ci	depends on MCB && SERIAL_8250
18062306a36Sopenharmony_ci	help
18162306a36Sopenharmony_ci	  This enables support for FPGA based UARTs found on many MEN
18262306a36Sopenharmony_ci	  boards. This driver enables support for the 16z025, 16z057
18362306a36Sopenharmony_ci	  and 16z125 UARTs.
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci	  To compile this driver as a module, chose M here: the
18662306a36Sopenharmony_ci	  module will be called 8250_men_mcb.
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ciconfig SERIAL_8250_NR_UARTS
19062306a36Sopenharmony_ci	int "Maximum number of 8250/16550 serial ports"
19162306a36Sopenharmony_ci	depends on SERIAL_8250
19262306a36Sopenharmony_ci	default "4"
19362306a36Sopenharmony_ci	help
19462306a36Sopenharmony_ci	  Set this to the number of serial ports you want the driver
19562306a36Sopenharmony_ci	  to support.  This includes any ports discovered via ACPI or
19662306a36Sopenharmony_ci	  PCI enumeration and any ports that may be added at run-time
19762306a36Sopenharmony_ci	  via hot-plug, or any ISA multi-port serial cards.
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ciconfig SERIAL_8250_RUNTIME_UARTS
20062306a36Sopenharmony_ci	int "Number of 8250/16550 serial ports to register at runtime"
20162306a36Sopenharmony_ci	depends on SERIAL_8250
20262306a36Sopenharmony_ci	range 0 SERIAL_8250_NR_UARTS
20362306a36Sopenharmony_ci	default "4"
20462306a36Sopenharmony_ci	help
20562306a36Sopenharmony_ci	  Set this to the maximum number of serial ports you want
20662306a36Sopenharmony_ci	  the kernel to register at boot time.  This can be overridden
20762306a36Sopenharmony_ci	  with the module parameter "nr_uarts", or boot-time parameter
20862306a36Sopenharmony_ci	  8250.nr_uarts
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ciconfig SERIAL_8250_EXTENDED
21162306a36Sopenharmony_ci	bool "Extended 8250/16550 serial driver options"
21262306a36Sopenharmony_ci	depends on SERIAL_8250
21362306a36Sopenharmony_ci	help
21462306a36Sopenharmony_ci	  If you wish to use any non-standard features of the standard "dumb"
21562306a36Sopenharmony_ci	  driver, say Y here. This includes HUB6 support, shared serial
21662306a36Sopenharmony_ci	  interrupts, special multiport support, support for more than the
21762306a36Sopenharmony_ci	  four COM 1/2/3/4 boards, etc.
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ci	  Note that the answer to this question won't directly affect the
22062306a36Sopenharmony_ci	  kernel: saying N will just cause the configurator to skip all
22162306a36Sopenharmony_ci	  the questions about serial driver options. If unsure, say N.
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ciconfig SERIAL_8250_MANY_PORTS
22462306a36Sopenharmony_ci	bool "Support more than 4 legacy serial ports"
22562306a36Sopenharmony_ci	depends on SERIAL_8250_EXTENDED && !IA64
22662306a36Sopenharmony_ci	help
22762306a36Sopenharmony_ci	  Say Y here if you have dumb serial boards other than the four
22862306a36Sopenharmony_ci	  standard COM 1/2/3/4 ports. This may happen if you have an AST
22962306a36Sopenharmony_ci	  FourPort, Accent Async, Boca (read the Boca mini-HOWTO, available
23062306a36Sopenharmony_ci	  from <https://www.tldp.org/docs.html#howto>), or other custom
23162306a36Sopenharmony_ci	  serial port hardware which acts similar to standard serial port
23262306a36Sopenharmony_ci	  hardware. If you only use the standard COM 1/2/3/4 ports, you can
23362306a36Sopenharmony_ci	  say N here to save some memory. You can also say Y if you have an
23462306a36Sopenharmony_ci	  "intelligent" multiport card such as Digiboards, etc.
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci#
23762306a36Sopenharmony_ci# Multi-port serial cards
23862306a36Sopenharmony_ci#
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ciconfig SERIAL_8250_FOURPORT
24162306a36Sopenharmony_ci	tristate "Support Fourport cards"
24262306a36Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
24362306a36Sopenharmony_ci	help
24462306a36Sopenharmony_ci	  Say Y here if you have an AST FourPort serial board.
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
24762306a36Sopenharmony_ci	  will be called 8250_fourport.
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ciconfig SERIAL_8250_ACCENT
25062306a36Sopenharmony_ci	tristate "Support Accent cards"
25162306a36Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
25262306a36Sopenharmony_ci	help
25362306a36Sopenharmony_ci	  Say Y here if you have an Accent Async serial board.
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
25662306a36Sopenharmony_ci	  will be called 8250_accent.
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_ciconfig SERIAL_8250_ASPEED_VUART
25962306a36Sopenharmony_ci	tristate "Aspeed Virtual UART"
26062306a36Sopenharmony_ci	depends on SERIAL_8250
26162306a36Sopenharmony_ci	depends on OF
26262306a36Sopenharmony_ci	depends on MFD_SYSCON
26362306a36Sopenharmony_ci	depends on ARCH_ASPEED || COMPILE_TEST
26462306a36Sopenharmony_ci	select REGMAP
26562306a36Sopenharmony_ci	help
26662306a36Sopenharmony_ci	  If you want to use the virtual UART (VUART) device on Aspeed
26762306a36Sopenharmony_ci	  BMC platforms, enable this option. This enables the 16550A-
26862306a36Sopenharmony_ci	  compatible device on the local LPC bus, giving a UART device
26962306a36Sopenharmony_ci	  with no physical RS232 connections.
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ciconfig SERIAL_8250_BOCA
27262306a36Sopenharmony_ci	tristate "Support Boca cards"
27362306a36Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
27462306a36Sopenharmony_ci	help
27562306a36Sopenharmony_ci	  Say Y here if you have a Boca serial board.  Please read the Boca
27662306a36Sopenharmony_ci	  mini-HOWTO, available from <https://www.tldp.org/docs.html#howto>
27762306a36Sopenharmony_ci
27862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
27962306a36Sopenharmony_ci	  will be called 8250_boca.
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ciconfig SERIAL_8250_EXAR_ST16C554
28262306a36Sopenharmony_ci	tristate "Support Exar ST16C554/554D Quad UART"
28362306a36Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
28462306a36Sopenharmony_ci	help
28562306a36Sopenharmony_ci	  The Uplogix Envoy TU301 uses this Exar Quad UART.  If you are
28662306a36Sopenharmony_ci	  tinkering with your Envoy TU301, or have a machine with this UART,
28762306a36Sopenharmony_ci	  say Y here.
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
29062306a36Sopenharmony_ci	  will be called 8250_exar_st16c554.
29162306a36Sopenharmony_ci
29262306a36Sopenharmony_ciconfig SERIAL_8250_HUB6
29362306a36Sopenharmony_ci	tristate "Support Hub6 cards"
29462306a36Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
29562306a36Sopenharmony_ci	help
29662306a36Sopenharmony_ci	  Say Y here if you have a HUB6 serial board.
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
29962306a36Sopenharmony_ci	  will be called 8250_hub6.
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_ciconfig SERIAL_8250_PCI1XXXX
30262306a36Sopenharmony_ci	tristate "Microchip 8250 based serial port"
30362306a36Sopenharmony_ci	depends on SERIAL_8250 && PCI
30462306a36Sopenharmony_ci	select SERIAL_8250_PCILIB
30562306a36Sopenharmony_ci	help
30662306a36Sopenharmony_ci	 Select this option if you have a setup with Microchip PCIe
30762306a36Sopenharmony_ci	 Switch with serial port enabled and wish to enable 8250
30862306a36Sopenharmony_ci	 serial driver for the serial interface. This driver support
30962306a36Sopenharmony_ci	 will ensure to support baud rates upto 1.5Mpbs.
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci#
31262306a36Sopenharmony_ci# Misc. options/drivers.
31362306a36Sopenharmony_ci#
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ciconfig SERIAL_8250_SHARE_IRQ
31662306a36Sopenharmony_ci	bool "Support for sharing serial interrupts"
31762306a36Sopenharmony_ci	depends on SERIAL_8250_EXTENDED
31862306a36Sopenharmony_ci	help
31962306a36Sopenharmony_ci	  Some serial boards have hardware support which allows multiple dumb
32062306a36Sopenharmony_ci	  serial ports on the same board to share a single IRQ. To enable
32162306a36Sopenharmony_ci	  support for this in the serial driver, say Y here.
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ciconfig SERIAL_8250_DETECT_IRQ
32462306a36Sopenharmony_ci	bool "Autodetect IRQ on standard ports (unsafe)"
32562306a36Sopenharmony_ci	depends on SERIAL_8250_EXTENDED
32662306a36Sopenharmony_ci	help
32762306a36Sopenharmony_ci	  Say Y here if you want the kernel to try to guess which IRQ
32862306a36Sopenharmony_ci	  to use for your serial port.
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci	  This is considered unsafe; it is far better to configure the IRQ in
33162306a36Sopenharmony_ci	  a boot script using the setserial command.
33262306a36Sopenharmony_ci
33362306a36Sopenharmony_ci	  If unsure, say N.
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ciconfig SERIAL_8250_RSA
33662306a36Sopenharmony_ci	bool "Support RSA serial ports"
33762306a36Sopenharmony_ci	depends on SERIAL_8250_EXTENDED
33862306a36Sopenharmony_ci	help
33962306a36Sopenharmony_ci	  Say Y here if you have a IODATA RSA-DV II/S ISA card and
34062306a36Sopenharmony_ci	  would like to use its >115kbps speeds.
34162306a36Sopenharmony_ci	  You will need to provide module parameter "probe_rsa", or boot-time
34262306a36Sopenharmony_ci	  parameter 8250.probe_rsa with I/O addresses of this card then.
34362306a36Sopenharmony_ci
34462306a36Sopenharmony_ci	  If you don't have such card, or if unsure, say N.
34562306a36Sopenharmony_ci
34662306a36Sopenharmony_ciconfig SERIAL_8250_DWLIB
34762306a36Sopenharmony_ci	bool
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ciconfig SERIAL_8250_ACORN
35062306a36Sopenharmony_ci	tristate "Acorn expansion card serial port support"
35162306a36Sopenharmony_ci	depends on ARCH_ACORN && SERIAL_8250
35262306a36Sopenharmony_ci	help
35362306a36Sopenharmony_ci	  If you have an Atomwide Serial card or Serial Port card for an Acorn
35462306a36Sopenharmony_ci	  system, say Y to this option.  The driver can handle 1, 2, or 3 port
35562306a36Sopenharmony_ci	  cards.  If unsure, say N.
35662306a36Sopenharmony_ci
35762306a36Sopenharmony_ciconfig SERIAL_8250_BCM2835AUX
35862306a36Sopenharmony_ci	tristate "BCM2835 auxiliar mini UART support"
35962306a36Sopenharmony_ci	depends on ARCH_BCM2835 || COMPILE_TEST
36062306a36Sopenharmony_ci	depends on SERIAL_8250 && SERIAL_8250_SHARE_IRQ
36162306a36Sopenharmony_ci	help
36262306a36Sopenharmony_ci	  Support for the BCM2835 auxiliar mini UART.
36362306a36Sopenharmony_ci
36462306a36Sopenharmony_ci	  Features and limitations of the UART are
36562306a36Sopenharmony_ci	    Registers are similar to 16650 registers,
36662306a36Sopenharmony_ci	      set bits in the control registers that are unsupported
36762306a36Sopenharmony_ci	      are ignored and read back as 0
36862306a36Sopenharmony_ci	    7/8 bit operation with 1 start and 1 stop bit
36962306a36Sopenharmony_ci	    8 symbols deep fifo for rx and tx
37062306a36Sopenharmony_ci	    SW controlled RTS and SW readable CTS
37162306a36Sopenharmony_ci	    Clock rate derived from system clock
37262306a36Sopenharmony_ci	    Uses 8 times oversampling (compared to 16 times for 16650)
37362306a36Sopenharmony_ci	    Missing break detection (but break generation)
37462306a36Sopenharmony_ci	    Missing framing error detection
37562306a36Sopenharmony_ci	    Missing parity bit
37662306a36Sopenharmony_ci	    Missing receive time-out interrupt
37762306a36Sopenharmony_ci	    Missing DCD, DSR, DTR and RI signals
37862306a36Sopenharmony_ci
37962306a36Sopenharmony_ci	  If unsure, say N.
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ciconfig SERIAL_8250_FSL
38262306a36Sopenharmony_ci	tristate "Freescale 16550 UART support" if COMPILE_TEST && !(PPC || ARM || ARM64)
38362306a36Sopenharmony_ci	depends on SERIAL_8250
38462306a36Sopenharmony_ci	default SERIAL_8250 if PPC || ARM || ARM64
38562306a36Sopenharmony_ci	help
38662306a36Sopenharmony_ci	  Selecting this option enables a workaround for a break-detection
38762306a36Sopenharmony_ci	  erratum for Freescale 16550 UARTs in the 8250 driver. It also
38862306a36Sopenharmony_ci	  enables support for ACPI enumeration.
38962306a36Sopenharmony_ci
39062306a36Sopenharmony_ciconfig SERIAL_8250_DFL
39162306a36Sopenharmony_ci	tristate "DFL bus driver for Altera 16550 UART"
39262306a36Sopenharmony_ci	depends on SERIAL_8250 && FPGA_DFL
39362306a36Sopenharmony_ci	help
39462306a36Sopenharmony_ci	  This option enables support for a Device Feature List (DFL) bus
39562306a36Sopenharmony_ci	  driver for the Altera 16550 UART. One or more Altera 16550 UARTs
39662306a36Sopenharmony_ci	  can be instantiated in a FPGA and then be discovered during
39762306a36Sopenharmony_ci	  enumeration of the DFL bus.
39862306a36Sopenharmony_ci
39962306a36Sopenharmony_ci	  To compile this driver as a module, chose M here: the
40062306a36Sopenharmony_ci	  module will be called 8250_dfl.
40162306a36Sopenharmony_ci
40262306a36Sopenharmony_ciconfig SERIAL_8250_DW
40362306a36Sopenharmony_ci	tristate "Support for Synopsys DesignWare 8250 quirks"
40462306a36Sopenharmony_ci	depends on SERIAL_8250
40562306a36Sopenharmony_ci	select SERIAL_8250_DWLIB
40662306a36Sopenharmony_ci	help
40762306a36Sopenharmony_ci	  Selecting this option will enable handling of the extra features
40862306a36Sopenharmony_ci	  present in the Synopsys DesignWare APB UART.
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_ciconfig SERIAL_8250_EM
41162306a36Sopenharmony_ci	tristate "Support for Emma Mobile integrated serial port"
41262306a36Sopenharmony_ci	depends on SERIAL_8250 && HAVE_CLK
41362306a36Sopenharmony_ci	depends on ARCH_RENESAS || COMPILE_TEST
41462306a36Sopenharmony_ci	help
41562306a36Sopenharmony_ci	  Selecting this option will add support for the integrated serial
41662306a36Sopenharmony_ci	  port hardware found on the Emma Mobile line of processors.
41762306a36Sopenharmony_ci	  If unsure, say N.
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ciconfig SERIAL_8250_IOC3
42062306a36Sopenharmony_ci	tristate "SGI IOC3 8250 UART support"
42162306a36Sopenharmony_ci	depends on SERIAL_8250
42262306a36Sopenharmony_ci	depends on SGI_MFD_IOC3 || COMPILE_TEST
42362306a36Sopenharmony_ci	select SERIAL_8250_EXTENDED
42462306a36Sopenharmony_ci	select SERIAL_8250_SHARE_IRQ
42562306a36Sopenharmony_ci	help
42662306a36Sopenharmony_ci	  Enable this if you have a SGI Origin or Octane machine. This module
42762306a36Sopenharmony_ci	  provides basic serial support by directly driving the UART chip
42862306a36Sopenharmony_ci	  behind the IOC3 device on those systems.  Maximum baud speed is
42962306a36Sopenharmony_ci	  38400bps using this driver.
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_ciconfig SERIAL_8250_RT288X
43262306a36Sopenharmony_ci	bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
43362306a36Sopenharmony_ci	depends on SERIAL_8250
43462306a36Sopenharmony_ci	default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
43562306a36Sopenharmony_ci	help
43662306a36Sopenharmony_ci	  Selecting this option will add support for the alternate register
43762306a36Sopenharmony_ci	  layout used by Ralink RT288x/RT305x, Alchemy Au1xxx, and some others.
43862306a36Sopenharmony_ci	  If unsure, say N.
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_ciconfig SERIAL_8250_OMAP
44162306a36Sopenharmony_ci	tristate "Support for OMAP internal UART (8250 based driver)"
44262306a36Sopenharmony_ci	depends on SERIAL_8250
44362306a36Sopenharmony_ci	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
44462306a36Sopenharmony_ci	help
44562306a36Sopenharmony_ci	  If you have a machine based on an Texas Instruments OMAP CPU you
44662306a36Sopenharmony_ci	  can enable its onboard serial ports by enabling this option.
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_ci	  This driver uses ttyS instead of ttyO.
44962306a36Sopenharmony_ci
45062306a36Sopenharmony_ciconfig SERIAL_8250_OMAP_TTYO_FIXUP
45162306a36Sopenharmony_ci	bool "Replace ttyO with ttyS"
45262306a36Sopenharmony_ci	depends on SERIAL_8250_OMAP=y && SERIAL_8250_CONSOLE
45362306a36Sopenharmony_ci	default y
45462306a36Sopenharmony_ci	help
45562306a36Sopenharmony_ci	  This option replaces the "console=ttyO" argument with the matching
45662306a36Sopenharmony_ci	  ttyS argument if the user did not specified it on the command line.
45762306a36Sopenharmony_ci	  This ensures that the user can see the kernel output during boot
45862306a36Sopenharmony_ci	  which he wouldn't see otherwise. The getty has still to be configured
45962306a36Sopenharmony_ci	  for ttyS instead of ttyO regardless of this option.
46062306a36Sopenharmony_ci	  This option is intended for people who "automatically" enable this
46162306a36Sopenharmony_ci	  driver without knowing that this driver requires a different console=
46262306a36Sopenharmony_ci	  argument. If you read this, please keep this option disabled and
46362306a36Sopenharmony_ci	  instead update your kernel command line. If you prepare a kernel for a
46462306a36Sopenharmony_ci	  distribution or other kind of larger user base then you probably want
46562306a36Sopenharmony_ci	  to keep this option enabled. Otherwise people might complain about a
46662306a36Sopenharmony_ci	  not booting kernel because the serial console remains silent in case
46762306a36Sopenharmony_ci	  they forgot to update the command line.
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_ciconfig SERIAL_8250_LPC18XX
47062306a36Sopenharmony_ci	tristate "NXP LPC18xx/43xx serial port support"
47162306a36Sopenharmony_ci	depends on SERIAL_8250 && OF && (ARCH_LPC18XX || COMPILE_TEST)
47262306a36Sopenharmony_ci	default ARCH_LPC18XX
47362306a36Sopenharmony_ci	help
47462306a36Sopenharmony_ci	  If you have a LPC18xx/43xx based board and want to use the
47562306a36Sopenharmony_ci	  serial port, say Y to this option. If unsure, say Y.
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ciconfig SERIAL_8250_MT6577
47862306a36Sopenharmony_ci	tristate "Mediatek serial port support"
47962306a36Sopenharmony_ci	depends on SERIAL_8250
48062306a36Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
48162306a36Sopenharmony_ci	help
48262306a36Sopenharmony_ci	  If you have a Mediatek based board and want to use the
48362306a36Sopenharmony_ci	  serial port, say Y to this option. If unsure, say N.
48462306a36Sopenharmony_ci
48562306a36Sopenharmony_ciconfig SERIAL_8250_UNIPHIER
48662306a36Sopenharmony_ci	tristate "Support for UniPhier on-chip UART"
48762306a36Sopenharmony_ci	depends on SERIAL_8250
48862306a36Sopenharmony_ci	depends on ARCH_UNIPHIER || COMPILE_TEST
48962306a36Sopenharmony_ci	help
49062306a36Sopenharmony_ci	  If you have a UniPhier based board and want to use the on-chip
49162306a36Sopenharmony_ci	  serial ports, say Y to this option. If unsure, say N.
49262306a36Sopenharmony_ci
49362306a36Sopenharmony_ciconfig SERIAL_8250_INGENIC
49462306a36Sopenharmony_ci	tristate "Support for Ingenic SoC serial ports"
49562306a36Sopenharmony_ci	depends on SERIAL_8250
49662306a36Sopenharmony_ci	depends on OF_FLATTREE
49762306a36Sopenharmony_ci	depends on MIPS || COMPILE_TEST
49862306a36Sopenharmony_ci	help
49962306a36Sopenharmony_ci	  If you have a system using an Ingenic SoC and wish to make use of
50062306a36Sopenharmony_ci	  its UARTs, say Y to this option. If unsure, say N.
50162306a36Sopenharmony_ci
50262306a36Sopenharmony_ciconfig SERIAL_8250_LPSS
50362306a36Sopenharmony_ci	tristate "Support for serial ports on Intel LPSS platforms"
50462306a36Sopenharmony_ci	default SERIAL_8250
50562306a36Sopenharmony_ci	depends on SERIAL_8250 && PCI
50662306a36Sopenharmony_ci	depends on X86 || COMPILE_TEST
50762306a36Sopenharmony_ci	select SERIAL_8250_DWLIB
50862306a36Sopenharmony_ci	select DW_DMAC_CORE if SERIAL_8250_DMA
50962306a36Sopenharmony_ci	select DW_DMAC_PCI if (SERIAL_8250_DMA && X86_INTEL_LPSS)
51062306a36Sopenharmony_ci	select RATIONAL
51162306a36Sopenharmony_ci	help
51262306a36Sopenharmony_ci	  Selecting this option will enable handling of the UART found on
51362306a36Sopenharmony_ci	  various Intel platforms such as:
51462306a36Sopenharmony_ci	    - Intel Baytrail SoC
51562306a36Sopenharmony_ci	    - Intel Braswell SoC
51662306a36Sopenharmony_ci	    - Intel Quark X1000 SoC
51762306a36Sopenharmony_ci	  that are not covered by the more generic SERIAL_8250_PCI option.
51862306a36Sopenharmony_ci
51962306a36Sopenharmony_ciconfig SERIAL_8250_MID
52062306a36Sopenharmony_ci	tristate "Support for serial ports on Intel MID platforms"
52162306a36Sopenharmony_ci	default SERIAL_8250
52262306a36Sopenharmony_ci	depends on SERIAL_8250 && PCI
52362306a36Sopenharmony_ci	depends on X86 || COMPILE_TEST
52462306a36Sopenharmony_ci	select HSU_DMA if SERIAL_8250_DMA
52562306a36Sopenharmony_ci	select HSU_DMA_PCI if (HSU_DMA && X86_INTEL_MID)
52662306a36Sopenharmony_ci	select RATIONAL
52762306a36Sopenharmony_ci	help
52862306a36Sopenharmony_ci	  Selecting this option will enable handling of the UART found on
52962306a36Sopenharmony_ci	  Intel Medfield SOC and various other Intel platforms that is not
53062306a36Sopenharmony_ci	  covered by the more generic SERIAL_8250_PCI option.
53162306a36Sopenharmony_ci
53262306a36Sopenharmony_ciconfig SERIAL_8250_PERICOM
53362306a36Sopenharmony_ci	tristate "Support for Pericom and Acces I/O serial ports"
53462306a36Sopenharmony_ci	default SERIAL_8250
53562306a36Sopenharmony_ci	depends on SERIAL_8250 && PCI
53662306a36Sopenharmony_ci	help
53762306a36Sopenharmony_ci	  Selecting this option will enable handling of the Pericom and Acces
53862306a36Sopenharmony_ci	  I/O UARTs that are not covered by the more generic SERIAL_8250_PCI
53962306a36Sopenharmony_ci	  option.
54062306a36Sopenharmony_ci
54162306a36Sopenharmony_ciconfig SERIAL_8250_PXA
54262306a36Sopenharmony_ci	tristate "PXA serial port support"
54362306a36Sopenharmony_ci	depends on SERIAL_8250
54462306a36Sopenharmony_ci	depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
54562306a36Sopenharmony_ci	help
54662306a36Sopenharmony_ci	  If you have a machine based on an Intel XScale PXA2xx CPU you can
54762306a36Sopenharmony_ci	  enable its onboard serial ports by enabling this option. The option is
54862306a36Sopenharmony_ci	  applicable to both devicetree and legacy boards, and early console is
54962306a36Sopenharmony_ci	  part of its support.
55062306a36Sopenharmony_ci
55162306a36Sopenharmony_ciconfig SERIAL_8250_TEGRA
55262306a36Sopenharmony_ci	tristate "8250 support for Tegra serial ports"
55362306a36Sopenharmony_ci	default SERIAL_8250
55462306a36Sopenharmony_ci	depends on SERIAL_8250
55562306a36Sopenharmony_ci	depends on ARCH_TEGRA || COMPILE_TEST
55662306a36Sopenharmony_ci	help
55762306a36Sopenharmony_ci	  Select this option if you have machine with an NVIDIA Tegra SoC and
55862306a36Sopenharmony_ci	  wish to enable 8250 serial driver for the Tegra serial interfaces.
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_ciconfig SERIAL_8250_BCM7271
56162306a36Sopenharmony_ci	tristate "Broadcom 8250 based serial port"
56262306a36Sopenharmony_ci	depends on SERIAL_8250 && (ARCH_BRCMSTB || COMPILE_TEST)
56362306a36Sopenharmony_ci	default ARCH_BRCMSTB
56462306a36Sopenharmony_ci	help
56562306a36Sopenharmony_ci	  If you have a Broadcom STB based board and want to use the
56662306a36Sopenharmony_ci	  enhanced features of the Broadcom 8250 based serial port,
56762306a36Sopenharmony_ci	  including DMA support and high accuracy BAUD rates, say
56862306a36Sopenharmony_ci	  Y to this option. If unsure, say N.
56962306a36Sopenharmony_ci
57062306a36Sopenharmony_ciconfig SERIAL_OF_PLATFORM
57162306a36Sopenharmony_ci	tristate "Devicetree based probing for 8250 ports"
57262306a36Sopenharmony_ci	depends on SERIAL_8250 && OF
57362306a36Sopenharmony_ci	help
57462306a36Sopenharmony_ci	  This option is used for all 8250 compatible serial ports that
57562306a36Sopenharmony_ci	  are probed through devicetree, including Open Firmware based
57662306a36Sopenharmony_ci	  PowerPC systems and embedded systems on architectures using the
57762306a36Sopenharmony_ci	  flattened device tree format.
578