treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / drivers / tty / serial / 8250 / Kconfig
blobf16824bbb5738137bc5121d1fa23988fb78e8b87
1 # SPDX-License-Identifier: GPL-2.0
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.
7 config 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.  (Note that the Cyclades multi serial port driver
19           does not need this driver built in for it to work.)
21           To compile this driver as a module, choose M here: the
22           module will be called 8250.
23           [WARNING: Do not compile this driver as a module if you are using
24           non-standard serial ports, since the configuration information will
25           be lost when the driver is unloaded.  This limitation may be lifted
26           in the future.]
28           BTW1: If you have a mouseman serial mouse which is not recognized by
29           the X window system, try running gpm first.
31           BTW2: If you intend to use a software modem (also called Winmodem)
32           under Linux, forget it.  These modems are crippled and require
33           proprietary drivers which are only available under Windows.
35           Most people will say Y or M here, so that they can use serial mice,
36           modems and similar devices connecting to the standard serial ports.
38 config SERIAL_8250_DEPRECATED_OPTIONS
39         bool "Support 8250_core.* kernel options (DEPRECATED)"
40         depends on SERIAL_8250
41         default y
42         ---help---
43           In 3.7 we renamed 8250 to 8250_core by mistake, so now we have to
44           accept kernel parameters in both forms like 8250_core.nr_uarts=4 and
45           8250.nr_uarts=4. We now renamed the module back to 8250, but if
46           anybody noticed in 3.7 and changed their userspace we still have to
47           keep the 8250_core.* options around until they revert the changes
48           they already did.
50           If 8250 is built as a module, this adds 8250_core alias instead. 
52           If you did not notice yet and/or you have userspace from pre-3.7, it
53           is safe (and recommended) to say N here.
55 config SERIAL_8250_PNP
56         bool "8250/16550 PNP device support" if EXPERT
57         depends on SERIAL_8250 && PNP
58         default y
59         ---help---
60           This builds standard PNP serial support. You may be able to
61           disable this feature if you only need legacy serial support.
63 config SERIAL_8250_16550A_VARIANTS
64         bool "Support for variants of the 16550A serial port"
65         depends on SERIAL_8250
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.
70           On modern systems, especially those using serial only for a simple
71           console, you can say N here.
73 config 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.
80           If this option is not selected the device will be configured as a
81           standard 16550A serial port.
83           If unsure, say N.
85 config 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.
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.)
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.
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.
117           If unsure, say N.
119 config SERIAL_8250_GSC
120         tristate
121         depends on SERIAL_8250 && GSC
122         default SERIAL_8250
124 config 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.
132 config SERIAL_8250_PCI
133         tristate "8250/16550 PCI device support"
134         depends on SERIAL_8250 && PCI
135         default SERIAL_8250
136         help
137           This builds standard PCI serial support. You may be able to
138           disable this feature if you only need legacy serial support.
139           Saves about 9K.
140           Note that serial ports on NetMos 9835 Multi-I/O cards are handled
141           by the parport_serial driver, enabled with CONFIG_PARPORT_SERIAL.
143 config SERIAL_8250_EXAR
144         tristate "8250/16550 Exar/Commtech PCI/PCIe device support"
145         depends on SERIAL_8250_PCI
146         default SERIAL_8250
147         help
148           This builds support for XR17C1xx, XR17V3xx and some Commtech
149           422x PCIe serial cards that are not covered by the more generic
150           SERIAL_8250_PCI option.
152 config SERIAL_8250_HP300
153         tristate
154         depends on SERIAL_8250 && HP300
155         default SERIAL_8250
157 config SERIAL_8250_CS
158         tristate "8250/16550 PCMCIA device support"
159         depends on PCMCIA && SERIAL_8250
160         ---help---
161           Say Y here to enable support for 16-bit PCMCIA serial devices,
162           including serial port cards, modems, and the modem functions of
163           multi-function Ethernet/modem cards. (PCMCIA- or PC-cards are
164           credit-card size devices often used with laptops.)
166           To compile this driver as a module, choose M here: the
167           module will be called serial_cs.
169           If unsure, say N.
171 config SERIAL_8250_MEN_MCB
172         tristate "MEN MCB UART device support"
173         depends on MCB && SERIAL_8250
174         help
175           This enables support for FPGA based UARTs found on many MEN
176           boards. This driver enables support for the 16z025, 16z057
177           and 16z125 UARTs.
179           To compile this driver as a module, chose M here: the
180           module will be called 8250_men_mcb.
183 config SERIAL_8250_NR_UARTS
184         int "Maximum number of 8250/16550 serial ports"
185         depends on SERIAL_8250
186         default "4"
187         help
188           Set this to the number of serial ports you want the driver
189           to support.  This includes any ports discovered via ACPI or
190           PCI enumeration and any ports that may be added at run-time
191           via hot-plug, or any ISA multi-port serial cards.
193 config SERIAL_8250_RUNTIME_UARTS
194         int "Number of 8250/16550 serial ports to register at runtime"
195         depends on SERIAL_8250
196         range 0 SERIAL_8250_NR_UARTS
197         default "4"
198         help
199           Set this to the maximum number of serial ports you want
200           the kernel to register at boot time.  This can be overridden
201           with the module parameter "nr_uarts", or boot-time parameter
202           8250.nr_uarts
204 config SERIAL_8250_EXTENDED
205         bool "Extended 8250/16550 serial driver options"
206         depends on SERIAL_8250
207         help
208           If you wish to use any non-standard features of the standard "dumb"
209           driver, say Y here. This includes HUB6 support, shared serial
210           interrupts, special multiport support, support for more than the
211           four COM 1/2/3/4 boards, etc.
213           Note that the answer to this question won't directly affect the
214           kernel: saying N will just cause the configurator to skip all
215           the questions about serial driver options. If unsure, say N.
217 config SERIAL_8250_MANY_PORTS
218         bool "Support more than 4 legacy serial ports"
219         depends on SERIAL_8250_EXTENDED && !IA64
220         help
221           Say Y here if you have dumb serial boards other than the four
222           standard COM 1/2/3/4 ports. This may happen if you have an AST
223           FourPort, Accent Async, Boca (read the Boca mini-HOWTO, available
224           from <http://www.tldp.org/docs.html#howto>), or other custom
225           serial port hardware which acts similar to standard serial port
226           hardware. If you only use the standard COM 1/2/3/4 ports, you can
227           say N here to save some memory. You can also say Y if you have an
228           "intelligent" multiport card such as Cyclades, Digiboards, etc.
231 # Multi-port serial cards
234 config SERIAL_8250_FOURPORT
235         tristate "Support Fourport cards"
236         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
237         help
238           Say Y here if you have an AST FourPort serial board.
240           To compile this driver as a module, choose M here: the module
241           will be called 8250_fourport.
243 config SERIAL_8250_ACCENT
244         tristate "Support Accent cards"
245         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
246         help
247           Say Y here if you have an Accent Async serial board.
249           To compile this driver as a module, choose M here: the module
250           will be called 8250_accent.
252 config SERIAL_8250_ASPEED_VUART
253         tristate "Aspeed Virtual UART"
254         depends on SERIAL_8250
255         depends on OF
256         depends on REGMAP && MFD_SYSCON
257         help
258           If you want to use the virtual UART (VUART) device on Aspeed
259           BMC platforms, enable this option. This enables the 16550A-
260           compatible device on the local LPC bus, giving a UART device
261           with no physical RS232 connections.
263 config SERIAL_8250_BOCA
264         tristate "Support Boca cards"
265         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
266         help
267           Say Y here if you have a Boca serial board.  Please read the Boca
268           mini-HOWTO, available from <http://www.tldp.org/docs.html#howto>
270           To compile this driver as a module, choose M here: the module
271           will be called 8250_boca.
273 config SERIAL_8250_EXAR_ST16C554
274         tristate "Support Exar ST16C554/554D Quad UART"
275         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
276         help
277           The Uplogix Envoy TU301 uses this Exar Quad UART.  If you are
278           tinkering with your Envoy TU301, or have a machine with this UART,
279           say Y here.
281           To compile this driver as a module, choose M here: the module
282           will be called 8250_exar_st16c554.
284 config SERIAL_8250_HUB6
285         tristate "Support Hub6 cards"
286         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
287         help
288           Say Y here if you have a HUB6 serial board.
290           To compile this driver as a module, choose M here: the module
291           will be called 8250_hub6.
294 # Misc. options/drivers.
297 config SERIAL_8250_SHARE_IRQ
298         bool "Support for sharing serial interrupts"
299         depends on SERIAL_8250_EXTENDED
300         help
301           Some serial boards have hardware support which allows multiple dumb
302           serial ports on the same board to share a single IRQ. To enable
303           support for this in the serial driver, say Y here.
305 config SERIAL_8250_DETECT_IRQ
306         bool "Autodetect IRQ on standard ports (unsafe)"
307         depends on SERIAL_8250_EXTENDED
308         help
309           Say Y here if you want the kernel to try to guess which IRQ
310           to use for your serial port.
312           This is considered unsafe; it is far better to configure the IRQ in
313           a boot script using the setserial command.
315           If unsure, say N.
317 config SERIAL_8250_RSA
318         bool "Support RSA serial ports"
319         depends on SERIAL_8250_EXTENDED
320         help
321           Say Y here if you have a IODATA RSA-DV II/S ISA card and
322           would like to use its >115kbps speeds.
323           You will need to provide module parameter "probe_rsa", or boot-time
324           parameter 8250.probe_rsa with I/O addresses of this card then.
326           If you don't have such card, or if unsure, say N.
328 config SERIAL_8250_DWLIB
329         bool
331 config SERIAL_8250_ACORN
332         tristate "Acorn expansion card serial port support"
333         depends on ARCH_ACORN && SERIAL_8250
334         help
335           If you have an Atomwide Serial card or Serial Port card for an Acorn
336           system, say Y to this option.  The driver can handle 1, 2, or 3 port
337           cards.  If unsure, say N.
339 config SERIAL_8250_BCM2835AUX
340         tristate "BCM2835 auxiliar mini UART support"
341         depends on ARCH_BCM2835 || COMPILE_TEST
342         depends on SERIAL_8250 && SERIAL_8250_SHARE_IRQ
343         help
344           Support for the BCM2835 auxiliar mini UART.
346           Features and limitations of the UART are
347             Registers are similar to 16650 registers,
348               set bits in the control registers that are unsupported
349               are ignored and read back as 0
350             7/8 bit operation with 1 start and 1 stop bit
351             8 symbols deep fifo for rx and tx
352             SW controlled RTS and SW readable CTS
353             Clock rate derived from system clock
354             Uses 8 times oversampling (compared to 16 times for 16650)
355             Missing break detection (but break generation)
356             Missing framing error detection
357             Missing parity bit
358             Missing receive time-out interrupt
359             Missing DCD, DSR, DTR and RI signals
361           If unsure, say N.
363 config SERIAL_8250_FSL
364         bool
365         depends on SERIAL_8250_CONSOLE
366         default PPC || ARM || ARM64
368 config SERIAL_8250_DW
369         tristate "Support for Synopsys DesignWare 8250 quirks"
370         depends on SERIAL_8250
371         select SERIAL_8250_DWLIB
372         help
373           Selecting this option will enable handling of the extra features
374           present in the Synopsys DesignWare APB UART.
376 config SERIAL_8250_EM
377         tristate "Support for Emma Mobile integrated serial port"
378         depends on SERIAL_8250 && ARM && HAVE_CLK
379         help
380           Selecting this option will add support for the integrated serial
381           port hardware found on the Emma Mobile line of processors.
382           If unsure, say N.
384 config SERIAL_8250_IOC3
385         tristate "SGI IOC3 8250 UART support"
386         depends on SGI_MFD_IOC3 && SERIAL_8250
387         select SERIAL_8250_EXTENDED
388         select SERIAL_8250_SHARE_IRQ
389         help
390           Enable this if you have a SGI Origin or Octane machine. This module
391           provides basic serial support by directly driving the UART chip
392           behind the IOC3 device on those systems.  Maximum baud speed is
393           38400bps using this driver.
395 config SERIAL_8250_RT288X
396         bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
397         depends on SERIAL_8250
398         default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
399         help
400           Selecting this option will add support for the alternate register
401           layout used by Ralink RT288x/RT305x, Alchemy Au1xxx, and some others.
402           If unsure, say N.
404 config SERIAL_8250_OMAP
405         tristate "Support for OMAP internal UART (8250 based driver)"
406         depends on SERIAL_8250 && (ARCH_OMAP2PLUS || ARCH_K3)
407         help
408           If you have a machine based on an Texas Instruments OMAP CPU you
409           can enable its onboard serial ports by enabling this option.
411           This driver uses ttyS instead of ttyO.
413 config SERIAL_8250_OMAP_TTYO_FIXUP
414         bool "Replace ttyO with ttyS"
415         depends on SERIAL_8250_OMAP=y && SERIAL_8250_CONSOLE
416         default y
417         help
418           This option replaces the "console=ttyO" argument with the matching
419           ttyS argument if the user did not specified it on the command line.
420           This ensures that the user can see the kernel output during boot
421           which he wouldn't see otherwise. The getty has still to be configured
422           for ttyS instead of ttyO regardless of this option.
423           This option is intended for people who "automatically" enable this
424           driver without knowing that this driver requires a different console=
425           argument. If you read this, please keep this option disabled and
426           instead update your kernel command line. If you prepare a kernel for a
427           distribution or other kind of larger user base then you probably want
428           to keep this option enabled. Otherwise people might complain about a
429           not booting kernel because the serial console remains silent in case
430           they forgot to update the command line.
432 config SERIAL_8250_LPC18XX
433         tristate "NXP LPC18xx/43xx serial port support"
434         depends on SERIAL_8250 && OF && (ARCH_LPC18XX || COMPILE_TEST)
435         default ARCH_LPC18XX
436         help
437           If you have a LPC18xx/43xx based board and want to use the
438           serial port, say Y to this option. If unsure, say Y.
440 config SERIAL_8250_MT6577
441         tristate "Mediatek serial port support"
442         depends on SERIAL_8250 && ARCH_MEDIATEK
443         help
444           If you have a Mediatek based board and want to use the
445           serial port, say Y to this option. If unsure, say N.
447 config SERIAL_8250_UNIPHIER
448         tristate "Support for UniPhier on-chip UART"
449         depends on SERIAL_8250
450         depends on ARCH_UNIPHIER || COMPILE_TEST
451         help
452           If you have a UniPhier based board and want to use the on-chip
453           serial ports, say Y to this option. If unsure, say N.
455 config SERIAL_8250_INGENIC
456         tristate "Support for Ingenic SoC serial ports"
457         depends on SERIAL_8250
458         depends on OF_FLATTREE
459         depends on MIPS || COMPILE_TEST
460         help
461           If you have a system using an Ingenic SoC and wish to make use of
462           its UARTs, say Y to this option. If unsure, say N.
464 config SERIAL_8250_LPSS
465         tristate "Support for serial ports on Intel LPSS platforms"
466         default SERIAL_8250
467         depends on SERIAL_8250 && PCI
468         depends on X86 || COMPILE_TEST
469         select SERIAL_8250_DWLIB
470         select DW_DMAC_CORE if SERIAL_8250_DMA
471         select DW_DMAC_PCI if (SERIAL_8250_DMA && X86_INTEL_LPSS)
472         select RATIONAL
473         help
474           Selecting this option will enable handling of the extra features
475           present on the UART found on various Intel platforms such as:
476             - Intel Baytrail SoC
477             - Intel Braswell SoC
478             - Intel Quark X1000 SoC
480 config SERIAL_8250_MID
481         tristate "Support for serial ports on Intel MID platforms"
482         default SERIAL_8250
483         depends on SERIAL_8250 && PCI
484         depends on X86 || COMPILE_TEST
485         select HSU_DMA if SERIAL_8250_DMA
486         select HSU_DMA_PCI if (HSU_DMA && X86_INTEL_MID)
487         select RATIONAL
488         help
489           Selecting this option will enable handling of the extra features
490           present on the UART found on Intel Medfield SOC and various other
491           Intel platforms.
493 config SERIAL_8250_PXA
494         tristate "PXA serial port support"
495         depends on SERIAL_8250
496         depends on ARCH_PXA || ARCH_MMP
497         help
498           If you have a machine based on an Intel XScale PXA2xx CPU you can
499           enable its onboard serial ports by enabling this option. The option is
500           applicable to both devicetree and legacy boards, and early console is
501           part of its support.
503 config SERIAL_OF_PLATFORM
504         tristate "Devicetree based probing for 8250 ports"
505         depends on SERIAL_8250 && OF
506         help
507           This option is used for all 8250 compatible serial ports that
508           are probed through devicetree, including Open Firmware based
509           PowerPC systems and embedded systems on architectures using the
510           flattened device tree format.