1# SPDX-License-Identifier: GPL-2.0 2# 3# The 8250/16550 serial drivers. You shouldn't be in this list unless 4# you somehow have an implicit or explicit dependency on SERIAL_8250. 5# 6 7config SERIAL_8250 8 tristate "8250/16550 and compatible serial support" 9 depends on !S390 10 select SERIAL_CORE 11 select SERIAL_MCTRL_GPIO if GPIOLIB 12 help 13 This selects whether you want to include the driver for the standard 14 serial ports. The standard answer is Y. People who might say N 15 here are those that are setting up dedicated Ethernet WWW/FTP 16 servers, or users that have one of the various bus mice instead of a 17 serial mouse and don't intend to use their machine's standard serial 18 port for anything. 19 20 To compile this driver as a module, choose M here: the 21 module will be called 8250. 22 [WARNING: Do not compile this driver as a module if you are using 23 non-standard serial ports, since the configuration information will 24 be lost when the driver is unloaded. This limitation may be lifted 25 in the future.] 26 27 BTW1: If you have a mouseman serial mouse which is not recognized by 28 the X window system, try running gpm first. 29 30 BTW2: If you intend to use a software modem (also called Winmodem) 31 under Linux, forget it. These modems are crippled and require 32 proprietary drivers which are only available under Windows. 33 34 Most people will say Y or M here, so that they can use serial mice, 35 modems and similar devices connecting to the standard serial ports. 36 37config SERIAL_8250_PNP 38 bool "8250/16550 PNP device support" if EXPERT 39 depends on SERIAL_8250 && PNP 40 default y 41 help 42 This builds standard PNP serial support. You may be able to 43 disable this feature if you only need legacy serial support. 44 45config SERIAL_8250_16550A_VARIANTS 46 bool "Support for variants of the 16550A serial port" 47 depends on SERIAL_8250 48 default !X86 49 help 50 The 8250 driver can probe for many variants of the venerable 16550A 51 serial port. Doing so takes additional time at boot. 52 53 On modern systems, especially those using serial only for a simple 54 console, you can say N here. 55 56config SERIAL_8250_FINTEK 57 bool "Support for Fintek variants" 58 depends on SERIAL_8250 && HAS_IOPORT 59 help 60 Selecting this option will add support for the RS232 and RS485 61 capabilities of the Fintek F81216A LPC to 4 UART as well similar 62 variants. 63 64 If this option is not selected the device will be configured as a 65 standard 16550A serial port, however the device may not function 66 correctly without this option enabled. 67 68 If unsure, say N. 69 70config SERIAL_8250_CONSOLE 71 bool "Console on 8250/16550 and compatible serial port" 72 depends on SERIAL_8250=y 73 select SERIAL_CORE_CONSOLE 74 select SERIAL_EARLYCON 75 help 76 If you say Y here, it will be possible to use a serial port as the 77 system console (the system console is the device which receives all 78 kernel messages and warnings and which allows logins in single user 79 mode). This could be useful if some terminal or printer is connected 80 to that serial port. 81 82 Even if you say Y here, the currently visible virtual console 83 (/dev/tty0) will still be used as the system console by default, but 84 you can alter that using a kernel command line option such as 85 "console=ttyS1". (Try "man bootparam" or see the documentation of 86 your boot loader (grub or lilo or loadlin) about how to pass options 87 to the kernel at boot time.) 88 89 If you don't have a VGA card installed and you say Y here, the 90 kernel will automatically use the first serial line, /dev/ttyS0, as 91 system console. 92 93 You can set that using a kernel command line option such as 94 "console=uart8250,io,0x3f8,9600n8" 95 "console=uart8250,mmio,0xff5e0000,115200n8". 96 and it will switch to normal serial console when the corresponding 97 port is ready. 98 "earlycon=uart8250,io,0x3f8,9600n8" 99 "earlycon=uart8250,mmio,0xff5e0000,115200n8". 100 it will not only setup early console. 101 102 If unsure, say N. 103 104config SERIAL_8250_PARISC 105 tristate 106 depends on SERIAL_8250 && PARISC 107 default SERIAL_8250 108 109config SERIAL_8250_DMA 110 bool "DMA support for 16550 compatible UART controllers" if EXPERT 111 depends on SERIAL_8250 && DMADEVICES=y 112 default SERIAL_8250 113 help 114 This builds DMA support that can be used with 8250/16650 115 compatible UART controllers that support DMA signaling. 116 117config SERIAL_8250_PCILIB 118 bool 119 depends on SERIAL_8250 && PCI 120 121config SERIAL_8250_PCI 122 tristate "8250/16550 PCI device support" 123 depends on SERIAL_8250 && PCI 124 select SERIAL_8250_PCILIB 125 default SERIAL_8250 126 help 127 This builds standard PCI serial support. You may be able to 128 disable this feature if you only need legacy serial support. 129 Saves about 9K. 130 Note that serial ports on NetMos 9835 Multi-I/O cards are handled 131 by the parport_serial driver, enabled with CONFIG_PARPORT_SERIAL. 132 133config SERIAL_8250_EXAR 134 tristate "8250/16550 Exar/Commtech PCI/PCIe device support" 135 depends on SERIAL_8250 && PCI 136 select SERIAL_8250_PCILIB 137 select EEPROM_93CX6 138 default SERIAL_8250 139 help 140 This builds support for XR17C1xx, XR17V3xx and some Commtech 141 422x PCIe serial cards that are not covered by the more generic 142 SERIAL_8250_PCI option. 143 144config SERIAL_8250_HP300 145 tristate 146 depends on SERIAL_8250 && HP300 147 default SERIAL_8250 148 149config SERIAL_8250_CS 150 tristate "8250/16550 PCMCIA device support" 151 depends on PCMCIA && SERIAL_8250 && HAS_IOPORT 152 help 153 Say Y here to enable support for 16-bit PCMCIA serial devices, 154 including serial port cards, modems, and the modem functions of 155 multi-function Ethernet/modem cards. (PCMCIA- or PC-cards are 156 credit-card size devices often used with laptops.) 157 158 To compile this driver as a module, choose M here: the 159 module will be called serial_cs. 160 161 If unsure, say N. 162 163config SERIAL_8250_MEN_MCB 164 tristate "MEN MCB UART device support" 165 depends on MCB && SERIAL_8250 166 help 167 This enables support for FPGA based UARTs found on many MEN 168 boards. This driver enables support for the 16z025, 16z057 169 and 16z125 UARTs. 170 171 To compile this driver as a module, chose M here: the 172 module will be called 8250_men_mcb. 173 174 175config SERIAL_8250_NR_UARTS 176 int "Maximum number of 8250/16550 serial ports" 177 depends on SERIAL_8250 178 default "4" 179 help 180 Set this to the number of serial ports you want the driver 181 to support. This includes any ports discovered via ACPI or 182 PCI enumeration and any ports that may be added at run-time 183 via hot-plug, or any ISA multi-port serial cards. 184 185config SERIAL_8250_RUNTIME_UARTS 186 int "Number of 8250/16550 serial ports to register at runtime" 187 depends on SERIAL_8250 188 range 0 SERIAL_8250_NR_UARTS 189 default "4" 190 help 191 Set this to the maximum number of serial ports you want 192 the kernel to register at boot time. This can be overridden 193 with the module parameter "nr_uarts", or boot-time parameter 194 8250.nr_uarts 195 196config SERIAL_8250_EXTENDED 197 bool "Extended 8250/16550 serial driver options" 198 depends on SERIAL_8250 199 help 200 If you wish to use any non-standard features of the standard "dumb" 201 driver, say Y here. This includes HUB6 support, shared serial 202 interrupts, special multiport support, support for more than the 203 four COM 1/2/3/4 boards, etc. 204 205 Note that the answer to this question won't directly affect the 206 kernel: saying N will just cause the configurator to skip all 207 the questions about serial driver options. If unsure, say N. 208 209config SERIAL_8250_SHARE_IRQ 210 bool "Support for sharing serial interrupts" 211 depends on SERIAL_8250_EXTENDED 212 help 213 Some serial boards have hardware support which allows multiple dumb 214 serial ports on the same board to share a single IRQ. To enable 215 support for this in the serial driver, say Y here. 216 217config SERIAL_8250_DETECT_IRQ 218 bool "Autodetect IRQ on standard ports (unsafe)" 219 depends on SERIAL_8250_EXTENDED 220 help 221 Say Y here if you want the kernel to try to guess which IRQ 222 to use for your serial port. 223 224 This is considered unsafe; it is far better to configure the IRQ in 225 a boot script using the setserial command. 226 227 If unsure, say N. 228 229config SERIAL_8250_RSA 230 bool "Support RSA serial ports" 231 depends on SERIAL_8250_EXTENDED 232 help 233 Say Y here if you have a IODATA RSA-DV II/S ISA card and 234 would like to use its >115kbps speeds. 235 You will need to provide module parameter "probe_rsa", or boot-time 236 parameter 8250.probe_rsa with I/O addresses of this card then. 237 238 If you don't have such card, or if unsure, say N. 239 240config SERIAL_8250_MANY_PORTS 241 bool "Support more than 4 legacy serial ports" 242 depends on SERIAL_8250_EXTENDED 243 help 244 Say Y here if you have dumb serial boards other than the four 245 standard COM 1/2/3/4 ports. This may happen if you have an AST 246 FourPort, Accent Async, Boca (read the Boca mini-HOWTO, available 247 from <https://www.tldp.org/docs.html#howto>), or other custom 248 serial port hardware which acts similar to standard serial port 249 hardware. If you only use the standard COM 1/2/3/4 ports, you can 250 say N here to save some memory. You can also say Y if you have an 251 "intelligent" multiport card such as Digiboards, etc. 252 253# 254# Multi-port serial cards 255# 256 257config SERIAL_8250_FOURPORT 258 tristate "Support Fourport cards" 259 depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS 260 help 261 Say Y here if you have an AST FourPort serial board. 262 263 To compile this driver as a module, choose M here: the module 264 will be called 8250_fourport. 265 266config SERIAL_8250_ACCENT 267 tristate "Support Accent cards" 268 depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS 269 help 270 Say Y here if you have an Accent Async serial board. 271 272 To compile this driver as a module, choose M here: the module 273 will be called 8250_accent. 274 275config SERIAL_8250_BOCA 276 tristate "Support Boca cards" 277 depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS 278 help 279 Say Y here if you have a Boca serial board. Please read the Boca 280 mini-HOWTO, available from <https://www.tldp.org/docs.html#howto> 281 282 To compile this driver as a module, choose M here: the module 283 will be called 8250_boca. 284 285config SERIAL_8250_EXAR_ST16C554 286 tristate "Support Exar ST16C554/554D Quad UART" 287 depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS 288 help 289 The Uplogix Envoy TU301 uses this Exar Quad UART. If you are 290 tinkering with your Envoy TU301, or have a machine with this UART, 291 say Y here. 292 293 To compile this driver as a module, choose M here: the module 294 will be called 8250_exar_st16c554. 295 296config SERIAL_8250_HUB6 297 tristate "Support Hub6 cards" 298 depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS 299 help 300 Say Y here if you have a HUB6 serial board. 301 302 To compile this driver as a module, choose M here: the module 303 will be called 8250_hub6. 304 305config SERIAL_8250_PCI1XXXX 306 tristate "Microchip 8250 based serial port" 307 depends on SERIAL_8250 && PCI 308 select SERIAL_8250_PCILIB 309 help 310 Select this option if you have a setup with Microchip PCIe 311 Switch with serial port enabled and wish to enable 8250 312 serial driver for the serial interface. This driver support 313 will ensure to support baud rates upto 1.5Mpbs. 314 315config SERIAL_8250_ASPEED_VUART 316 tristate "Aspeed Virtual UART" 317 depends on SERIAL_8250 318 depends on OF 319 depends on MFD_SYSCON 320 depends on ARCH_ASPEED || COMPILE_TEST 321 select REGMAP 322 help 323 If you want to use the virtual UART (VUART) device on Aspeed 324 BMC platforms, enable this option. This enables the 16550A- 325 compatible device on the local LPC bus, giving a UART device 326 with no physical RS232 connections. 327 328# 329# Misc. options/drivers. 330# 331 332config SERIAL_8250_ACORN 333 tristate "Acorn expansion card serial port support" 334 depends on ARCH_ACORN && SERIAL_8250 335 help 336 If you have an Atomwide Serial card or Serial Port card for an Acorn 337 system, say Y to this option. The driver can handle 1, 2, or 3 port 338 cards. If unsure, say N. 339 340config SERIAL_8250_BCM2835AUX 341 tristate "BCM2835 auxiliar mini UART support" 342 depends on ARCH_BCM2835 || COMPILE_TEST 343 depends on SERIAL_8250 && SERIAL_8250_SHARE_IRQ 344 help 345 Support for the BCM2835 auxiliar mini UART. 346 347 Features and limitations of the UART are 348 Registers are similar to 16650 registers, 349 set bits in the control registers that are unsupported 350 are ignored and read back as 0 351 7/8 bit operation with 1 start and 1 stop bit 352 8 symbols deep fifo for rx and tx 353 SW controlled RTS and SW readable CTS 354 Clock rate derived from system clock 355 Uses 8 times oversampling (compared to 16 times for 16650) 356 Missing break detection (but break generation) 357 Missing framing error detection 358 Missing parity bit 359 Missing receive time-out interrupt 360 Missing DCD, DSR, DTR and RI signals 361 362 If unsure, say N. 363 364config SERIAL_8250_FSL 365 tristate "Freescale 16550 UART support" if COMPILE_TEST && !(PPC || ARM || ARM64) 366 depends on SERIAL_8250 367 default SERIAL_8250 if PPC || ARM || ARM64 368 help 369 Selecting this option enables a workaround for a break-detection 370 erratum for Freescale 16550 UARTs in the 8250 driver. It also 371 enables support for ACPI enumeration. 372 373config SERIAL_8250_DFL 374 tristate "DFL bus driver for Altera 16550 UART" 375 depends on SERIAL_8250 && FPGA_DFL 376 help 377 This option enables support for a Device Feature List (DFL) bus 378 driver for the Altera 16550 UART. One or more Altera 16550 UARTs 379 can be instantiated in a FPGA and then be discovered during 380 enumeration of the DFL bus. 381 382 To compile this driver as a module, chose M here: the 383 module will be called 8250_dfl. 384 385config SERIAL_8250_DW 386 tristate "Support for Synopsys DesignWare 8250 quirks" 387 depends on SERIAL_8250 388 select SERIAL_8250_DWLIB 389 help 390 Selecting this option will enable handling of the extra features 391 present in the Synopsys DesignWare APB UART. 392 393config SERIAL_8250_EM 394 tristate "Support for Emma Mobile integrated serial port" 395 depends on SERIAL_8250 && HAVE_CLK 396 depends on ARCH_RENESAS || COMPILE_TEST 397 help 398 Selecting this option will add support for the integrated serial 399 port hardware found on the Emma Mobile line of processors. 400 If unsure, say N. 401 402config SERIAL_8250_IOC3 403 tristate "SGI IOC3 8250 UART support" 404 depends on SERIAL_8250 405 depends on SGI_MFD_IOC3 || COMPILE_TEST 406 select SERIAL_8250_EXTENDED 407 select SERIAL_8250_SHARE_IRQ 408 help 409 Enable this if you have a SGI Origin or Octane machine. This module 410 provides basic serial support by directly driving the UART chip 411 behind the IOC3 device on those systems. Maximum baud speed is 412 38400bps using this driver. 413 414config SERIAL_8250_KEBA 415 tristate "Support for KEBA 8250 UART" 416 depends on SERIAL_8250 417 depends on KEBA_CP500 418 help 419 Selecting this option will add support for KEBA UARTs. These UARTs 420 are used for the serial interfaces of KEBA PLCs. 421 422 This driver can also be built as a module. If so, the module will 423 be called 8250_keba. 424 425 If unsure, say N. 426 427config SERIAL_8250_RT288X 428 bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support" 429 depends on SERIAL_8250 430 default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620 431 help 432 Selecting this option will add support for the alternate register 433 layout used by Ralink RT288x/RT305x, Alchemy Au1xxx, and some others. 434 If unsure, say N. 435 436config SERIAL_8250_OMAP 437 tristate "Support for OMAP internal UART (8250 based driver)" 438 depends on SERIAL_8250 439 depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST 440 help 441 If you have a machine based on an Texas Instruments OMAP CPU you 442 can enable its onboard serial ports by enabling this option. 443 444 This driver uses ttyS instead of ttyO. 445 446config SERIAL_8250_OMAP_TTYO_FIXUP 447 bool "Replace ttyO with ttyS" 448 depends on SERIAL_8250_OMAP=y && SERIAL_8250_CONSOLE 449 default y 450 help 451 This option replaces the "console=ttyO" argument with the matching 452 ttyS argument if the user did not specified it on the command line. 453 This ensures that the user can see the kernel output during boot 454 which he wouldn't see otherwise. The getty has still to be configured 455 for ttyS instead of ttyO regardless of this option. 456 This option is intended for people who "automatically" enable this 457 driver without knowing that this driver requires a different console= 458 argument. If you read this, please keep this option disabled and 459 instead update your kernel command line. If you prepare a kernel for a 460 distribution or other kind of larger user base then you probably want 461 to keep this option enabled. Otherwise people might complain about a 462 not booting kernel because the serial console remains silent in case 463 they forgot to update the command line. 464 465config SERIAL_8250_LOONGSON 466 tristate "Loongson 8250 based serial port" 467 depends on SERIAL_8250 468 depends on LOONGARCH || COMPILE_TEST 469 help 470 If you have a machine based on LoongArch CPU you can enable 471 its onboard serial ports by enabling this option. The option 472 is applicable to both devicetree and ACPI, say Y to this option. 473 If unsure, say N. 474 475config SERIAL_8250_LPC18XX 476 tristate "NXP LPC18xx/43xx serial port support" 477 depends on SERIAL_8250 && OF && (ARCH_LPC18XX || COMPILE_TEST) 478 default ARCH_LPC18XX 479 help 480 If you have a LPC18xx/43xx based board and want to use the 481 serial port, say Y to this option. If unsure, say Y. 482 483config SERIAL_8250_MT6577 484 tristate "Mediatek serial port support" 485 depends on SERIAL_8250 486 depends on ARCH_MEDIATEK || COMPILE_TEST 487 help 488 If you have a Mediatek based board and want to use the 489 serial port, say Y to this option. If unsure, say N. 490 491config SERIAL_8250_UNIPHIER 492 tristate "Support for UniPhier on-chip UART" 493 depends on SERIAL_8250 494 depends on ARCH_UNIPHIER || COMPILE_TEST 495 help 496 If you have a UniPhier based board and want to use the on-chip 497 serial ports, say Y to this option. If unsure, say N. 498 499config SERIAL_8250_INGENIC 500 tristate "Support for Ingenic SoC serial ports" 501 depends on SERIAL_8250 502 depends on OF_FLATTREE 503 depends on MIPS || COMPILE_TEST 504 help 505 If you have a system using an Ingenic SoC and wish to make use of 506 its UARTs, say Y to this option. If unsure, say N. 507 508config SERIAL_8250_LPSS 509 tristate "Support for serial ports on Intel LPSS platforms" 510 default SERIAL_8250 511 depends on SERIAL_8250 && PCI 512 depends on X86 || COMPILE_TEST 513 select SERIAL_8250_DWLIB 514 select DW_DMAC_CORE if SERIAL_8250_DMA 515 select DW_DMAC_PCI if (SERIAL_8250_DMA && X86_INTEL_LPSS) 516 select RATIONAL 517 help 518 Selecting this option will enable handling of the UART found on 519 various Intel platforms such as: 520 - Intel Baytrail SoC 521 - Intel Braswell SoC 522 - Intel Quark X1000 SoC 523 that are not covered by the more generic SERIAL_8250_PCI option. 524 525config SERIAL_8250_MID 526 tristate "Support for serial ports on Intel MID platforms" 527 default SERIAL_8250 528 depends on SERIAL_8250 && PCI 529 depends on X86 || COMPILE_TEST 530 select HSU_DMA if SERIAL_8250_DMA 531 select HSU_DMA_PCI if (HSU_DMA && X86_INTEL_MID) 532 select RATIONAL 533 help 534 Selecting this option will enable handling of the UART found on 535 Intel Medfield SOC and various other Intel platforms that is not 536 covered by the more generic SERIAL_8250_PCI option. 537 538config SERIAL_8250_PERICOM 539 tristate "Support for Pericom and Acces I/O serial ports" 540 default SERIAL_8250 541 depends on SERIAL_8250 && PCI 542 help 543 Selecting this option will enable handling of the Pericom and Acces 544 I/O UARTs that are not covered by the more generic SERIAL_8250_PCI 545 option. 546 547config SERIAL_8250_PXA 548 tristate "PXA serial port support" 549 depends on SERIAL_8250 550 depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST 551 help 552 If you have a machine based on an Intel XScale PXA2xx CPU you can 553 enable its onboard serial ports by enabling this option. The option is 554 applicable to both devicetree and legacy boards, and early console is 555 part of its support. 556 557config SERIAL_8250_TEGRA 558 tristate "8250 support for Tegra serial ports" 559 default SERIAL_8250 560 depends on SERIAL_8250 561 depends on ARCH_TEGRA || COMPILE_TEST 562 help 563 Select this option if you have machine with an NVIDIA Tegra SoC and 564 wish to enable 8250 serial driver for the Tegra serial interfaces. 565 566config SERIAL_8250_BCM7271 567 tristate "Broadcom 8250 based serial port" 568 depends on SERIAL_8250 && (ARCH_BRCMSTB || COMPILE_TEST) 569 default ARCH_BRCMSTB 570 help 571 If you have a Broadcom STB based board and want to use the 572 enhanced features of the Broadcom 8250 based serial port, 573 including DMA support and high accuracy BAUD rates, say 574 Y to this option. If unsure, say N. 575 576config SERIAL_8250_NI 577 tristate "NI 16550 based serial port" 578 depends on SERIAL_8250 579 depends on X86 || COMPILE_TEST 580 help 581 This driver supports the integrated serial ports on National 582 Instruments (NI) controller hardware. This is required for all NI 583 controller models with onboard RS-485 or dual-mode RS-485/RS-232 584 ports. 585 586 To compile this driver as a module, choose M here: the module 587 will be called 8250_ni. 588 589config SERIAL_OF_PLATFORM 590 tristate "Devicetree based probing for 8250 ports" 591 depends on SERIAL_8250 && OF 592 help 593 This option is used for all 8250 compatible serial ports that 594 are probed through devicetree, including Open Firmware based 595 PowerPC systems and embedded systems on architectures using the 596 flattened device tree format. 597 598config SERIAL_8250_DWLIB 599 bool 600