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