Kconfig 13 KB

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