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