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