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