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