fbdev: Garbage collect fbdev scrolling acceleration, part 1 (from TODO list)
[linux-2.6-microblaze.git] / drivers / tty / serial / 8250 / Kconfig
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
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.
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
37 config 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
54 config 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
62 config 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
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.
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
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.
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
119 config SERIAL_8250_GSC
120         tristate
121         depends on SERIAL_8250 && GSC
122         default SERIAL_8250
123
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.
131
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.
142
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.
151
152 config SERIAL_8250_HP300
153         tristate
154         depends on SERIAL_8250 && HP300
155         default SERIAL_8250
156
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.)
165
166           To compile this driver as a module, choose M here: the
167           module will be called serial_cs.
168
169           If unsure, say N.
170
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.
178
179           To compile this driver as a module, chose M here: the
180           module will be called 8250_men_mcb.
181
182
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.
192
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
203
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.
212
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.
216
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 <https://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 Digiboards, etc.
229
230 #
231 # Multi-port serial cards
232 #
233
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.
239
240           To compile this driver as a module, choose M here: the module
241           will be called 8250_fourport.
242
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.
248
249           To compile this driver as a module, choose M here: the module
250           will be called 8250_accent.
251
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.
262
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 <https://www.tldp.org/docs.html#howto>
269
270           To compile this driver as a module, choose M here: the module
271           will be called 8250_boca.
272
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.
280
281           To compile this driver as a module, choose M here: the module
282           will be called 8250_exar_st16c554.
283
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.
289
290           To compile this driver as a module, choose M here: the module
291           will be called 8250_hub6.
292
293 #
294 # Misc. options/drivers.
295 #
296
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.
304
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.
311
312           This is considered unsafe; it is far better to configure the IRQ in
313           a boot script using the setserial command.
314
315           If unsure, say N.
316
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.
325
326           If you don't have such card, or if unsure, say N.
327
328 config SERIAL_8250_DWLIB
329         bool
330
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.
338
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.
345
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
360
361           If unsure, say N.
362
363 config SERIAL_8250_FSL
364         bool
365         depends on SERIAL_8250_CONSOLE
366         default PPC || ARM || ARM64 || COMPILE_TEST
367
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.
375
376 config SERIAL_8250_EM
377         tristate "Support for Emma Mobile integrated serial port"
378         depends on SERIAL_8250 && HAVE_CLK
379         depends on ARM || COMPILE_TEST
380         help
381           Selecting this option will add support for the integrated serial
382           port hardware found on the Emma Mobile line of processors.
383           If unsure, say N.
384
385 config SERIAL_8250_IOC3
386         tristate "SGI IOC3 8250 UART support"
387         depends on SERIAL_8250
388         depends on SGI_MFD_IOC3 || COMPILE_TEST
389         select SERIAL_8250_EXTENDED
390         select SERIAL_8250_SHARE_IRQ
391         help
392           Enable this if you have a SGI Origin or Octane machine. This module
393           provides basic serial support by directly driving the UART chip
394           behind the IOC3 device on those systems.  Maximum baud speed is
395           38400bps using this driver.
396
397 config SERIAL_8250_RT288X
398         bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
399         depends on SERIAL_8250
400         default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
401         help
402           Selecting this option will add support for the alternate register
403           layout used by Ralink RT288x/RT305x, Alchemy Au1xxx, and some others.
404           If unsure, say N.
405
406 config SERIAL_8250_OMAP
407         tristate "Support for OMAP internal UART (8250 based driver)"
408         depends on SERIAL_8250
409         depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
410         help
411           If you have a machine based on an Texas Instruments OMAP CPU you
412           can enable its onboard serial ports by enabling this option.
413
414           This driver uses ttyS instead of ttyO.
415
416 config SERIAL_8250_OMAP_TTYO_FIXUP
417         bool "Replace ttyO with ttyS"
418         depends on SERIAL_8250_OMAP=y && SERIAL_8250_CONSOLE
419         default y
420         help
421           This option replaces the "console=ttyO" argument with the matching
422           ttyS argument if the user did not specified it on the command line.
423           This ensures that the user can see the kernel output during boot
424           which he wouldn't see otherwise. The getty has still to be configured
425           for ttyS instead of ttyO regardless of this option.
426           This option is intended for people who "automatically" enable this
427           driver without knowing that this driver requires a different console=
428           argument. If you read this, please keep this option disabled and
429           instead update your kernel command line. If you prepare a kernel for a
430           distribution or other kind of larger user base then you probably want
431           to keep this option enabled. Otherwise people might complain about a
432           not booting kernel because the serial console remains silent in case
433           they forgot to update the command line.
434
435 config SERIAL_8250_LPC18XX
436         tristate "NXP LPC18xx/43xx serial port support"
437         depends on SERIAL_8250 && OF && (ARCH_LPC18XX || COMPILE_TEST)
438         default ARCH_LPC18XX
439         help
440           If you have a LPC18xx/43xx based board and want to use the
441           serial port, say Y to this option. If unsure, say Y.
442
443 config SERIAL_8250_MT6577
444         tristate "Mediatek serial port support"
445         depends on SERIAL_8250
446         depends on ARCH_MEDIATEK || COMPILE_TEST
447         help
448           If you have a Mediatek based board and want to use the
449           serial port, say Y to this option. If unsure, say N.
450
451 config SERIAL_8250_UNIPHIER
452         tristate "Support for UniPhier on-chip UART"
453         depends on SERIAL_8250
454         depends on ARCH_UNIPHIER || COMPILE_TEST
455         help
456           If you have a UniPhier based board and want to use the on-chip
457           serial ports, say Y to this option. If unsure, say N.
458
459 config SERIAL_8250_INGENIC
460         tristate "Support for Ingenic SoC serial ports"
461         depends on SERIAL_8250
462         depends on OF_FLATTREE
463         depends on MIPS || COMPILE_TEST
464         help
465           If you have a system using an Ingenic SoC and wish to make use of
466           its UARTs, say Y to this option. If unsure, say N.
467
468 config SERIAL_8250_LPSS
469         tristate "Support for serial ports on Intel LPSS platforms"
470         default SERIAL_8250
471         depends on SERIAL_8250 && PCI
472         depends on X86 || COMPILE_TEST
473         select SERIAL_8250_DWLIB
474         select DW_DMAC_CORE if SERIAL_8250_DMA
475         select DW_DMAC_PCI if (SERIAL_8250_DMA && X86_INTEL_LPSS)
476         select RATIONAL
477         help
478           Selecting this option will enable handling of the extra features
479           present on the UART found on various Intel platforms such as:
480             - Intel Baytrail SoC
481             - Intel Braswell SoC
482             - Intel Quark X1000 SoC
483
484 config SERIAL_8250_MID
485         tristate "Support for serial ports on Intel MID platforms"
486         default SERIAL_8250
487         depends on SERIAL_8250 && PCI
488         depends on X86 || COMPILE_TEST
489         select HSU_DMA if SERIAL_8250_DMA
490         select HSU_DMA_PCI if (HSU_DMA && X86_INTEL_MID)
491         select RATIONAL
492         help
493           Selecting this option will enable handling of the extra features
494           present on the UART found on Intel Medfield SOC and various other
495           Intel platforms.
496
497 config SERIAL_8250_PXA
498         tristate "PXA serial port support"
499         depends on SERIAL_8250
500         depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
501         help
502           If you have a machine based on an Intel XScale PXA2xx CPU you can
503           enable its onboard serial ports by enabling this option. The option is
504           applicable to both devicetree and legacy boards, and early console is
505           part of its support.
506
507 config SERIAL_8250_TEGRA
508         tristate "8250 support for Tegra serial ports"
509         default SERIAL_8250
510         depends on SERIAL_8250
511         depends on ARCH_TEGRA || COMPILE_TEST
512         help
513           Select this option if you have machine with an NVIDIA Tegra SoC and
514           wish to enable 8250 serial driver for the Tegra serial interfaces.
515
516 config SERIAL_8250_BCM7271
517         tristate "Broadcom 8250 based serial port"
518         depends on SERIAL_8250 && (ARCH_BRCMSTB || COMPILE_TEST)
519         default ARCH_BRCMSTB
520         help
521           If you have a Broadcom STB based board and want to use the
522           enhanced features of the Broadcom 8250 based serial port,
523           including DMA support and high accuracy BAUD rates, say
524           Y to this option. If unsure, say N.
525
526 config SERIAL_OF_PLATFORM
527         tristate "Devicetree based probing for 8250 ports"
528         depends on SERIAL_8250 && OF
529         help
530           This option is used for all 8250 compatible serial ports that
531           are probed through devicetree, including Open Firmware based
532           PowerPC systems and embedded systems on architectures using the
533           flattened device tree format.