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