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