Kconfig 17 KB

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