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