18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# The 8250/16550 serial drivers.  You shouldn't be in this list unless
48c2ecf20Sopenharmony_ci# you somehow have an implicit or explicit dependency on SERIAL_8250.
58c2ecf20Sopenharmony_ci#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciconfig SERIAL_8250
88c2ecf20Sopenharmony_ci	tristate "8250/16550 and compatible serial support"
98c2ecf20Sopenharmony_ci	depends on !S390
108c2ecf20Sopenharmony_ci	select SERIAL_CORE
118c2ecf20Sopenharmony_ci	select SERIAL_MCTRL_GPIO if GPIOLIB
128c2ecf20Sopenharmony_ci	help
138c2ecf20Sopenharmony_ci	  This selects whether you want to include the driver for the standard
148c2ecf20Sopenharmony_ci	  serial ports.  The standard answer is Y.  People who might say N
158c2ecf20Sopenharmony_ci	  here are those that are setting up dedicated Ethernet WWW/FTP
168c2ecf20Sopenharmony_ci	  servers, or users that have one of the various bus mice instead of a
178c2ecf20Sopenharmony_ci	  serial mouse and don't intend to use their machine's standard serial
188c2ecf20Sopenharmony_ci	  port for anything.  (Note that the Cyclades multi serial port driver
198c2ecf20Sopenharmony_ci	  does not need this driver built in for it to work.)
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
228c2ecf20Sopenharmony_ci	  module will be called 8250.
238c2ecf20Sopenharmony_ci	  [WARNING: Do not compile this driver as a module if you are using
248c2ecf20Sopenharmony_ci	  non-standard serial ports, since the configuration information will
258c2ecf20Sopenharmony_ci	  be lost when the driver is unloaded.  This limitation may be lifted
268c2ecf20Sopenharmony_ci	  in the future.]
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci	  BTW1: If you have a mouseman serial mouse which is not recognized by
298c2ecf20Sopenharmony_ci	  the X window system, try running gpm first.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	  BTW2: If you intend to use a software modem (also called Winmodem)
328c2ecf20Sopenharmony_ci	  under Linux, forget it.  These modems are crippled and require
338c2ecf20Sopenharmony_ci	  proprietary drivers which are only available under Windows.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci	  Most people will say Y or M here, so that they can use serial mice,
368c2ecf20Sopenharmony_ci	  modems and similar devices connecting to the standard serial ports.
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciconfig SERIAL_8250_DEPRECATED_OPTIONS
398c2ecf20Sopenharmony_ci	bool "Support 8250_core.* kernel options (DEPRECATED)"
408c2ecf20Sopenharmony_ci	depends on SERIAL_8250
418c2ecf20Sopenharmony_ci	default y
428c2ecf20Sopenharmony_ci	help
438c2ecf20Sopenharmony_ci	  In 3.7 we renamed 8250 to 8250_core by mistake, so now we have to
448c2ecf20Sopenharmony_ci	  accept kernel parameters in both forms like 8250_core.nr_uarts=4 and
458c2ecf20Sopenharmony_ci	  8250.nr_uarts=4. We now renamed the module back to 8250, but if
468c2ecf20Sopenharmony_ci	  anybody noticed in 3.7 and changed their userspace we still have to
478c2ecf20Sopenharmony_ci	  keep the 8250_core.* options around until they revert the changes
488c2ecf20Sopenharmony_ci	  they already did.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci	  If 8250 is built as a module, this adds 8250_core alias instead. 
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci	  If you did not notice yet and/or you have userspace from pre-3.7, it
538c2ecf20Sopenharmony_ci	  is safe (and recommended) to say N here.
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciconfig SERIAL_8250_PNP
568c2ecf20Sopenharmony_ci	bool "8250/16550 PNP device support" if EXPERT
578c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && PNP
588c2ecf20Sopenharmony_ci	default y
598c2ecf20Sopenharmony_ci	help
608c2ecf20Sopenharmony_ci	  This builds standard PNP serial support. You may be able to
618c2ecf20Sopenharmony_ci	  disable this feature if you only need legacy serial support.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciconfig SERIAL_8250_16550A_VARIANTS
648c2ecf20Sopenharmony_ci	bool "Support for variants of the 16550A serial port"
658c2ecf20Sopenharmony_ci	depends on SERIAL_8250
668c2ecf20Sopenharmony_ci	default !X86
678c2ecf20Sopenharmony_ci	help
688c2ecf20Sopenharmony_ci	  The 8250 driver can probe for many variants of the venerable 16550A
698c2ecf20Sopenharmony_ci	  serial port. Doing so takes additional time at boot.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci	  On modern systems, especially those using serial only for a simple
728c2ecf20Sopenharmony_ci	  console, you can say N here.
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ciconfig SERIAL_8250_FINTEK
758c2ecf20Sopenharmony_ci	bool "Support for Fintek F81216A LPC to 4 UART RS485 API"
768c2ecf20Sopenharmony_ci	depends on SERIAL_8250
778c2ecf20Sopenharmony_ci	help
788c2ecf20Sopenharmony_ci	  Selecting this option will add support for the RS485 capabilities
798c2ecf20Sopenharmony_ci	  of the Fintek F81216A LPC to 4 UART.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci	  If this option is not selected the device will be configured as a
828c2ecf20Sopenharmony_ci	  standard 16550A serial port.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	  If unsure, say N.
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ciconfig SERIAL_8250_CONSOLE
878c2ecf20Sopenharmony_ci	bool "Console on 8250/16550 and compatible serial port"
888c2ecf20Sopenharmony_ci	depends on SERIAL_8250=y
898c2ecf20Sopenharmony_ci	select SERIAL_CORE_CONSOLE
908c2ecf20Sopenharmony_ci	select SERIAL_EARLYCON
918c2ecf20Sopenharmony_ci	help
928c2ecf20Sopenharmony_ci	  If you say Y here, it will be possible to use a serial port as the
938c2ecf20Sopenharmony_ci	  system console (the system console is the device which receives all
948c2ecf20Sopenharmony_ci	  kernel messages and warnings and which allows logins in single user
958c2ecf20Sopenharmony_ci	  mode). This could be useful if some terminal or printer is connected
968c2ecf20Sopenharmony_ci	  to that serial port.
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci	  Even if you say Y here, the currently visible virtual console
998c2ecf20Sopenharmony_ci	  (/dev/tty0) will still be used as the system console by default, but
1008c2ecf20Sopenharmony_ci	  you can alter that using a kernel command line option such as
1018c2ecf20Sopenharmony_ci	  "console=ttyS1". (Try "man bootparam" or see the documentation of
1028c2ecf20Sopenharmony_ci	  your boot loader (grub or lilo or loadlin) about how to pass options
1038c2ecf20Sopenharmony_ci	  to the kernel at boot time.)
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci	  If you don't have a VGA card installed and you say Y here, the
1068c2ecf20Sopenharmony_ci	  kernel will automatically use the first serial line, /dev/ttyS0, as
1078c2ecf20Sopenharmony_ci	  system console.
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	  You can set that using a kernel command line option such as
1108c2ecf20Sopenharmony_ci	  "console=uart8250,io,0x3f8,9600n8"
1118c2ecf20Sopenharmony_ci	  "console=uart8250,mmio,0xff5e0000,115200n8".
1128c2ecf20Sopenharmony_ci	  and it will switch to normal serial console when the corresponding
1138c2ecf20Sopenharmony_ci	  port is ready.
1148c2ecf20Sopenharmony_ci	  "earlycon=uart8250,io,0x3f8,9600n8"
1158c2ecf20Sopenharmony_ci	  "earlycon=uart8250,mmio,0xff5e0000,115200n8".
1168c2ecf20Sopenharmony_ci	  it will not only setup early console.
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci	  If unsure, say N.
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ciconfig SERIAL_8250_GSC
1218c2ecf20Sopenharmony_ci	tristate
1228c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && PARISC
1238c2ecf20Sopenharmony_ci	default SERIAL_8250
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ciconfig SERIAL_8250_DMA
1268c2ecf20Sopenharmony_ci	bool "DMA support for 16550 compatible UART controllers" if EXPERT
1278c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && DMADEVICES=y
1288c2ecf20Sopenharmony_ci	default SERIAL_8250
1298c2ecf20Sopenharmony_ci	help
1308c2ecf20Sopenharmony_ci	  This builds DMA support that can be used with 8250/16650
1318c2ecf20Sopenharmony_ci	  compatible UART controllers that support DMA signaling.
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ciconfig SERIAL_8250_PCI
1348c2ecf20Sopenharmony_ci	tristate "8250/16550 PCI device support"
1358c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && PCI
1368c2ecf20Sopenharmony_ci	default SERIAL_8250
1378c2ecf20Sopenharmony_ci	help
1388c2ecf20Sopenharmony_ci	  This builds standard PCI serial support. You may be able to
1398c2ecf20Sopenharmony_ci	  disable this feature if you only need legacy serial support.
1408c2ecf20Sopenharmony_ci	  Saves about 9K.
1418c2ecf20Sopenharmony_ci	  Note that serial ports on NetMos 9835 Multi-I/O cards are handled
1428c2ecf20Sopenharmony_ci	  by the parport_serial driver, enabled with CONFIG_PARPORT_SERIAL.
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ciconfig SERIAL_8250_EXAR
1458c2ecf20Sopenharmony_ci	tristate "8250/16550 Exar/Commtech PCI/PCIe device support"
1468c2ecf20Sopenharmony_ci	depends on SERIAL_8250_PCI
1478c2ecf20Sopenharmony_ci	default SERIAL_8250
1488c2ecf20Sopenharmony_ci	help
1498c2ecf20Sopenharmony_ci	  This builds support for XR17C1xx, XR17V3xx and some Commtech
1508c2ecf20Sopenharmony_ci	  422x PCIe serial cards that are not covered by the more generic
1518c2ecf20Sopenharmony_ci	  SERIAL_8250_PCI option.
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ciconfig SERIAL_8250_HP300
1548c2ecf20Sopenharmony_ci	tristate
1558c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && HP300
1568c2ecf20Sopenharmony_ci	default SERIAL_8250
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ciconfig SERIAL_8250_CS
1598c2ecf20Sopenharmony_ci	tristate "8250/16550 PCMCIA device support"
1608c2ecf20Sopenharmony_ci	depends on PCMCIA && SERIAL_8250
1618c2ecf20Sopenharmony_ci	help
1628c2ecf20Sopenharmony_ci	  Say Y here to enable support for 16-bit PCMCIA serial devices,
1638c2ecf20Sopenharmony_ci	  including serial port cards, modems, and the modem functions of
1648c2ecf20Sopenharmony_ci	  multi-function Ethernet/modem cards. (PCMCIA- or PC-cards are
1658c2ecf20Sopenharmony_ci	  credit-card size devices often used with laptops.)
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
1688c2ecf20Sopenharmony_ci	  module will be called serial_cs.
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci	  If unsure, say N.
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ciconfig SERIAL_8250_MEN_MCB
1738c2ecf20Sopenharmony_ci	tristate "MEN MCB UART device support"
1748c2ecf20Sopenharmony_ci	depends on MCB && SERIAL_8250
1758c2ecf20Sopenharmony_ci	help
1768c2ecf20Sopenharmony_ci	  This enables support for FPGA based UARTs found on many MEN
1778c2ecf20Sopenharmony_ci	  boards. This driver enables support for the 16z025, 16z057
1788c2ecf20Sopenharmony_ci	  and 16z125 UARTs.
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ci	  To compile this driver as a module, chose M here: the
1818c2ecf20Sopenharmony_ci	  module will be called 8250_men_mcb.
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ciconfig SERIAL_8250_NR_UARTS
1858c2ecf20Sopenharmony_ci	int "Maximum number of 8250/16550 serial ports"
1868c2ecf20Sopenharmony_ci	depends on SERIAL_8250
1878c2ecf20Sopenharmony_ci	default "4"
1888c2ecf20Sopenharmony_ci	help
1898c2ecf20Sopenharmony_ci	  Set this to the number of serial ports you want the driver
1908c2ecf20Sopenharmony_ci	  to support.  This includes any ports discovered via ACPI or
1918c2ecf20Sopenharmony_ci	  PCI enumeration and any ports that may be added at run-time
1928c2ecf20Sopenharmony_ci	  via hot-plug, or any ISA multi-port serial cards.
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ciconfig SERIAL_8250_RUNTIME_UARTS
1958c2ecf20Sopenharmony_ci	int "Number of 8250/16550 serial ports to register at runtime"
1968c2ecf20Sopenharmony_ci	depends on SERIAL_8250
1978c2ecf20Sopenharmony_ci	range 0 SERIAL_8250_NR_UARTS
1988c2ecf20Sopenharmony_ci	default "4"
1998c2ecf20Sopenharmony_ci	help
2008c2ecf20Sopenharmony_ci	  Set this to the maximum number of serial ports you want
2018c2ecf20Sopenharmony_ci	  the kernel to register at boot time.  This can be overridden
2028c2ecf20Sopenharmony_ci	  with the module parameter "nr_uarts", or boot-time parameter
2038c2ecf20Sopenharmony_ci	  8250.nr_uarts
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ciconfig SERIAL_8250_EXTENDED
2068c2ecf20Sopenharmony_ci	bool "Extended 8250/16550 serial driver options"
2078c2ecf20Sopenharmony_ci	depends on SERIAL_8250
2088c2ecf20Sopenharmony_ci	help
2098c2ecf20Sopenharmony_ci	  If you wish to use any non-standard features of the standard "dumb"
2108c2ecf20Sopenharmony_ci	  driver, say Y here. This includes HUB6 support, shared serial
2118c2ecf20Sopenharmony_ci	  interrupts, special multiport support, support for more than the
2128c2ecf20Sopenharmony_ci	  four COM 1/2/3/4 boards, etc.
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci	  Note that the answer to this question won't directly affect the
2158c2ecf20Sopenharmony_ci	  kernel: saying N will just cause the configurator to skip all
2168c2ecf20Sopenharmony_ci	  the questions about serial driver options. If unsure, say N.
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ciconfig SERIAL_8250_MANY_PORTS
2198c2ecf20Sopenharmony_ci	bool "Support more than 4 legacy serial ports"
2208c2ecf20Sopenharmony_ci	depends on SERIAL_8250_EXTENDED && !IA64
2218c2ecf20Sopenharmony_ci	help
2228c2ecf20Sopenharmony_ci	  Say Y here if you have dumb serial boards other than the four
2238c2ecf20Sopenharmony_ci	  standard COM 1/2/3/4 ports. This may happen if you have an AST
2248c2ecf20Sopenharmony_ci	  FourPort, Accent Async, Boca (read the Boca mini-HOWTO, available
2258c2ecf20Sopenharmony_ci	  from <https://www.tldp.org/docs.html#howto>), or other custom
2268c2ecf20Sopenharmony_ci	  serial port hardware which acts similar to standard serial port
2278c2ecf20Sopenharmony_ci	  hardware. If you only use the standard COM 1/2/3/4 ports, you can
2288c2ecf20Sopenharmony_ci	  say N here to save some memory. You can also say Y if you have an
2298c2ecf20Sopenharmony_ci	  "intelligent" multiport card such as Cyclades, Digiboards, etc.
2308c2ecf20Sopenharmony_ci
2318c2ecf20Sopenharmony_ci#
2328c2ecf20Sopenharmony_ci# Multi-port serial cards
2338c2ecf20Sopenharmony_ci#
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ciconfig SERIAL_8250_FOURPORT
2368c2ecf20Sopenharmony_ci	tristate "Support Fourport cards"
2378c2ecf20Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
2388c2ecf20Sopenharmony_ci	help
2398c2ecf20Sopenharmony_ci	  Say Y here if you have an AST FourPort serial board.
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2428c2ecf20Sopenharmony_ci	  will be called 8250_fourport.
2438c2ecf20Sopenharmony_ci
2448c2ecf20Sopenharmony_ciconfig SERIAL_8250_ACCENT
2458c2ecf20Sopenharmony_ci	tristate "Support Accent cards"
2468c2ecf20Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
2478c2ecf20Sopenharmony_ci	help
2488c2ecf20Sopenharmony_ci	  Say Y here if you have an Accent Async serial board.
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2518c2ecf20Sopenharmony_ci	  will be called 8250_accent.
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_ciconfig SERIAL_8250_ASPEED_VUART
2548c2ecf20Sopenharmony_ci	tristate "Aspeed Virtual UART"
2558c2ecf20Sopenharmony_ci	depends on SERIAL_8250
2568c2ecf20Sopenharmony_ci	depends on OF
2578c2ecf20Sopenharmony_ci	depends on MFD_SYSCON
2588c2ecf20Sopenharmony_ci	depends on ARCH_ASPEED || COMPILE_TEST
2598c2ecf20Sopenharmony_ci	select REGMAP
2608c2ecf20Sopenharmony_ci	help
2618c2ecf20Sopenharmony_ci	  If you want to use the virtual UART (VUART) device on Aspeed
2628c2ecf20Sopenharmony_ci	  BMC platforms, enable this option. This enables the 16550A-
2638c2ecf20Sopenharmony_ci	  compatible device on the local LPC bus, giving a UART device
2648c2ecf20Sopenharmony_ci	  with no physical RS232 connections.
2658c2ecf20Sopenharmony_ci
2668c2ecf20Sopenharmony_ciconfig SERIAL_8250_BOCA
2678c2ecf20Sopenharmony_ci	tristate "Support Boca cards"
2688c2ecf20Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
2698c2ecf20Sopenharmony_ci	help
2708c2ecf20Sopenharmony_ci	  Say Y here if you have a Boca serial board.  Please read the Boca
2718c2ecf20Sopenharmony_ci	  mini-HOWTO, available from <https://www.tldp.org/docs.html#howto>
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2748c2ecf20Sopenharmony_ci	  will be called 8250_boca.
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ciconfig SERIAL_8250_EXAR_ST16C554
2778c2ecf20Sopenharmony_ci	tristate "Support Exar ST16C554/554D Quad UART"
2788c2ecf20Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
2798c2ecf20Sopenharmony_ci	help
2808c2ecf20Sopenharmony_ci	  The Uplogix Envoy TU301 uses this Exar Quad UART.  If you are
2818c2ecf20Sopenharmony_ci	  tinkering with your Envoy TU301, or have a machine with this UART,
2828c2ecf20Sopenharmony_ci	  say Y here.
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2858c2ecf20Sopenharmony_ci	  will be called 8250_exar_st16c554.
2868c2ecf20Sopenharmony_ci
2878c2ecf20Sopenharmony_ciconfig SERIAL_8250_HUB6
2888c2ecf20Sopenharmony_ci	tristate "Support Hub6 cards"
2898c2ecf20Sopenharmony_ci	depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
2908c2ecf20Sopenharmony_ci	help
2918c2ecf20Sopenharmony_ci	  Say Y here if you have a HUB6 serial board.
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
2948c2ecf20Sopenharmony_ci	  will be called 8250_hub6.
2958c2ecf20Sopenharmony_ci
2968c2ecf20Sopenharmony_ci#
2978c2ecf20Sopenharmony_ci# Misc. options/drivers.
2988c2ecf20Sopenharmony_ci#
2998c2ecf20Sopenharmony_ci
3008c2ecf20Sopenharmony_ciconfig SERIAL_8250_SHARE_IRQ
3018c2ecf20Sopenharmony_ci	bool "Support for sharing serial interrupts"
3028c2ecf20Sopenharmony_ci	depends on SERIAL_8250_EXTENDED
3038c2ecf20Sopenharmony_ci	help
3048c2ecf20Sopenharmony_ci	  Some serial boards have hardware support which allows multiple dumb
3058c2ecf20Sopenharmony_ci	  serial ports on the same board to share a single IRQ. To enable
3068c2ecf20Sopenharmony_ci	  support for this in the serial driver, say Y here.
3078c2ecf20Sopenharmony_ci
3088c2ecf20Sopenharmony_ciconfig SERIAL_8250_DETECT_IRQ
3098c2ecf20Sopenharmony_ci	bool "Autodetect IRQ on standard ports (unsafe)"
3108c2ecf20Sopenharmony_ci	depends on SERIAL_8250_EXTENDED
3118c2ecf20Sopenharmony_ci	help
3128c2ecf20Sopenharmony_ci	  Say Y here if you want the kernel to try to guess which IRQ
3138c2ecf20Sopenharmony_ci	  to use for your serial port.
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci	  This is considered unsafe; it is far better to configure the IRQ in
3168c2ecf20Sopenharmony_ci	  a boot script using the setserial command.
3178c2ecf20Sopenharmony_ci
3188c2ecf20Sopenharmony_ci	  If unsure, say N.
3198c2ecf20Sopenharmony_ci
3208c2ecf20Sopenharmony_ciconfig SERIAL_8250_RSA
3218c2ecf20Sopenharmony_ci	bool "Support RSA serial ports"
3228c2ecf20Sopenharmony_ci	depends on SERIAL_8250_EXTENDED
3238c2ecf20Sopenharmony_ci	help
3248c2ecf20Sopenharmony_ci	  Say Y here if you have a IODATA RSA-DV II/S ISA card and
3258c2ecf20Sopenharmony_ci	  would like to use its >115kbps speeds.
3268c2ecf20Sopenharmony_ci	  You will need to provide module parameter "probe_rsa", or boot-time
3278c2ecf20Sopenharmony_ci	  parameter 8250.probe_rsa with I/O addresses of this card then.
3288c2ecf20Sopenharmony_ci
3298c2ecf20Sopenharmony_ci	  If you don't have such card, or if unsure, say N.
3308c2ecf20Sopenharmony_ci
3318c2ecf20Sopenharmony_ciconfig SERIAL_8250_DWLIB
3328c2ecf20Sopenharmony_ci	bool
3338c2ecf20Sopenharmony_ci
3348c2ecf20Sopenharmony_ciconfig SERIAL_8250_ACORN
3358c2ecf20Sopenharmony_ci	tristate "Acorn expansion card serial port support"
3368c2ecf20Sopenharmony_ci	depends on ARCH_ACORN && SERIAL_8250
3378c2ecf20Sopenharmony_ci	help
3388c2ecf20Sopenharmony_ci	  If you have an Atomwide Serial card or Serial Port card for an Acorn
3398c2ecf20Sopenharmony_ci	  system, say Y to this option.  The driver can handle 1, 2, or 3 port
3408c2ecf20Sopenharmony_ci	  cards.  If unsure, say N.
3418c2ecf20Sopenharmony_ci
3428c2ecf20Sopenharmony_ciconfig SERIAL_8250_BCM2835AUX
3438c2ecf20Sopenharmony_ci	tristate "BCM2835 auxiliar mini UART support"
3448c2ecf20Sopenharmony_ci	depends on ARCH_BCM2835 || COMPILE_TEST
3458c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && SERIAL_8250_SHARE_IRQ
3468c2ecf20Sopenharmony_ci	help
3478c2ecf20Sopenharmony_ci	  Support for the BCM2835 auxiliar mini UART.
3488c2ecf20Sopenharmony_ci
3498c2ecf20Sopenharmony_ci	  Features and limitations of the UART are
3508c2ecf20Sopenharmony_ci	    Registers are similar to 16650 registers,
3518c2ecf20Sopenharmony_ci	      set bits in the control registers that are unsupported
3528c2ecf20Sopenharmony_ci	      are ignored and read back as 0
3538c2ecf20Sopenharmony_ci	    7/8 bit operation with 1 start and 1 stop bit
3548c2ecf20Sopenharmony_ci	    8 symbols deep fifo for rx and tx
3558c2ecf20Sopenharmony_ci	    SW controlled RTS and SW readable CTS
3568c2ecf20Sopenharmony_ci	    Clock rate derived from system clock
3578c2ecf20Sopenharmony_ci	    Uses 8 times oversampling (compared to 16 times for 16650)
3588c2ecf20Sopenharmony_ci	    Missing break detection (but break generation)
3598c2ecf20Sopenharmony_ci	    Missing framing error detection
3608c2ecf20Sopenharmony_ci	    Missing parity bit
3618c2ecf20Sopenharmony_ci	    Missing receive time-out interrupt
3628c2ecf20Sopenharmony_ci	    Missing DCD, DSR, DTR and RI signals
3638c2ecf20Sopenharmony_ci
3648c2ecf20Sopenharmony_ci	  If unsure, say N.
3658c2ecf20Sopenharmony_ci
3668c2ecf20Sopenharmony_ciconfig SERIAL_8250_FSL
3678c2ecf20Sopenharmony_ci	bool
3688c2ecf20Sopenharmony_ci	depends on SERIAL_8250_CONSOLE
3698c2ecf20Sopenharmony_ci	default PPC || ARM || ARM64
3708c2ecf20Sopenharmony_ci
3718c2ecf20Sopenharmony_ciconfig SERIAL_8250_DW
3728c2ecf20Sopenharmony_ci	tristate "Support for Synopsys DesignWare 8250 quirks"
3738c2ecf20Sopenharmony_ci	depends on SERIAL_8250
3748c2ecf20Sopenharmony_ci	select SERIAL_8250_DWLIB
3758c2ecf20Sopenharmony_ci	help
3768c2ecf20Sopenharmony_ci	  Selecting this option will enable handling of the extra features
3778c2ecf20Sopenharmony_ci	  present in the Synopsys DesignWare APB UART.
3788c2ecf20Sopenharmony_ci
3798c2ecf20Sopenharmony_ciconfig SERIAL_8250_EM
3808c2ecf20Sopenharmony_ci	tristate "Support for Emma Mobile integrated serial port"
3818c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && ARM && HAVE_CLK
3828c2ecf20Sopenharmony_ci	help
3838c2ecf20Sopenharmony_ci	  Selecting this option will add support for the integrated serial
3848c2ecf20Sopenharmony_ci	  port hardware found on the Emma Mobile line of processors.
3858c2ecf20Sopenharmony_ci	  If unsure, say N.
3868c2ecf20Sopenharmony_ci
3878c2ecf20Sopenharmony_ciconfig SERIAL_8250_IOC3
3888c2ecf20Sopenharmony_ci	tristate "SGI IOC3 8250 UART support"
3898c2ecf20Sopenharmony_ci	depends on SGI_MFD_IOC3 && SERIAL_8250
3908c2ecf20Sopenharmony_ci	select SERIAL_8250_EXTENDED
3918c2ecf20Sopenharmony_ci	select SERIAL_8250_SHARE_IRQ
3928c2ecf20Sopenharmony_ci	help
3938c2ecf20Sopenharmony_ci	  Enable this if you have a SGI Origin or Octane machine. This module
3948c2ecf20Sopenharmony_ci	  provides basic serial support by directly driving the UART chip
3958c2ecf20Sopenharmony_ci	  behind the IOC3 device on those systems.  Maximum baud speed is
3968c2ecf20Sopenharmony_ci	  38400bps using this driver.
3978c2ecf20Sopenharmony_ci
3988c2ecf20Sopenharmony_ciconfig SERIAL_8250_RT288X
3998c2ecf20Sopenharmony_ci	bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
4008c2ecf20Sopenharmony_ci	depends on SERIAL_8250
4018c2ecf20Sopenharmony_ci	default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
4028c2ecf20Sopenharmony_ci	help
4038c2ecf20Sopenharmony_ci	  Selecting this option will add support for the alternate register
4048c2ecf20Sopenharmony_ci	  layout used by Ralink RT288x/RT305x, Alchemy Au1xxx, and some others.
4058c2ecf20Sopenharmony_ci	  If unsure, say N.
4068c2ecf20Sopenharmony_ci
4078c2ecf20Sopenharmony_ciconfig SERIAL_8250_OMAP
4088c2ecf20Sopenharmony_ci	tristate "Support for OMAP internal UART (8250 based driver)"
4098c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && (ARCH_OMAP2PLUS || ARCH_K3)
4108c2ecf20Sopenharmony_ci	help
4118c2ecf20Sopenharmony_ci	  If you have a machine based on an Texas Instruments OMAP CPU you
4128c2ecf20Sopenharmony_ci	  can enable its onboard serial ports by enabling this option.
4138c2ecf20Sopenharmony_ci
4148c2ecf20Sopenharmony_ci	  This driver uses ttyS instead of ttyO.
4158c2ecf20Sopenharmony_ci
4168c2ecf20Sopenharmony_ciconfig SERIAL_8250_OMAP_TTYO_FIXUP
4178c2ecf20Sopenharmony_ci	bool "Replace ttyO with ttyS"
4188c2ecf20Sopenharmony_ci	depends on SERIAL_8250_OMAP=y && SERIAL_8250_CONSOLE
4198c2ecf20Sopenharmony_ci	default y
4208c2ecf20Sopenharmony_ci	help
4218c2ecf20Sopenharmony_ci	  This option replaces the "console=ttyO" argument with the matching
4228c2ecf20Sopenharmony_ci	  ttyS argument if the user did not specified it on the command line.
4238c2ecf20Sopenharmony_ci	  This ensures that the user can see the kernel output during boot
4248c2ecf20Sopenharmony_ci	  which he wouldn't see otherwise. The getty has still to be configured
4258c2ecf20Sopenharmony_ci	  for ttyS instead of ttyO regardless of this option.
4268c2ecf20Sopenharmony_ci	  This option is intended for people who "automatically" enable this
4278c2ecf20Sopenharmony_ci	  driver without knowing that this driver requires a different console=
4288c2ecf20Sopenharmony_ci	  argument. If you read this, please keep this option disabled and
4298c2ecf20Sopenharmony_ci	  instead update your kernel command line. If you prepare a kernel for a
4308c2ecf20Sopenharmony_ci	  distribution or other kind of larger user base then you probably want
4318c2ecf20Sopenharmony_ci	  to keep this option enabled. Otherwise people might complain about a
4328c2ecf20Sopenharmony_ci	  not booting kernel because the serial console remains silent in case
4338c2ecf20Sopenharmony_ci	  they forgot to update the command line.
4348c2ecf20Sopenharmony_ci
4358c2ecf20Sopenharmony_ciconfig SERIAL_8250_LPC18XX
4368c2ecf20Sopenharmony_ci	tristate "NXP LPC18xx/43xx serial port support"
4378c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && OF && (ARCH_LPC18XX || COMPILE_TEST)
4388c2ecf20Sopenharmony_ci	default ARCH_LPC18XX
4398c2ecf20Sopenharmony_ci	help
4408c2ecf20Sopenharmony_ci	  If you have a LPC18xx/43xx based board and want to use the
4418c2ecf20Sopenharmony_ci	  serial port, say Y to this option. If unsure, say Y.
4428c2ecf20Sopenharmony_ci
4438c2ecf20Sopenharmony_ciconfig SERIAL_8250_MT6577
4448c2ecf20Sopenharmony_ci	tristate "Mediatek serial port support"
4458c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && ARCH_MEDIATEK
4468c2ecf20Sopenharmony_ci	help
4478c2ecf20Sopenharmony_ci	  If you have a Mediatek based board and want to use the
4488c2ecf20Sopenharmony_ci	  serial port, say Y to this option. If unsure, say N.
4498c2ecf20Sopenharmony_ci
4508c2ecf20Sopenharmony_ciconfig SERIAL_8250_UNIPHIER
4518c2ecf20Sopenharmony_ci	tristate "Support for UniPhier on-chip UART"
4528c2ecf20Sopenharmony_ci	depends on SERIAL_8250
4538c2ecf20Sopenharmony_ci	depends on ARCH_UNIPHIER || COMPILE_TEST
4548c2ecf20Sopenharmony_ci	help
4558c2ecf20Sopenharmony_ci	  If you have a UniPhier based board and want to use the on-chip
4568c2ecf20Sopenharmony_ci	  serial ports, say Y to this option. If unsure, say N.
4578c2ecf20Sopenharmony_ci
4588c2ecf20Sopenharmony_ciconfig SERIAL_8250_INGENIC
4598c2ecf20Sopenharmony_ci	tristate "Support for Ingenic SoC serial ports"
4608c2ecf20Sopenharmony_ci	depends on SERIAL_8250
4618c2ecf20Sopenharmony_ci	depends on OF_FLATTREE
4628c2ecf20Sopenharmony_ci	depends on MIPS || COMPILE_TEST
4638c2ecf20Sopenharmony_ci	help
4648c2ecf20Sopenharmony_ci	  If you have a system using an Ingenic SoC and wish to make use of
4658c2ecf20Sopenharmony_ci	  its UARTs, say Y to this option. If unsure, say N.
4668c2ecf20Sopenharmony_ci
4678c2ecf20Sopenharmony_ciconfig SERIAL_8250_LPSS
4688c2ecf20Sopenharmony_ci	tristate "Support for serial ports on Intel LPSS platforms"
4698c2ecf20Sopenharmony_ci	default SERIAL_8250
4708c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && PCI
4718c2ecf20Sopenharmony_ci	depends on X86 || COMPILE_TEST
4728c2ecf20Sopenharmony_ci	select SERIAL_8250_DWLIB
4738c2ecf20Sopenharmony_ci	select DW_DMAC_CORE if SERIAL_8250_DMA
4748c2ecf20Sopenharmony_ci	select DW_DMAC_PCI if (SERIAL_8250_DMA && X86_INTEL_LPSS)
4758c2ecf20Sopenharmony_ci	select RATIONAL
4768c2ecf20Sopenharmony_ci	help
4778c2ecf20Sopenharmony_ci	  Selecting this option will enable handling of the extra features
4788c2ecf20Sopenharmony_ci	  present on the UART found on various Intel platforms such as:
4798c2ecf20Sopenharmony_ci	    - Intel Baytrail SoC
4808c2ecf20Sopenharmony_ci	    - Intel Braswell SoC
4818c2ecf20Sopenharmony_ci	    - Intel Quark X1000 SoC
4828c2ecf20Sopenharmony_ci
4838c2ecf20Sopenharmony_ciconfig SERIAL_8250_MID
4848c2ecf20Sopenharmony_ci	tristate "Support for serial ports on Intel MID platforms"
4858c2ecf20Sopenharmony_ci	default SERIAL_8250
4868c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && PCI
4878c2ecf20Sopenharmony_ci	depends on X86 || COMPILE_TEST
4888c2ecf20Sopenharmony_ci	select HSU_DMA if SERIAL_8250_DMA
4898c2ecf20Sopenharmony_ci	select HSU_DMA_PCI if (HSU_DMA && X86_INTEL_MID)
4908c2ecf20Sopenharmony_ci	select RATIONAL
4918c2ecf20Sopenharmony_ci	help
4928c2ecf20Sopenharmony_ci	  Selecting this option will enable handling of the extra features
4938c2ecf20Sopenharmony_ci	  present on the UART found on Intel Medfield SOC and various other
4948c2ecf20Sopenharmony_ci	  Intel platforms.
4958c2ecf20Sopenharmony_ci
4968c2ecf20Sopenharmony_ciconfig SERIAL_8250_PXA
4978c2ecf20Sopenharmony_ci	tristate "PXA serial port support"
4988c2ecf20Sopenharmony_ci	depends on SERIAL_8250
4998c2ecf20Sopenharmony_ci	depends on ARCH_PXA || ARCH_MMP
5008c2ecf20Sopenharmony_ci	help
5018c2ecf20Sopenharmony_ci	  If you have a machine based on an Intel XScale PXA2xx CPU you can
5028c2ecf20Sopenharmony_ci	  enable its onboard serial ports by enabling this option. The option is
5038c2ecf20Sopenharmony_ci	  applicable to both devicetree and legacy boards, and early console is
5048c2ecf20Sopenharmony_ci	  part of its support.
5058c2ecf20Sopenharmony_ci
5068c2ecf20Sopenharmony_ciconfig SERIAL_8250_TEGRA
5078c2ecf20Sopenharmony_ci	tristate "8250 support for Tegra serial ports"
5088c2ecf20Sopenharmony_ci	default SERIAL_8250
5098c2ecf20Sopenharmony_ci	depends on SERIAL_8250
5108c2ecf20Sopenharmony_ci	depends on ARCH_TEGRA || COMPILE_TEST
5118c2ecf20Sopenharmony_ci	help
5128c2ecf20Sopenharmony_ci	  Select this option if you have machine with an NVIDIA Tegra SoC and
5138c2ecf20Sopenharmony_ci	  wish to enable 8250 serial driver for the Tegra serial interfaces.
5148c2ecf20Sopenharmony_ci
5158c2ecf20Sopenharmony_ciconfig SERIAL_OF_PLATFORM
5168c2ecf20Sopenharmony_ci	tristate "Devicetree based probing for 8250 ports"
5178c2ecf20Sopenharmony_ci	depends on SERIAL_8250 && OF
5188c2ecf20Sopenharmony_ci	help
5198c2ecf20Sopenharmony_ci	  This option is used for all 8250 compatible serial ports that
5208c2ecf20Sopenharmony_ci	  are probed through devicetree, including Open Firmware based
5218c2ecf20Sopenharmony_ci	  PowerPC systems and embedded systems on architectures using the
5228c2ecf20Sopenharmony_ci	  flattened device tree format.
523