| # 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_PARISC |
| tristate |
| depends on SERIAL_8250 && PARISC |
| 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_PCILIB |
| bool |
| |
| config SERIAL_8250_PCI |
| tristate "8250/16550 PCI device support" |
| depends on SERIAL_8250 && PCI |
| select SERIAL_8250_PCILIB |
| 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 MFD_SYSCON |
| depends on ARCH_ASPEED || COMPILE_TEST |
| select REGMAP |
| 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. |
| |
| config SERIAL_8250_PCI1XXXX |
| tristate "Microchip 8250 based serial port" |
| depends on SERIAL_8250 && PCI |
| select SERIAL_8250_PCILIB |
| help |
| Select this option if you have a setup with Microchip PCIe |
| Switch with serial port enabled and wish to enable 8250 |
| serial driver for the serial interface. This driver support |
| will ensure to support baud rates upto 1.5Mpbs. |
| |
| # |
| # 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 "Freescale 16550 UART support" if COMPILE_TEST && !(PPC || ARM || ARM64) |
| depends on SERIAL_8250_CONSOLE |
| default PPC || ARM || ARM64 |
| help |
| Selecting this option enables a workaround for a break-detection |
| erratum for Freescale 16550 UARTs in the 8250 driver. It also |
| enables support for ACPI enumeration. |
| |
| config SERIAL_8250_DFL |
| tristate "DFL bus driver for Altera 16550 UART" |
| depends on SERIAL_8250 && FPGA_DFL |
| help |
| This option enables support for a Device Feature List (DFL) bus |
| driver for the Altera 16550 UART. One or more Altera 16550 UARTs |
| can be instantiated in a FPGA and then be discovered during |
| enumeration of the DFL bus. |
| |
| To compile this driver as a module, chose M here: the |
| module will be called 8250_dfl. |
| |
| 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 ARCH_RENESAS || 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 UART found on |
| various Intel platforms such as: |
| - Intel Baytrail SoC |
| - Intel Braswell SoC |
| - Intel Quark X1000 SoC |
| that are not covered by the more generic SERIAL_8250_PCI option. |
| |
| 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 UART found on |
| Intel Medfield SOC and various other Intel platforms that is not |
| covered by the more generic SERIAL_8250_PCI option. |
| |
| config SERIAL_8250_PERICOM |
| tristate "Support for Pericom and Acces I/O serial ports" |
| default SERIAL_8250 |
| depends on SERIAL_8250 && PCI |
| help |
| Selecting this option will enable handling of the Pericom and Acces |
| I/O UARTs that are not covered by the more generic SERIAL_8250_PCI |
| option. |
| |
| 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. |