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