GNU Linux-libre 4.9.337-gnu1
[releases.git] / drivers / tty / serial / 8250 / Kconfig
1 #
2 # The 8250/16550 serial drivers.  You shouldn't be in this list unless
3 # you somehow have an implicit or explicit dependency on SERIAL_8250.
4 #
5
6 config SERIAL_8250
7         tristate "8250/16550 and compatible serial support"
8         select SERIAL_CORE
9         ---help---
10           This selects whether you want to include the driver for the standard
11           serial ports.  The standard answer is Y.  People who might say N
12           here are those that are setting up dedicated Ethernet WWW/FTP
13           servers, or users that have one of the various bus mice instead of a
14           serial mouse and don't intend to use their machine's standard serial
15           port for anything.  (Note that the Cyclades multi serial port driver
16           does not need this driver built in for it to work.)
17
18           To compile this driver as a module, choose M here: the
19           module will be called 8250.
20           [WARNING: Do not compile this driver as a module if you are using
21           non-standard serial ports, since the configuration information will
22           be lost when the driver is unloaded.  This limitation may be lifted
23           in the future.]
24
25           BTW1: If you have a mouseman serial mouse which is not recognized by
26           the X window system, try running gpm first.
27
28           BTW2: If you intend to use a software modem (also called Winmodem)
29           under Linux, forget it.  These modems are crippled and require
30           proprietary drivers which are only available under Windows.
31
32           Most people will say Y or M here, so that they can use serial mice,
33           modems and similar devices connecting to the standard serial ports.
34
35 config SERIAL_8250_DEPRECATED_OPTIONS
36         bool "Support 8250_core.* kernel options (DEPRECATED)"
37         depends on SERIAL_8250
38         default y
39         ---help---
40           In 3.7 we renamed 8250 to 8250_core by mistake, so now we have to
41           accept kernel parameters in both forms like 8250_core.nr_uarts=4 and
42           8250.nr_uarts=4. We now renamed the module back to 8250, but if
43           anybody noticed in 3.7 and changed their userspace we still have to
44           keep the 8250_core.* options around until they revert the changes
45           they already did.
46
47           If 8250 is built as a module, this adds 8250_core alias instead. 
48
49           If you did not notice yet and/or you have userspace from pre-3.7, it
50           is safe (and recommended) to say N here.
51
52 config SERIAL_8250_PNP
53         bool "8250/16550 PNP device support" if EXPERT
54         depends on SERIAL_8250 && PNP
55         default y
56         ---help---
57           This builds standard PNP serial support. You may be able to
58           disable this feature if you only need legacy serial support.
59
60 config SERIAL_8250_FINTEK
61         bool "Support for Fintek F81216A LPC to 4 UART RS485 API"
62         depends on SERIAL_8250
63         ---help---
64           Selecting this option will add support for the RS485 capabilities
65           of the Fintek F81216A LPC to 4 UART.
66
67           If this option is not selected the device will be configured as a
68           standard 16550A serial port.
69
70           If unsure, say N.
71
72 config SERIAL_8250_CONSOLE
73         bool "Console on 8250/16550 and compatible serial port"
74         depends on SERIAL_8250=y
75         select SERIAL_CORE_CONSOLE
76         select SERIAL_EARLYCON
77         ---help---
78           If you say Y here, it will be possible to use a serial port as the
79           system console (the system console is the device which receives all
80           kernel messages and warnings and which allows logins in single user
81           mode). This could be useful if some terminal or printer is connected
82           to that serial port.
83
84           Even if you say Y here, the currently visible virtual console
85           (/dev/tty0) will still be used as the system console by default, but
86           you can alter that using a kernel command line option such as
87           "console=ttyS1". (Try "man bootparam" or see the documentation of
88           your boot loader (grub or lilo or loadlin) about how to pass options
89           to the kernel at boot time.)
90
91           If you don't have a VGA card installed and you say Y here, the
92           kernel will automatically use the first serial line, /dev/ttyS0, as
93           system console.
94
95           You can set that using a kernel command line option such as
96           "console=uart8250,io,0x3f8,9600n8"
97           "console=uart8250,mmio,0xff5e0000,115200n8".
98           and it will switch to normal serial console when the corresponding
99           port is ready.
100           "earlycon=uart8250,io,0x3f8,9600n8"
101           "earlycon=uart8250,mmio,0xff5e0000,115200n8".
102           it will not only setup early console.
103
104           If unsure, say N.
105
106 config SERIAL_8250_GSC
107         tristate
108         depends on SERIAL_8250 && PARISC
109         default SERIAL_8250
110
111 config SERIAL_8250_DMA
112         bool "DMA support for 16550 compatible UART controllers" if EXPERT
113         depends on SERIAL_8250 && DMADEVICES=y
114         default SERIAL_8250
115         help
116           This builds DMA support that can be used with 8250/16650
117           compatible UART controllers that support DMA signaling.
118
119 config SERIAL_8250_PCI
120         tristate "8250/16550 PCI device support" if EXPERT
121         depends on SERIAL_8250 && PCI
122         default SERIAL_8250
123         help
124           This builds standard PCI serial support. You may be able to
125           disable this feature if you only need legacy serial support.
126           Saves about 9K.
127           Note that serial ports on NetMos 9835 Multi-I/O cards are handled
128           by the parport_serial driver, enabled with CONFIG_PARPORT_SERIAL.
129
130 config SERIAL_8250_HP300
131         tristate
132         depends on SERIAL_8250 && HP300
133         default SERIAL_8250
134
135 config SERIAL_8250_CS
136         tristate "8250/16550 PCMCIA device support"
137         depends on PCMCIA && SERIAL_8250
138         ---help---
139           Say Y here to enable support for 16-bit PCMCIA serial devices,
140           including serial port cards, modems, and the modem functions of
141           multi-function Ethernet/modem cards. (PCMCIA- or PC-cards are
142           credit-card size devices often used with laptops.)
143
144           To compile this driver as a module, choose M here: the
145           module will be called serial_cs.
146
147           If unsure, say N.
148
149 config SERIAL_8250_NR_UARTS
150         int "Maximum number of 8250/16550 serial ports"
151         depends on SERIAL_8250
152         default "4"
153         help
154           Set this to the number of serial ports you want the driver
155           to support.  This includes any ports discovered via ACPI or
156           PCI enumeration and any ports that may be added at run-time
157           via hot-plug, or any ISA multi-port serial cards.
158
159 config SERIAL_8250_RUNTIME_UARTS
160         int "Number of 8250/16550 serial ports to register at runtime"
161         depends on SERIAL_8250
162         range 0 SERIAL_8250_NR_UARTS
163         default "4"
164         help
165           Set this to the maximum number of serial ports you want
166           the kernel to register at boot time.  This can be overridden
167           with the module parameter "nr_uarts", or boot-time parameter
168           8250.nr_uarts
169
170 config SERIAL_8250_EXTENDED
171         bool "Extended 8250/16550 serial driver options"
172         depends on SERIAL_8250
173         help
174           If you wish to use any non-standard features of the standard "dumb"
175           driver, say Y here. This includes HUB6 support, shared serial
176           interrupts, special multiport support, support for more than the
177           four COM 1/2/3/4 boards, etc.
178
179           Note that the answer to this question won't directly affect the
180           kernel: saying N will just cause the configurator to skip all
181           the questions about serial driver options. If unsure, say N.
182
183 config SERIAL_8250_MANY_PORTS
184         bool "Support more than 4 legacy serial ports"
185         depends on SERIAL_8250_EXTENDED && !IA64
186         help
187           Say Y here if you have dumb serial boards other than the four
188           standard COM 1/2/3/4 ports. This may happen if you have an AST
189           FourPort, Accent Async, Boca (read the Boca mini-HOWTO, available
190           from <http://www.tldp.org/docs.html#howto>), or other custom
191           serial port hardware which acts similar to standard serial port
192           hardware. If you only use the standard COM 1/2/3/4 ports, you can
193           say N here to save some memory. You can also say Y if you have an
194           "intelligent" multiport card such as Cyclades, Digiboards, etc.
195
196 #
197 # Multi-port serial cards
198 #
199
200 config SERIAL_8250_FOURPORT
201         tristate "Support Fourport cards"
202         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
203         help
204           Say Y here if you have an AST FourPort serial board.
205
206           To compile this driver as a module, choose M here: the module
207           will be called 8250_fourport.
208
209 config SERIAL_8250_ACCENT
210         tristate "Support Accent cards"
211         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
212         help
213           Say Y here if you have an Accent Async serial board.
214
215           To compile this driver as a module, choose M here: the module
216           will be called 8250_accent.
217
218 config SERIAL_8250_BOCA
219         tristate "Support Boca cards"
220         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
221         help
222           Say Y here if you have a Boca serial board.  Please read the Boca
223           mini-HOWTO, available from <http://www.tldp.org/docs.html#howto>
224
225           To compile this driver as a module, choose M here: the module
226           will be called 8250_boca.
227
228 config SERIAL_8250_EXAR_ST16C554
229         tristate "Support Exar ST16C554/554D Quad UART"
230         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
231         help
232           The Uplogix Envoy TU301 uses this Exar Quad UART.  If you are
233           tinkering with your Envoy TU301, or have a machine with this UART,
234           say Y here.
235
236           To compile this driver as a module, choose M here: the module
237           will be called 8250_exar_st16c554.
238
239 config SERIAL_8250_HUB6
240         tristate "Support Hub6 cards"
241         depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
242         help
243           Say Y here if you have a HUB6 serial board.
244
245           To compile this driver as a module, choose M here: the module
246           will be called 8250_hub6.
247
248 #
249 # Misc. options/drivers.
250 #
251
252 config SERIAL_8250_SHARE_IRQ
253         bool "Support for sharing serial interrupts"
254         depends on SERIAL_8250_EXTENDED
255         help
256           Some serial boards have hardware support which allows multiple dumb
257           serial ports on the same board to share a single IRQ. To enable
258           support for this in the serial driver, say Y here.
259
260 config SERIAL_8250_DETECT_IRQ
261         bool "Autodetect IRQ on standard ports (unsafe)"
262         depends on SERIAL_8250_EXTENDED
263         help
264           Say Y here if you want the kernel to try to guess which IRQ
265           to use for your serial port.
266
267           This is considered unsafe; it is far better to configure the IRQ in
268           a boot script using the setserial command.
269
270           If unsure, say N.
271
272 config SERIAL_8250_RSA
273         bool "Support RSA serial ports"
274         depends on SERIAL_8250_EXTENDED
275         help
276           Say Y here if you have a IODATA RSA-DV II/S ISA card and
277           would like to use its >115kbps speeds.
278           You will need to provide module parameter "probe_rsa", or boot-time
279           parameter 8250.probe_rsa with I/O addresses of this card then.
280
281           If you don't have such card, or if unsure, say N.
282
283 config SERIAL_8250_ACORN
284         tristate "Acorn expansion card serial port support"
285         depends on ARCH_ACORN && SERIAL_8250
286         help
287           If you have an Atomwide Serial card or Serial Port card for an Acorn
288           system, say Y to this option.  The driver can handle 1, 2, or 3 port
289           cards.  If unsure, say N.
290
291 config SERIAL_8250_BCM2835AUX
292         tristate "BCM2835 auxiliar mini UART support"
293         depends on ARCH_BCM2835 || COMPILE_TEST
294         depends on SERIAL_8250 && SERIAL_8250_SHARE_IRQ
295         help
296           Support for the BCM2835 auxiliar mini UART.
297
298           Features and limitations of the UART are
299             Registers are similar to 16650 registers,
300               set bits in the control registers that are unsupported
301               are ignored and read back as 0
302             7/8 bit operation with 1 start and 1 stop bit
303             8 symbols deep fifo for rx and tx
304             SW controlled RTS and SW readable CTS
305             Clock rate derived from system clock
306             Uses 8 times oversampling (compared to 16 times for 16650)
307             Missing break detection (but break generation)
308             Missing framing error detection
309             Missing parity bit
310             Missing receive time-out interrupt
311             Missing DCD, DSR, DTR and RI signals
312
313           If unsure, say N.
314
315 config SERIAL_8250_FSL
316         bool
317         depends on SERIAL_8250_CONSOLE
318         default PPC || ARM || ARM64
319
320 config SERIAL_8250_DW
321         tristate "Support for Synopsys DesignWare 8250 quirks"
322         depends on SERIAL_8250
323         help
324           Selecting this option will enable handling of the extra features
325           present in the Synopsys DesignWare APB UART.
326
327 config SERIAL_8250_EM
328         tristate "Support for Emma Mobile integrated serial port"
329         depends on SERIAL_8250 && ARM && HAVE_CLK
330         help
331           Selecting this option will add support for the integrated serial
332           port hardware found on the Emma Mobile line of processors.
333           If unsure, say N.
334
335 config SERIAL_8250_RT288X
336         bool "Ralink RT288x/RT305x/RT3662/RT3883 serial port support"
337         depends on SERIAL_8250
338         default y if MIPS_ALCHEMY || SOC_RT288X || SOC_RT305X || SOC_RT3883 || SOC_MT7620
339         help
340           Selecting this option will add support for the alternate register
341           layout used by Ralink RT288x/RT305x, Alchemy Au1xxx, and some others.
342           If unsure, say N.
343
344 config SERIAL_8250_OMAP
345         tristate "Support for OMAP internal UART (8250 based driver)"
346         depends on SERIAL_8250 && ARCH_OMAP2PLUS
347         help
348           If you have a machine based on an Texas Instruments OMAP CPU you
349           can enable its onboard serial ports by enabling this option.
350
351           This driver uses ttyS instead of ttyO.
352
353 config SERIAL_8250_OMAP_TTYO_FIXUP
354         bool "Replace ttyO with ttyS"
355         depends on SERIAL_8250_OMAP=y && SERIAL_8250_CONSOLE
356         default y
357         help
358           This option replaces the "console=ttyO" argument with the matching
359           ttyS argument if the user did not specified it on the command line.
360           This ensures that the user can see the kernel output during boot
361           which he wouldn't see otherwise. The getty has still to be configured
362           for ttyS instead of ttyO regardless of this option.
363           This option is intended for people who "automatically" enable this
364           driver without knowing that this driver requires a different console=
365           argument. If you read this, please keep this option disabled and
366           instead update your kernel command line. If you prepare a kernel for a
367           distribution or other kind of larger user base then you probably want
368           to keep this option enabled. Otherwise people might complain about a
369           not booting kernel because the serial console remains silent in case
370           they forgot to update the command line.
371
372 config SERIAL_8250_LPC18XX
373         tristate "NXP LPC18xx/43xx serial port support"
374         depends on SERIAL_8250 && OF && (ARCH_LPC18XX || COMPILE_TEST)
375         default ARCH_LPC18XX
376         help
377           If you have a LPC18xx/43xx based board and want to use the
378           serial port, say Y to this option. If unsure, say Y.
379
380 config SERIAL_8250_MT6577
381         tristate "Mediatek serial port support"
382         depends on SERIAL_8250 && ARCH_MEDIATEK
383         help
384           If you have a Mediatek based board and want to use the
385           serial port, say Y to this option. If unsure, say N.
386
387 config SERIAL_8250_UNIPHIER
388         tristate "Support for UniPhier on-chip UART"
389         depends on SERIAL_8250
390         depends on ARCH_UNIPHIER || COMPILE_TEST
391         help
392           If you have a UniPhier based board and want to use the on-chip
393           serial ports, say Y to this option. If unsure, say N.
394
395 config SERIAL_8250_INGENIC
396         tristate "Support for Ingenic SoC serial ports"
397         depends on SERIAL_8250
398         depends on OF_FLATTREE
399         depends on MIPS || COMPILE_TEST
400         help
401           If you have a system using an Ingenic SoC and wish to make use of
402           its UARTs, say Y to this option. If unsure, say N.
403
404 config SERIAL_8250_LPSS
405         tristate "Support for serial ports on Intel LPSS platforms" if EXPERT
406         default SERIAL_8250
407         depends on SERIAL_8250 && PCI
408         depends on X86 || COMPILE_TEST
409         select DW_DMAC_CORE if SERIAL_8250_DMA
410         select DW_DMAC_PCI if (SERIAL_8250_DMA && X86_INTEL_LPSS)
411         select RATIONAL
412         help
413           Selecting this option will enable handling of the extra features
414           present on the UART found on various Intel platforms such as:
415             - Intel Baytrail SoC
416             - Intel Braswell SoC
417             - Intel Quark X1000 SoC
418
419 config SERIAL_8250_MID
420         tristate "Support for serial ports on Intel MID platforms" if EXPERT
421         default SERIAL_8250
422         depends on SERIAL_8250 && PCI
423         depends on X86 || COMPILE_TEST
424         select HSU_DMA if SERIAL_8250_DMA
425         select HSU_DMA_PCI if (HSU_DMA && X86_INTEL_MID)
426         select RATIONAL
427         help
428           Selecting this option will enable handling of the extra features
429           present on the UART found on Intel Medfield SOC and various other
430           Intel platforms.
431
432 config SERIAL_8250_MOXA
433         tristate "MOXA SmartIO MUE support"
434         depends on SERIAL_8250 && PCI
435         help
436           Say Y here if you have a Moxa SmartIO MUE multiport serial card.
437           If unsure, say N.
438
439           This driver can also be built as a module. The module will be called
440           8250_moxa. If you want to do that, say M here.
441
442 config SERIAL_OF_PLATFORM
443         tristate "Devicetree based probing for 8250 ports"
444         depends on SERIAL_8250 && OF
445         help
446           This option is used for all 8250 compatible serial ports that
447           are probed through devicetree, including Open Firmware based
448           PowerPC systems and embedded systems on architectures using the
449           flattened device tree format.