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