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_BCM 35 bool "Broadcom protocol support" 36 depends on BT_HCIBTUSB 37 select BT_BCM 38 default y 39 help 40 The Broadcom protocol support enables firmware and patchram 41 download support for Broadcom Bluetooth controllers. 42 43 Say Y here to compile support for Broadcom protocol. 44 45config BT_HCIBTUSB_RTL 46 bool "Realtek protocol support" 47 depends on BT_HCIBTUSB 48 select BT_RTL 49 default y 50 help 51 The Realtek protocol support enables firmware and configuration 52 download support for Realtek Bluetooth controllers. 53 54 Say Y here to compile support for Realtek protocol. 55 56config BT_HCIBTSDIO 57 tristate "HCI SDIO driver" 58 depends on MMC 59 help 60 Bluetooth HCI SDIO driver. 61 This driver is required if you want to use Bluetooth device with 62 SDIO interface. 63 64 Say Y here to compile support for Bluetooth SDIO devices into the 65 kernel or say M to compile it as module (btsdio). 66 67config BT_HCIUART 68 tristate "HCI UART driver" 69 depends on TTY 70 help 71 Bluetooth HCI UART driver. 72 This driver is required if you want to use Bluetooth devices with 73 serial port interface. You will also need this driver if you have 74 UART based Bluetooth PCMCIA and CF devices like Xircom Credit Card 75 adapter and BrainBoxes Bluetooth PC Card. 76 77 Say Y here to compile support for Bluetooth UART devices into the 78 kernel or say M to compile it as module (hci_uart). 79 80config BT_HCIUART_SERDEV 81 bool 82 depends on SERIAL_DEV_BUS && BT_HCIUART 83 depends on SERIAL_DEV_BUS=y || SERIAL_DEV_BUS=BT_HCIUART 84 default y 85 86config BT_HCIUART_H4 87 bool "UART (H4) protocol support" 88 depends on BT_HCIUART 89 help 90 UART (H4) is serial protocol for communication between Bluetooth 91 device and host. This protocol is required for most Bluetooth devices 92 with UART interface, including PCMCIA and CF cards. 93 94 Say Y here to compile support for HCI UART (H4) protocol. 95 96config BT_HCIUART_NOKIA 97 tristate "UART Nokia H4+ protocol support" 98 depends on BT_HCIUART 99 depends on BT_HCIUART_SERDEV 100 depends on PM 101 select BT_HCIUART_H4 102 select BT_BCM 103 help 104 Nokia H4+ is serial protocol for communication between Bluetooth 105 device and host. This protocol is required for Bluetooth devices 106 with UART interface in Nokia devices. 107 108 Say Y here to compile support for Nokia's H4+ protocol. 109 110config BT_HCIUART_BCSP 111 bool "BCSP protocol support" 112 depends on BT_HCIUART 113 select BITREVERSE 114 help 115 BCSP (BlueCore Serial Protocol) is serial protocol for communication 116 between Bluetooth device and host. This protocol is required for non 117 USB Bluetooth devices based on CSR BlueCore chip, including PCMCIA and 118 CF cards. 119 120 Say Y here to compile support for HCI BCSP protocol. 121 122config BT_HCIUART_ATH3K 123 bool "Atheros AR300x serial support" 124 depends on BT_HCIUART 125 select BT_HCIUART_H4 126 help 127 HCIATH3K (HCI Atheros AR300x) is a serial protocol for 128 communication between host and Atheros AR300x Bluetooth devices. 129 This protocol enables AR300x chips to be enabled with 130 power management support. 131 Enable this if you have Atheros AR300x serial Bluetooth device. 132 133 Say Y here to compile support for HCI UART ATH3K protocol. 134 135config BT_HCIUART_LL 136 bool "HCILL protocol support" 137 depends on BT_HCIUART_SERDEV 138 help 139 HCILL (HCI Low Level) is a serial protocol for communication 140 between Bluetooth device and host. This protocol is required for 141 serial Bluetooth devices that are based on Texas Instruments' 142 BRF chips. 143 144 Say Y here to compile support for HCILL protocol. 145 146config BT_HCIUART_3WIRE 147 bool "Three-wire UART (H5) protocol support" 148 depends on BT_HCIUART 149 help 150 The HCI Three-wire UART Transport Layer makes it possible to 151 user the Bluetooth HCI over a serial port interface. The HCI 152 Three-wire UART Transport Layer assumes that the UART 153 communication may have bit errors, overrun errors or burst 154 errors and thereby making CTS/RTS lines unnecessary. 155 156 Say Y here to compile support for Three-wire UART protocol. 157 158config BT_HCIUART_INTEL 159 bool "Intel protocol support" 160 depends on BT_HCIUART 161 select BT_HCIUART_H4 162 select BT_INTEL 163 help 164 The Intel protocol support enables Bluetooth HCI over serial 165 port interface for Intel Bluetooth controllers. 166 167 Say Y here to compile support for Intel protocol. 168 169config BT_HCIUART_BCM 170 bool "Broadcom protocol support" 171 depends on BT_HCIUART 172 depends on BT_HCIUART_SERDEV 173 select BT_HCIUART_H4 174 select BT_BCM 175 help 176 The Broadcom protocol support enables Bluetooth HCI over serial 177 port interface for Broadcom Bluetooth controllers. 178 179 Say Y here to compile support for Broadcom protocol. 180 181config BT_HCIUART_QCA 182 bool "Qualcomm Atheros protocol support" 183 depends on BT_HCIUART 184 select BT_HCIUART_H4 185 select BT_QCA 186 help 187 The Qualcomm Atheros protocol supports HCI In-Band Sleep feature 188 over serial port interface(H4) between controller and host. 189 This protocol is required for UART clock control for QCA Bluetooth 190 devices. 191 192 Say Y here to compile support for QCA protocol. 193 194config BT_HCIUART_AG6XX 195 bool "Intel AG6XX protocol support" 196 depends on BT_HCIUART 197 select BT_HCIUART_H4 198 select BT_INTEL 199 help 200 The Intel/AG6XX protocol support enables Bluetooth HCI over serial 201 port interface for Intel ibt 2.1 Bluetooth controllers. 202 203 Say Y here to compile support for Intel AG6XX protocol. 204 205config BT_HCIUART_MRVL 206 bool "Marvell protocol support" 207 depends on BT_HCIUART 208 select BT_HCIUART_H4 209 help 210 Marvell is serial protocol for communication between Bluetooth 211 device and host. This protocol is required for most Marvell Bluetooth 212 devices with UART interface. 213 214 Say Y here to compile support for HCI MRVL protocol. 215 216config BT_HCIBCM203X 217 tristate "HCI BCM203x USB driver" 218 depends on USB 219 select FW_LOADER 220 help 221 Bluetooth HCI BCM203x USB driver. 222 This driver provides the firmware loading mechanism for the Broadcom 223 Blutonium based devices. 224 225 Say Y here to compile support for HCI BCM203x devices into the 226 kernel or say M to compile it as module (bcm203x). 227 228config BT_HCIBPA10X 229 tristate "HCI BPA10x USB driver" 230 depends on USB && BT_HCIUART 231 select BT_HCIUART_H4 232 help 233 Bluetooth HCI BPA10x USB driver. 234 This driver provides support for the Digianswer BPA 100/105 Bluetooth 235 sniffer devices. 236 237 Say Y here to compile support for HCI BPA10x devices into the 238 kernel or say M to compile it as module (bpa10x). 239 240config BT_HCIBFUSB 241 tristate "HCI BlueFRITZ! USB driver" 242 depends on USB 243 select FW_LOADER 244 help 245 Bluetooth HCI BlueFRITZ! USB driver. 246 This driver provides support for Bluetooth USB devices with AVM 247 interface: 248 AVM BlueFRITZ! USB 249 250 Say Y here to compile support for HCI BFUSB devices into the 251 kernel or say M to compile it as module (bfusb). 252 253config BT_HCIDTL1 254 tristate "HCI DTL1 (PC Card) driver" 255 depends on PCMCIA 256 help 257 Bluetooth HCI DTL1 (PC Card) driver. 258 This driver provides support for Bluetooth PCMCIA devices with 259 Nokia DTL1 interface: 260 Nokia Bluetooth Card 261 Socket Bluetooth CF Card 262 263 Say Y here to compile support for HCI DTL1 devices into the 264 kernel or say M to compile it as module (dtl1_cs). 265 266config BT_HCIBT3C 267 tristate "HCI BT3C (PC Card) driver" 268 depends on PCMCIA 269 select FW_LOADER 270 help 271 Bluetooth HCI BT3C (PC Card) driver. 272 This driver provides support for Bluetooth PCMCIA devices with 273 3Com BT3C interface: 274 3Com Bluetooth Card (3CRWB6096) 275 HP Bluetooth Card 276 277 Say Y here to compile support for HCI BT3C devices into the 278 kernel or say M to compile it as module (bt3c_cs). 279 280config BT_HCIBLUECARD 281 tristate "HCI BlueCard (PC Card) driver" 282 depends on PCMCIA 283 help 284 Bluetooth HCI BlueCard (PC Card) driver. 285 This driver provides support for Bluetooth PCMCIA devices with 286 Anycom BlueCard interface: 287 Anycom Bluetooth PC Card 288 Anycom Bluetooth CF Card 289 290 Say Y here to compile support for HCI BlueCard devices into the 291 kernel or say M to compile it as module (bluecard_cs). 292 293config BT_HCIBTUART 294 tristate "HCI UART (PC Card) device driver" 295 depends on PCMCIA 296 help 297 Bluetooth HCI UART (PC Card) driver. 298 This driver provides support for Bluetooth PCMCIA devices with 299 an UART interface: 300 Xircom CreditCard Bluetooth Adapter 301 Xircom RealPort2 Bluetooth Adapter 302 Sphinx PICO Card 303 H-Soft blue+Card 304 Cyber-blue Compact Flash Card 305 306 Say Y here to compile support for HCI UART devices into the 307 kernel or say M to compile it as module (btuart_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 380endmenu 381