Kconfig 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  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. help
  134. The HCI Three-wire UART Transport Layer makes it possible to
  135. user the Bluetooth HCI over a serial port interface. The HCI
  136. Three-wire UART Transport Layer assumes that the UART
  137. communication may have bit errors, overrun errors or burst
  138. errors and thereby making CTS/RTS lines unnecessary.
  139. Say Y here to compile support for Three-wire UART protocol.
  140. config BT_HCIUART_INTEL
  141. bool "Intel protocol support"
  142. depends on BT_HCIUART
  143. depends on GPIOLIB
  144. select BT_HCIUART_H4
  145. select BT_INTEL
  146. help
  147. The Intel protocol support enables Bluetooth HCI over serial
  148. port interface for Intel Bluetooth controllers.
  149. Say Y here to compile support for Intel protocol.
  150. config BT_HCIUART_BCM
  151. bool "Broadcom protocol support"
  152. depends on BT_HCIUART
  153. depends on BT_HCIUART_SERDEV
  154. depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
  155. depends on GPIOLIB
  156. select BT_HCIUART_H4
  157. select BT_BCM
  158. help
  159. The Broadcom protocol support enables Bluetooth HCI over serial
  160. port interface for Broadcom Bluetooth controllers.
  161. Say Y here to compile support for Broadcom protocol.
  162. config BT_HCIUART_QCA
  163. bool "Qualcomm Atheros protocol support"
  164. depends on BT_HCIUART
  165. select BT_HCIUART_H4
  166. select BT_QCA
  167. help
  168. The Qualcomm Atheros protocol supports HCI In-Band Sleep feature
  169. over serial port interface(H4) between controller and host.
  170. This protocol is required for UART clock control for QCA Bluetooth
  171. devices.
  172. Say Y here to compile support for QCA protocol.
  173. config BT_HCIUART_AG6XX
  174. bool "Intel AG6XX protocol support"
  175. depends on BT_HCIUART
  176. select BT_HCIUART_H4
  177. select BT_INTEL
  178. help
  179. The Intel/AG6XX protocol support enables Bluetooth HCI over serial
  180. port interface for Intel ibt 2.1 Bluetooth controllers.
  181. Say Y here to compile support for Intel AG6XX protocol.
  182. config BT_HCIUART_MRVL
  183. bool "Marvell protocol support"
  184. depends on BT_HCIUART
  185. select BT_HCIUART_H4
  186. help
  187. Marvell is serial protocol for communication between Bluetooth
  188. device and host. This protocol is required for most Marvell Bluetooth
  189. devices with UART interface.
  190. Say Y here to compile support for HCI MRVL protocol.
  191. config BT_HCIBCM203X
  192. tristate "HCI BCM203x USB driver"
  193. depends on USB
  194. select FW_LOADER
  195. help
  196. Bluetooth HCI BCM203x USB driver.
  197. This driver provides the firmware loading mechanism for the Broadcom
  198. Blutonium based devices.
  199. Say Y here to compile support for HCI BCM203x devices into the
  200. kernel or say M to compile it as module (bcm203x).
  201. config BT_HCIBPA10X
  202. tristate "HCI BPA10x USB driver"
  203. depends on USB
  204. help
  205. Bluetooth HCI BPA10x USB driver.
  206. This driver provides support for the Digianswer BPA 100/105 Bluetooth
  207. sniffer devices.
  208. Say Y here to compile support for HCI BPA10x devices into the
  209. kernel or say M to compile it as module (bpa10x).
  210. config BT_HCIBFUSB
  211. tristate "HCI BlueFRITZ! USB driver"
  212. depends on USB
  213. select FW_LOADER
  214. help
  215. Bluetooth HCI BlueFRITZ! USB driver.
  216. This driver provides support for Bluetooth USB devices with AVM
  217. interface:
  218. AVM BlueFRITZ! USB
  219. Say Y here to compile support for HCI BFUSB devices into the
  220. kernel or say M to compile it as module (bfusb).
  221. config BT_HCIDTL1
  222. tristate "HCI DTL1 (PC Card) driver"
  223. depends on PCMCIA
  224. help
  225. Bluetooth HCI DTL1 (PC Card) driver.
  226. This driver provides support for Bluetooth PCMCIA devices with
  227. Nokia DTL1 interface:
  228. Nokia Bluetooth Card
  229. Socket Bluetooth CF Card
  230. Say Y here to compile support for HCI DTL1 devices into the
  231. kernel or say M to compile it as module (dtl1_cs).
  232. config BT_HCIBT3C
  233. tristate "HCI BT3C (PC Card) driver"
  234. depends on PCMCIA
  235. select FW_LOADER
  236. help
  237. Bluetooth HCI BT3C (PC Card) driver.
  238. This driver provides support for Bluetooth PCMCIA devices with
  239. 3Com BT3C interface:
  240. 3Com Bluetooth Card (3CRWB6096)
  241. HP Bluetooth Card
  242. Say Y here to compile support for HCI BT3C devices into the
  243. kernel or say M to compile it as module (bt3c_cs).
  244. config BT_HCIBLUECARD
  245. tristate "HCI BlueCard (PC Card) driver"
  246. depends on PCMCIA
  247. help
  248. Bluetooth HCI BlueCard (PC Card) driver.
  249. This driver provides support for Bluetooth PCMCIA devices with
  250. Anycom BlueCard interface:
  251. Anycom Bluetooth PC Card
  252. Anycom Bluetooth CF Card
  253. Say Y here to compile support for HCI BlueCard devices into the
  254. kernel or say M to compile it as module (bluecard_cs).
  255. config BT_HCIVHCI
  256. tristate "HCI VHCI (Virtual HCI device) driver"
  257. help
  258. Bluetooth Virtual HCI device driver.
  259. This driver is required if you want to use HCI Emulation software.
  260. Say Y here to compile support for virtual HCI devices into the
  261. kernel or say M to compile it as module (hci_vhci).
  262. config BT_MRVL
  263. tristate "Marvell Bluetooth driver support"
  264. help
  265. The core driver to support Marvell Bluetooth devices.
  266. This driver is required if you want to support
  267. Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8997.
  268. Say Y here to compile Marvell Bluetooth driver
  269. into the kernel or say M to compile it as module.
  270. config BT_MRVL_SDIO
  271. tristate "Marvell BT-over-SDIO driver"
  272. depends on BT_MRVL && MMC
  273. select FW_LOADER
  274. select WANT_DEV_COREDUMP
  275. help
  276. The driver for Marvell Bluetooth chipsets with SDIO interface.
  277. This driver is required if you want to use Marvell Bluetooth
  278. devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8997
  279. chipsets are supported.
  280. Say Y here to compile support for Marvell BT-over-SDIO driver
  281. into the kernel or say M to compile it as module.
  282. config BT_ATH3K
  283. tristate "Atheros firmware download driver"
  284. depends on BT_HCIBTUSB
  285. select FW_LOADER
  286. help
  287. Bluetooth firmware download driver.
  288. This driver loads the firmware into the Atheros Bluetooth
  289. chipset.
  290. Say Y here to compile support for "Atheros firmware download driver"
  291. into the kernel or say M to compile it as module (ath3k).
  292. config BT_WILINK
  293. tristate "Texas Instruments WiLink7 driver"
  294. depends on TI_ST
  295. help
  296. This enables the Bluetooth driver for Texas Instrument's BT/FM/GPS
  297. combo devices. This makes use of shared transport line discipline
  298. core driver to communicate with the BT core of the combo chip.
  299. Say Y here to compile support for Texas Instrument's WiLink7 driver
  300. into the kernel or say M to compile it as module (btwilink).
  301. config BT_QCOMSMD
  302. tristate "Qualcomm SMD based HCI support"
  303. depends on RPMSG || (COMPILE_TEST && RPMSG=n)
  304. depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
  305. select BT_QCA
  306. help
  307. Qualcomm SMD based HCI driver.
  308. This driver is used to bridge HCI data onto the shared memory
  309. channels to the WCNSS core.
  310. Say Y here to compile support for HCI over Qualcomm SMD into the
  311. kernel or say M to compile as a module.
  312. config BT_HCIRSI
  313. tristate
  314. help
  315. Redpine BT driver.
  316. This driver handles BT traffic from upper layers and pass
  317. to the RSI_91x coex module for further scheduling to device
  318. Say Y here to compile support for HCI over Redpine into the
  319. kernel or say M to compile as a module.
  320. endmenu