Kconfig 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "Bluetooth device drivers"
  3. depends on BT
  4. config BT_INTEL
  5. tristate
  6. select REGMAP
  7. config BT_BCM
  8. tristate
  9. select FW_LOADER
  10. config BT_RTL
  11. tristate
  12. select FW_LOADER
  13. config BT_QCA
  14. tristate
  15. select FW_LOADER
  16. config BT_HCIBTUSB
  17. tristate "HCI USB driver"
  18. depends on USB
  19. select BT_INTEL
  20. help
  21. Bluetooth HCI USB driver.
  22. This driver is required if you want to use Bluetooth devices with
  23. USB interface.
  24. Say Y here to compile support for Bluetooth USB devices into the
  25. kernel or say M to compile it as module (btusb).
  26. config BT_HCIBTUSB_AUTOSUSPEND
  27. bool "Enable USB autosuspend for Bluetooth USB devices by default"
  28. depends on BT_HCIBTUSB
  29. help
  30. Say Y here to enable USB autosuspend for Bluetooth USB devices by
  31. default.
  32. This can be overridden by passing btusb.enable_autosuspend=[y|n]
  33. on the kernel commandline.
  34. config BT_HCIBTUSB_BCM
  35. bool "Broadcom protocol support"
  36. depends on BT_HCIBTUSB
  37. select BT_BCM
  38. default y
  39. help
  40. The Broadcom protocol support enables firmware and patchram
  41. download support for Broadcom Bluetooth controllers.
  42. Say Y here to compile support for Broadcom protocol.
  43. config BT_HCIBTUSB_RTL
  44. bool "Realtek protocol support"
  45. depends on BT_HCIBTUSB
  46. select BT_RTL
  47. default y
  48. help
  49. The Realtek protocol support enables firmware and configuration
  50. download support for Realtek Bluetooth controllers.
  51. Say Y here to compile support for Realtek protocol.
  52. config BT_HCIBTSDIO
  53. tristate "HCI SDIO driver"
  54. depends on MMC
  55. help
  56. Bluetooth HCI SDIO driver.
  57. This driver is required if you want to use Bluetooth device with
  58. SDIO interface.
  59. Say Y here to compile support for Bluetooth SDIO devices into the
  60. kernel or say M to compile it as module (btsdio).
  61. config BT_HCIUART
  62. tristate "HCI UART driver"
  63. depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
  64. depends on NVMEM || !NVMEM
  65. depends on TTY
  66. help
  67. Bluetooth HCI UART driver.
  68. This driver is required if you want to use Bluetooth devices with
  69. serial port interface. You will also need this driver if you have
  70. UART based Bluetooth PCMCIA and CF devices like Xircom Credit Card
  71. adapter and BrainBoxes Bluetooth PC Card.
  72. Say Y here to compile support for Bluetooth UART devices into the
  73. kernel or say M to compile it as module (hci_uart).
  74. config BT_HCIUART_SERDEV
  75. bool
  76. depends on SERIAL_DEV_BUS && BT_HCIUART
  77. default y
  78. config BT_HCIUART_H4
  79. bool "UART (H4) protocol support"
  80. depends on BT_HCIUART
  81. help
  82. UART (H4) is serial protocol for communication between Bluetooth
  83. device and host. This protocol is required for most Bluetooth devices
  84. with UART interface, including PCMCIA and CF cards.
  85. Say Y here to compile support for HCI UART (H4) protocol.
  86. config BT_HCIUART_NOKIA
  87. tristate "UART Nokia H4+ protocol support"
  88. depends on BT_HCIUART
  89. depends on BT_HCIUART_SERDEV
  90. depends on GPIOLIB
  91. depends on PM
  92. select BT_HCIUART_H4
  93. select BT_BCM
  94. help
  95. Nokia H4+ is serial protocol for communication between Bluetooth
  96. device and host. This protocol is required for Bluetooth devices
  97. with UART interface in Nokia devices.
  98. Say Y here to compile support for Nokia's H4+ protocol.
  99. config BT_HCIUART_BCSP
  100. bool "BCSP protocol support"
  101. depends on BT_HCIUART
  102. select BITREVERSE
  103. help
  104. BCSP (BlueCore Serial Protocol) is serial protocol for communication
  105. between Bluetooth device and host. This protocol is required for non
  106. USB Bluetooth devices based on CSR BlueCore chip, including PCMCIA and
  107. CF cards.
  108. Say Y here to compile support for HCI BCSP protocol.
  109. config BT_HCIUART_ATH3K
  110. bool "Atheros AR300x serial support"
  111. depends on BT_HCIUART
  112. select BT_HCIUART_H4
  113. help
  114. HCIATH3K (HCI Atheros AR300x) is a serial protocol for
  115. communication between host and Atheros AR300x Bluetooth devices.
  116. This protocol enables AR300x chips to be enabled with
  117. power management support.
  118. Enable this if you have Atheros AR300x serial Bluetooth device.
  119. Say Y here to compile support for HCI UART ATH3K protocol.
  120. config BT_HCIUART_LL
  121. bool "HCILL protocol support"
  122. depends on BT_HCIUART_SERDEV
  123. select BT_HCIUART_H4
  124. help
  125. HCILL (HCI Low Level) is a serial protocol for communication
  126. between Bluetooth device and host. This protocol is required for
  127. serial Bluetooth devices that are based on Texas Instruments'
  128. BRF chips.
  129. Say Y here to compile support for HCILL protocol.
  130. config BT_HCIUART_3WIRE
  131. bool "Three-wire UART (H5) protocol support"
  132. depends on BT_HCIUART
  133. depends on BT_HCIUART_SERDEV
  134. help
  135. The HCI Three-wire UART Transport Layer makes it possible to
  136. user the Bluetooth HCI over a serial port interface. The HCI
  137. Three-wire UART Transport Layer assumes that the UART
  138. communication may have bit errors, overrun errors or burst
  139. errors and thereby making CTS/RTS lines unnecessary.
  140. Say Y here to compile support for Three-wire UART protocol.
  141. config BT_HCIUART_INTEL
  142. bool "Intel protocol support"
  143. depends on BT_HCIUART
  144. depends on GPIOLIB
  145. select BT_HCIUART_H4
  146. select BT_INTEL
  147. help
  148. The Intel protocol support enables Bluetooth HCI over serial
  149. port interface for Intel Bluetooth controllers.
  150. Say Y here to compile support for Intel protocol.
  151. config BT_HCIUART_BCM
  152. bool "Broadcom protocol support"
  153. depends on BT_HCIUART
  154. depends on BT_HCIUART_SERDEV
  155. depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
  156. depends on GPIOLIB
  157. select BT_HCIUART_H4
  158. select BT_BCM
  159. help
  160. The Broadcom protocol support enables Bluetooth HCI over serial
  161. port interface for Broadcom Bluetooth controllers.
  162. Say Y here to compile support for Broadcom protocol.
  163. config BT_HCIUART_RTL
  164. bool "Realtek protocol support"
  165. depends on BT_HCIUART
  166. depends on BT_HCIUART_SERDEV
  167. depends on GPIOLIB
  168. depends on ACPI
  169. select BT_HCIUART_3WIRE
  170. select BT_RTL
  171. help
  172. The Realtek protocol support enables Bluetooth HCI over 3-Wire
  173. serial port internface for Realtek Bluetooth controllers.
  174. Say Y here to compile support for Realtek protocol.
  175. config BT_HCIUART_QCA
  176. bool "Qualcomm Atheros protocol support"
  177. depends on BT_HCIUART
  178. depends on BT_HCIUART_SERDEV
  179. select BT_HCIUART_H4
  180. select BT_QCA
  181. help
  182. The Qualcomm Atheros protocol supports HCI In-Band Sleep feature
  183. over serial port interface(H4) between controller and host.
  184. This protocol is required for UART clock control for QCA Bluetooth
  185. devices.
  186. Say Y here to compile support for QCA protocol.
  187. config BT_HCIUART_AG6XX
  188. bool "Intel AG6XX protocol support"
  189. depends on BT_HCIUART
  190. select BT_HCIUART_H4
  191. select BT_INTEL
  192. help
  193. The Intel/AG6XX protocol support enables Bluetooth HCI over serial
  194. port interface for Intel ibt 2.1 Bluetooth controllers.
  195. Say Y here to compile support for Intel AG6XX protocol.
  196. config BT_HCIUART_MRVL
  197. bool "Marvell protocol support"
  198. depends on BT_HCIUART
  199. select BT_HCIUART_H4
  200. help
  201. Marvell is serial protocol for communication between Bluetooth
  202. device and host. This protocol is required for most Marvell Bluetooth
  203. devices with UART interface.
  204. Say Y here to compile support for HCI MRVL protocol.
  205. config BT_HCIBCM203X
  206. tristate "HCI BCM203x USB driver"
  207. depends on USB
  208. select FW_LOADER
  209. help
  210. Bluetooth HCI BCM203x USB driver.
  211. This driver provides the firmware loading mechanism for the Broadcom
  212. Blutonium based devices.
  213. Say Y here to compile support for HCI BCM203x devices into the
  214. kernel or say M to compile it as module (bcm203x).
  215. config BT_HCIBPA10X
  216. tristate "HCI BPA10x USB driver"
  217. depends on USB
  218. help
  219. Bluetooth HCI BPA10x USB driver.
  220. This driver provides support for the Digianswer BPA 100/105 Bluetooth
  221. sniffer devices.
  222. Say Y here to compile support for HCI BPA10x devices into the
  223. kernel or say M to compile it as module (bpa10x).
  224. config BT_HCIBFUSB
  225. tristate "HCI BlueFRITZ! USB driver"
  226. depends on USB
  227. select FW_LOADER
  228. help
  229. Bluetooth HCI BlueFRITZ! USB driver.
  230. This driver provides support for Bluetooth USB devices with AVM
  231. interface:
  232. AVM BlueFRITZ! USB
  233. Say Y here to compile support for HCI BFUSB devices into the
  234. kernel or say M to compile it as module (bfusb).
  235. config BT_HCIDTL1
  236. tristate "HCI DTL1 (PC Card) driver"
  237. depends on PCMCIA
  238. help
  239. Bluetooth HCI DTL1 (PC Card) driver.
  240. This driver provides support for Bluetooth PCMCIA devices with
  241. Nokia DTL1 interface:
  242. Nokia Bluetooth Card
  243. Socket Bluetooth CF Card
  244. Say Y here to compile support for HCI DTL1 devices into the
  245. kernel or say M to compile it as module (dtl1_cs).
  246. config BT_HCIBT3C
  247. tristate "HCI BT3C (PC Card) driver"
  248. depends on PCMCIA
  249. select FW_LOADER
  250. help
  251. Bluetooth HCI BT3C (PC Card) driver.
  252. This driver provides support for Bluetooth PCMCIA devices with
  253. 3Com BT3C interface:
  254. 3Com Bluetooth Card (3CRWB6096)
  255. HP Bluetooth Card
  256. Say Y here to compile support for HCI BT3C devices into the
  257. kernel or say M to compile it as module (bt3c_cs).
  258. config BT_HCIBLUECARD
  259. tristate "HCI BlueCard (PC Card) driver"
  260. depends on PCMCIA
  261. help
  262. Bluetooth HCI BlueCard (PC Card) driver.
  263. This driver provides support for Bluetooth PCMCIA devices with
  264. Anycom BlueCard interface:
  265. Anycom Bluetooth PC Card
  266. Anycom Bluetooth CF Card
  267. Say Y here to compile support for HCI BlueCard devices into the
  268. kernel or say M to compile it as module (bluecard_cs).
  269. config BT_HCIVHCI
  270. tristate "HCI VHCI (Virtual HCI device) driver"
  271. help
  272. Bluetooth Virtual HCI device driver.
  273. This driver is required if you want to use HCI Emulation software.
  274. Say Y here to compile support for virtual HCI devices into the
  275. kernel or say M to compile it as module (hci_vhci).
  276. config BT_MRVL
  277. tristate "Marvell Bluetooth driver support"
  278. help
  279. The core driver to support Marvell Bluetooth devices.
  280. This driver is required if you want to support
  281. Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8997.
  282. Say Y here to compile Marvell Bluetooth driver
  283. into the kernel or say M to compile it as module.
  284. config BT_MRVL_SDIO
  285. tristate "Marvell BT-over-SDIO driver"
  286. depends on BT_MRVL && MMC
  287. select FW_LOADER
  288. select WANT_DEV_COREDUMP
  289. help
  290. The driver for Marvell Bluetooth chipsets with SDIO interface.
  291. This driver is required if you want to use Marvell Bluetooth
  292. devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8997
  293. chipsets are supported.
  294. Say Y here to compile support for Marvell BT-over-SDIO driver
  295. into the kernel or say M to compile it as module.
  296. config BT_ATH3K
  297. tristate "Atheros firmware download driver"
  298. depends on BT_HCIBTUSB
  299. select FW_LOADER
  300. help
  301. Bluetooth firmware download driver.
  302. This driver loads the firmware into the Atheros Bluetooth
  303. chipset.
  304. Say Y here to compile support for "Atheros firmware download driver"
  305. into the kernel or say M to compile it as module (ath3k).
  306. config BT_WILINK
  307. tristate "Texas Instruments WiLink7 driver"
  308. depends on TI_ST
  309. help
  310. This enables the Bluetooth driver for Texas Instrument's BT/FM/GPS
  311. combo devices. This makes use of shared transport line discipline
  312. core driver to communicate with the BT core of the combo chip.
  313. Say Y here to compile support for Texas Instrument's WiLink7 driver
  314. into the kernel or say M to compile it as module (btwilink).
  315. config BT_MTKUART
  316. tristate "MediaTek HCI UART driver"
  317. depends on SERIAL_DEV_BUS
  318. help
  319. MediaTek Bluetooth HCI UART driver.
  320. This driver is required if you want to use MediaTek Bluetooth
  321. with serial interface.
  322. Say Y here to compile support for MediaTek Bluetooth UART devices
  323. into the kernel or say M to compile it as module (btmtkuart).
  324. config BT_QCOMSMD
  325. tristate "Qualcomm SMD based HCI support"
  326. depends on RPMSG || (COMPILE_TEST && RPMSG=n)
  327. depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
  328. select BT_QCA
  329. help
  330. Qualcomm SMD based HCI driver.
  331. This driver is used to bridge HCI data onto the shared memory
  332. channels to the WCNSS core.
  333. Say Y here to compile support for HCI over Qualcomm SMD into the
  334. kernel or say M to compile as a module.
  335. config BT_HCIRSI
  336. tristate
  337. help
  338. Redpine BT driver.
  339. This driver handles BT traffic from upper layers and pass
  340. to the RSI_91x coex module for further scheduling to device
  341. Say Y here to compile support for HCI over Redpine into the
  342. kernel or say M to compile as a module.
  343. endmenu