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