0001 # SPDX-License-Identifier: GPL-2.0
0002
0003 menu "Bluetooth device drivers"
0004 depends on BT
0005
0006 config BT_INTEL
0007 tristate
0008 select REGMAP
0009
0010 config BT_BCM
0011 tristate
0012 select FW_LOADER
0013
0014 config BT_RTL
0015 tristate
0016 select FW_LOADER
0017
0018 config BT_QCA
0019 tristate
0020 select FW_LOADER
0021
0022 config BT_MTK
0023 tristate
0024 select FW_LOADER
0025
0026 config BT_HCIBTUSB
0027 tristate "HCI USB driver"
0028 depends on USB
0029 select BT_INTEL
0030 help
0031 Bluetooth HCI USB driver.
0032 This driver is required if you want to use Bluetooth devices with
0033 USB interface.
0034
0035 Say Y here to compile support for Bluetooth USB devices into the
0036 kernel or say M to compile it as module (btusb).
0037
0038 config BT_HCIBTUSB_AUTOSUSPEND
0039 bool "Enable USB autosuspend for Bluetooth USB devices by default"
0040 depends on BT_HCIBTUSB
0041 help
0042 Say Y here to enable USB autosuspend for Bluetooth USB devices by
0043 default.
0044
0045 This can be overridden by passing btusb.enable_autosuspend=[y|n]
0046 on the kernel commandline.
0047
0048 config BT_HCIBTUSB_BCM
0049 bool "Broadcom protocol support"
0050 depends on BT_HCIBTUSB
0051 select BT_BCM
0052 default y
0053 help
0054 The Broadcom protocol support enables firmware and patchram
0055 download support for Broadcom Bluetooth controllers.
0056
0057 Say Y here to compile support for Broadcom protocol.
0058
0059 config BT_HCIBTUSB_MTK
0060 bool "MediaTek protocol support"
0061 depends on BT_HCIBTUSB
0062 select BT_MTK
0063 default n
0064 help
0065 The MediaTek protocol support enables firmware download
0066 support and chip initialization for MediaTek Bluetooth
0067 USB controllers.
0068
0069 Say Y here to compile support for MediaTek protocol.
0070
0071 config BT_HCIBTUSB_RTL
0072 bool "Realtek protocol support"
0073 depends on BT_HCIBTUSB
0074 select BT_RTL
0075 default y
0076 help
0077 The Realtek protocol support enables firmware and configuration
0078 download support for Realtek Bluetooth controllers.
0079
0080 Say Y here to compile support for Realtek protocol.
0081
0082 config BT_HCIBTSDIO
0083 tristate "HCI SDIO driver"
0084 depends on MMC
0085 help
0086 Bluetooth HCI SDIO driver.
0087 This driver is required if you want to use Bluetooth device with
0088 SDIO interface.
0089
0090 Say Y here to compile support for Bluetooth SDIO devices into the
0091 kernel or say M to compile it as module (btsdio).
0092
0093 config BT_HCIUART
0094 tristate "HCI UART driver"
0095 depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
0096 depends on NVMEM || !NVMEM
0097 depends on TTY
0098 help
0099 Bluetooth HCI UART driver.
0100 This driver is required if you want to use Bluetooth devices with
0101 serial port interface. You will also need this driver if you have
0102 UART based Bluetooth PCMCIA and CF devices like Xircom Credit Card
0103 adapter and BrainBoxes Bluetooth PC Card.
0104
0105 Say Y here to compile support for Bluetooth UART devices into the
0106 kernel or say M to compile it as module (hci_uart).
0107
0108 config BT_HCIUART_SERDEV
0109 bool
0110 depends on SERIAL_DEV_BUS && BT_HCIUART
0111 default y
0112
0113 config BT_HCIUART_H4
0114 bool "UART (H4) protocol support"
0115 depends on BT_HCIUART
0116 help
0117 UART (H4) is serial protocol for communication between Bluetooth
0118 device and host. This protocol is required for most Bluetooth devices
0119 with UART interface, including PCMCIA and CF cards.
0120
0121 Say Y here to compile support for HCI UART (H4) protocol.
0122
0123 config BT_HCIUART_NOKIA
0124 tristate "UART Nokia H4+ protocol support"
0125 depends on BT_HCIUART
0126 depends on BT_HCIUART_SERDEV
0127 depends on GPIOLIB
0128 depends on PM
0129 select BT_HCIUART_H4
0130 select BT_BCM
0131 help
0132 Nokia H4+ is serial protocol for communication between Bluetooth
0133 device and host. This protocol is required for Bluetooth devices
0134 with UART interface in Nokia devices.
0135
0136 Say Y here to compile support for Nokia's H4+ protocol.
0137
0138 config BT_HCIUART_BCSP
0139 bool "BCSP protocol support"
0140 depends on BT_HCIUART
0141 select BITREVERSE
0142 help
0143 BCSP (BlueCore Serial Protocol) is serial protocol for communication
0144 between Bluetooth device and host. This protocol is required for non
0145 USB Bluetooth devices based on CSR BlueCore chip, including PCMCIA and
0146 CF cards.
0147
0148 Say Y here to compile support for HCI BCSP protocol.
0149
0150 config BT_HCIUART_ATH3K
0151 bool "Atheros AR300x serial support"
0152 depends on BT_HCIUART
0153 select BT_HCIUART_H4
0154 help
0155 HCIATH3K (HCI Atheros AR300x) is a serial protocol for
0156 communication between host and Atheros AR300x Bluetooth devices.
0157 This protocol enables AR300x chips to be enabled with
0158 power management support.
0159 Enable this if you have Atheros AR300x serial Bluetooth device.
0160
0161 Say Y here to compile support for HCI UART ATH3K protocol.
0162
0163 config BT_HCIUART_LL
0164 bool "HCILL protocol support"
0165 depends on BT_HCIUART_SERDEV
0166 select BT_HCIUART_H4
0167 help
0168 HCILL (HCI Low Level) is a serial protocol for communication
0169 between Bluetooth device and host. This protocol is required for
0170 serial Bluetooth devices that are based on Texas Instruments'
0171 BRF chips.
0172
0173 Say Y here to compile support for HCILL protocol.
0174
0175 config BT_HCIUART_3WIRE
0176 bool "Three-wire UART (H5) protocol support"
0177 depends on BT_HCIUART
0178 depends on BT_HCIUART_SERDEV
0179 help
0180 The HCI Three-wire UART Transport Layer makes it possible to
0181 user the Bluetooth HCI over a serial port interface. The HCI
0182 Three-wire UART Transport Layer assumes that the UART
0183 communication may have bit errors, overrun errors or burst
0184 errors and thereby making CTS/RTS lines unnecessary.
0185
0186 Say Y here to compile support for Three-wire UART protocol.
0187
0188 config BT_HCIUART_INTEL
0189 bool "Intel protocol support"
0190 depends on BT_HCIUART
0191 depends on GPIOLIB
0192 select BT_HCIUART_H4
0193 select BT_INTEL
0194 help
0195 The Intel protocol support enables Bluetooth HCI over serial
0196 port interface for Intel Bluetooth controllers.
0197
0198 Say Y here to compile support for Intel protocol.
0199
0200 config BT_HCIUART_BCM
0201 bool "Broadcom protocol support"
0202 depends on BT_HCIUART
0203 depends on BT_HCIUART_SERDEV
0204 depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
0205 depends on GPIOLIB
0206 select BT_HCIUART_H4
0207 select BT_BCM
0208 help
0209 The Broadcom protocol support enables Bluetooth HCI over serial
0210 port interface for Broadcom Bluetooth controllers.
0211
0212 Say Y here to compile support for Broadcom protocol.
0213
0214 config BT_HCIUART_RTL
0215 bool "Realtek protocol support"
0216 depends on BT_HCIUART
0217 depends on BT_HCIUART_SERDEV
0218 depends on GPIOLIB
0219 depends on (ACPI || SERIAL_DEV_CTRL_TTYPORT)
0220 select BT_HCIUART_3WIRE
0221 select BT_RTL
0222 help
0223 The Realtek protocol support enables Bluetooth HCI over 3-Wire
0224 serial port interface for Realtek Bluetooth controllers.
0225
0226 Say Y here to compile support for Realtek protocol.
0227
0228 config BT_HCIUART_QCA
0229 bool "Qualcomm Atheros protocol support"
0230 depends on BT_HCIUART
0231 depends on BT_HCIUART_SERDEV
0232 select BT_HCIUART_H4
0233 select BT_QCA
0234 help
0235 The Qualcomm Atheros protocol supports HCI In-Band Sleep feature
0236 over serial port interface(H4) between controller and host.
0237 This protocol is required for UART clock control for QCA Bluetooth
0238 devices.
0239
0240 Say Y here to compile support for QCA protocol.
0241
0242 config BT_HCIUART_AG6XX
0243 bool "Intel AG6XX protocol support"
0244 depends on BT_HCIUART
0245 select BT_HCIUART_H4
0246 select BT_INTEL
0247 help
0248 The Intel/AG6XX protocol support enables Bluetooth HCI over serial
0249 port interface for Intel ibt 2.1 Bluetooth controllers.
0250
0251 Say Y here to compile support for Intel AG6XX protocol.
0252
0253 config BT_HCIUART_MRVL
0254 bool "Marvell protocol support"
0255 depends on BT_HCIUART
0256 depends on BT_HCIUART_SERDEV
0257 select BT_HCIUART_H4
0258 help
0259 Marvell is serial protocol for communication between Bluetooth
0260 device and host. This protocol is required for most Marvell Bluetooth
0261 devices with UART interface.
0262
0263 Say Y here to compile support for HCI MRVL protocol.
0264
0265 config BT_HCIBCM203X
0266 tristate "HCI BCM203x USB driver"
0267 depends on USB
0268 select FW_LOADER
0269 help
0270 Bluetooth HCI BCM203x USB driver.
0271 This driver provides the firmware loading mechanism for the Broadcom
0272 Blutonium based devices.
0273
0274 Say Y here to compile support for HCI BCM203x devices into the
0275 kernel or say M to compile it as module (bcm203x).
0276
0277 config BT_HCIBPA10X
0278 tristate "HCI BPA10x USB driver"
0279 depends on USB
0280 help
0281 Bluetooth HCI BPA10x USB driver.
0282 This driver provides support for the Digianswer BPA 100/105 Bluetooth
0283 sniffer devices.
0284
0285 Say Y here to compile support for HCI BPA10x devices into the
0286 kernel or say M to compile it as module (bpa10x).
0287
0288 config BT_HCIBFUSB
0289 tristate "HCI BlueFRITZ! USB driver"
0290 depends on USB
0291 select FW_LOADER
0292 help
0293 Bluetooth HCI BlueFRITZ! USB driver.
0294 This driver provides support for Bluetooth USB devices with AVM
0295 interface:
0296 AVM BlueFRITZ! USB
0297
0298 Say Y here to compile support for HCI BFUSB devices into the
0299 kernel or say M to compile it as module (bfusb).
0300
0301 config BT_HCIDTL1
0302 tristate "HCI DTL1 (PC Card) driver"
0303 depends on PCMCIA
0304 help
0305 Bluetooth HCI DTL1 (PC Card) driver.
0306 This driver provides support for Bluetooth PCMCIA devices with
0307 Nokia DTL1 interface:
0308 Nokia Bluetooth Card
0309 Socket Bluetooth CF Card
0310
0311 Say Y here to compile support for HCI DTL1 devices into the
0312 kernel or say M to compile it as module (dtl1_cs).
0313
0314 config BT_HCIBT3C
0315 tristate "HCI BT3C (PC Card) driver"
0316 depends on PCMCIA
0317 select FW_LOADER
0318 help
0319 Bluetooth HCI BT3C (PC Card) driver.
0320 This driver provides support for Bluetooth PCMCIA devices with
0321 3Com BT3C interface:
0322 3Com Bluetooth Card (3CRWB6096)
0323 HP Bluetooth Card
0324
0325 Say Y here to compile support for HCI BT3C devices into the
0326 kernel or say M to compile it as module (bt3c_cs).
0327
0328 config BT_HCIBLUECARD
0329 tristate "HCI BlueCard (PC Card) driver"
0330 depends on PCMCIA
0331 help
0332 Bluetooth HCI BlueCard (PC Card) driver.
0333 This driver provides support for Bluetooth PCMCIA devices with
0334 Anycom BlueCard interface:
0335 Anycom Bluetooth PC Card
0336 Anycom Bluetooth CF Card
0337
0338 Say Y here to compile support for HCI BlueCard devices into the
0339 kernel or say M to compile it as module (bluecard_cs).
0340
0341 config BT_HCIVHCI
0342 tristate "HCI VHCI (Virtual HCI device) driver"
0343 help
0344 Bluetooth Virtual HCI device driver.
0345 This driver is required if you want to use HCI Emulation software.
0346
0347 Say Y here to compile support for virtual HCI devices into the
0348 kernel or say M to compile it as module (hci_vhci).
0349
0350 config BT_MRVL
0351 tristate "Marvell Bluetooth driver support"
0352 help
0353 The core driver to support Marvell Bluetooth devices.
0354
0355 This driver is required if you want to support
0356 Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8977/8987/8997.
0357
0358 Say Y here to compile Marvell Bluetooth driver
0359 into the kernel or say M to compile it as module.
0360
0361 config BT_MRVL_SDIO
0362 tristate "Marvell BT-over-SDIO driver"
0363 depends on BT_MRVL && MMC
0364 select FW_LOADER
0365 select WANT_DEV_COREDUMP
0366 help
0367 The driver for Marvell Bluetooth chipsets with SDIO interface.
0368
0369 This driver is required if you want to use Marvell Bluetooth
0370 devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997
0371 chipsets are supported.
0372
0373 Say Y here to compile support for Marvell BT-over-SDIO driver
0374 into the kernel or say M to compile it as module.
0375
0376 config BT_ATH3K
0377 tristate "Atheros firmware download driver"
0378 depends on BT_HCIBTUSB
0379 select FW_LOADER
0380 help
0381 Bluetooth firmware download driver.
0382 This driver loads the firmware into the Atheros Bluetooth
0383 chipset.
0384
0385 Say Y here to compile support for "Atheros firmware download driver"
0386 into the kernel or say M to compile it as module (ath3k).
0387
0388 config BT_MTKSDIO
0389 tristate "MediaTek HCI SDIO driver"
0390 depends on MMC
0391 select BT_MTK
0392 help
0393 MediaTek Bluetooth HCI SDIO driver.
0394 This driver is required if you want to use MediaTek Bluetooth
0395 with SDIO interface.
0396
0397 Say Y here to compile support for MediaTek Bluetooth SDIO devices
0398 into the kernel or say M to compile it as module (btmtksdio).
0399
0400 config BT_MTKUART
0401 tristate "MediaTek HCI UART driver"
0402 depends on SERIAL_DEV_BUS
0403 select BT_MTK
0404 help
0405 MediaTek Bluetooth HCI UART driver.
0406 This driver is required if you want to use MediaTek Bluetooth
0407 with serial interface.
0408
0409 Say Y here to compile support for MediaTek Bluetooth UART devices
0410 into the kernel or say M to compile it as module (btmtkuart).
0411
0412 config BT_QCOMSMD
0413 tristate "Qualcomm SMD based HCI support"
0414 depends on RPMSG || (COMPILE_TEST && RPMSG=n)
0415 depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
0416 select BT_QCA
0417 help
0418 Qualcomm SMD based HCI driver.
0419 This driver is used to bridge HCI data onto the shared memory
0420 channels to the WCNSS core.
0421
0422 Say Y here to compile support for HCI over Qualcomm SMD into the
0423 kernel or say M to compile as a module.
0424
0425 config BT_HCIRSI
0426 tristate
0427 help
0428 Redpine BT driver.
0429 This driver handles BT traffic from upper layers and pass
0430 to the RSI_91x coex module for further scheduling to device
0431
0432 Say Y here to compile support for HCI over Redpine into the
0433 kernel or say M to compile as a module.
0434
0435 config BT_VIRTIO
0436 tristate "Virtio Bluetooth driver"
0437 depends on VIRTIO
0438 help
0439 Virtio Bluetooth support driver.
0440 This driver supports Virtio Bluetooth devices.
0441
0442 Say Y here to compile support for HCI over Virtio into the
0443 kernel or say M to compile as a module.
0444
0445 endmenu