1 # SPDX-License-Identifier: GPL-2.0
3 menu "Bluetooth device drivers"
27 tristate "HCI USB driver"
31 Bluetooth HCI USB driver.
32 This driver is required if you want to use Bluetooth devices with
35 Say Y here to compile support for Bluetooth USB devices into the
36 kernel or say M to compile it as module (btusb).
38 config BT_HCIBTUSB_AUTOSUSPEND
39 bool "Enable USB autosuspend for Bluetooth USB devices by default"
40 depends on BT_HCIBTUSB
42 Say Y here to enable USB autosuspend for Bluetooth USB devices by
45 This can be overridden by passing btusb.enable_autosuspend=[y|n]
46 on the kernel commandline.
48 config BT_HCIBTUSB_POLL_SYNC
49 bool "Enable USB poll_sync for Bluetooth USB devices by default"
50 depends on BT_HCIBTUSB
53 poll_sync synchronizes the USB data and event endpoints by
54 prioritizing the later.
56 Say Y here to enable USB poll_sync for Bluetooth USB devices by
59 config BT_HCIBTUSB_BCM
60 bool "Broadcom protocol support"
61 depends on BT_HCIBTUSB
65 The Broadcom protocol support enables firmware and patchram
66 download support for Broadcom Bluetooth controllers.
68 Say Y here to compile support for Broadcom protocol.
70 config BT_HCIBTUSB_MTK
71 bool "MediaTek protocol support"
72 depends on BT_HCIBTUSB
76 The MediaTek protocol support enables firmware download
77 support and chip initialization for MediaTek Bluetooth
80 Say Y here to compile support for MediaTek protocol.
82 config BT_HCIBTUSB_RTL
83 bool "Realtek protocol support"
84 depends on BT_HCIBTUSB
88 The Realtek protocol support enables firmware and configuration
89 download support for Realtek Bluetooth controllers.
91 Say Y here to compile support for Realtek protocol.
94 tristate "HCI SDIO driver"
97 Bluetooth HCI SDIO driver.
98 This driver is required if you want to use Bluetooth device with
101 Say Y here to compile support for Bluetooth SDIO devices into the
102 kernel or say M to compile it as module (btsdio).
105 tristate "HCI UART driver"
106 depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
107 depends on NVMEM || !NVMEM
108 depends on POWER_SEQUENCING || !POWER_SEQUENCING
111 Bluetooth HCI UART driver.
112 This driver is required if you want to use Bluetooth devices with
113 serial port interface. You will also need this driver if you have
114 UART based Bluetooth PCMCIA and CF devices like Xircom Credit Card
115 adapter and BrainBoxes Bluetooth PC Card.
117 Say Y here to compile support for Bluetooth UART devices into the
118 kernel or say M to compile it as module (hci_uart).
120 config BT_HCIUART_SERDEV
122 depends on SERIAL_DEV_BUS && BT_HCIUART
126 bool "UART (H4) protocol support"
127 depends on BT_HCIUART
129 UART (H4) is serial protocol for communication between Bluetooth
130 device and host. This protocol is required for most Bluetooth devices
131 with UART interface, including PCMCIA and CF cards.
133 Say Y here to compile support for HCI UART (H4) protocol.
135 config BT_HCIUART_NOKIA
136 tristate "UART Nokia H4+ protocol support"
137 depends on BT_HCIUART
138 depends on BT_HCIUART_SERDEV
144 Nokia H4+ is serial protocol for communication between Bluetooth
145 device and host. This protocol is required for Bluetooth devices
146 with UART interface in Nokia devices.
148 Say Y here to compile support for Nokia's H4+ protocol.
150 config BT_HCIUART_BCSP
151 bool "BCSP protocol support"
152 depends on BT_HCIUART
155 BCSP (BlueCore Serial Protocol) is serial protocol for communication
156 between Bluetooth device and host. This protocol is required for non
157 USB Bluetooth devices based on CSR BlueCore chip, including PCMCIA and
160 Say Y here to compile support for HCI BCSP protocol.
162 config BT_HCIUART_ATH3K
163 bool "Atheros AR300x serial support"
164 depends on BT_HCIUART
167 HCIATH3K (HCI Atheros AR300x) is a serial protocol for
168 communication between host and Atheros AR300x Bluetooth devices.
169 This protocol enables AR300x chips to be enabled with
170 power management support.
171 Enable this if you have Atheros AR300x serial Bluetooth device.
173 Say Y here to compile support for HCI UART ATH3K protocol.
176 bool "HCILL protocol support"
177 depends on BT_HCIUART_SERDEV
180 HCILL (HCI Low Level) is a serial protocol for communication
181 between Bluetooth device and host. This protocol is required for
182 serial Bluetooth devices that are based on Texas Instruments'
185 Say Y here to compile support for HCILL protocol.
187 config BT_HCIUART_3WIRE
188 bool "Three-wire UART (H5) protocol support"
189 depends on BT_HCIUART
190 depends on BT_HCIUART_SERDEV
192 The HCI Three-wire UART Transport Layer makes it possible to
193 user the Bluetooth HCI over a serial port interface. The HCI
194 Three-wire UART Transport Layer assumes that the UART
195 communication may have bit errors, overrun errors or burst
196 errors and thereby making CTS/RTS lines unnecessary.
198 Say Y here to compile support for Three-wire UART protocol.
200 config BT_HCIUART_INTEL
201 bool "Intel protocol support"
202 depends on BT_HCIUART
207 The Intel protocol support enables Bluetooth HCI over serial
208 port interface for Intel Bluetooth controllers.
210 Say Y here to compile support for Intel protocol.
212 config BT_HCIUART_BCM
213 bool "Broadcom protocol support"
214 depends on BT_HCIUART
215 depends on BT_HCIUART_SERDEV
216 depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
221 The Broadcom protocol support enables Bluetooth HCI over serial
222 port interface for Broadcom Bluetooth controllers.
224 Say Y here to compile support for Broadcom protocol.
226 config BT_HCIUART_RTL
227 bool "Realtek protocol support"
228 depends on BT_HCIUART
229 depends on BT_HCIUART_SERDEV
231 depends on (ACPI || SERIAL_DEV_CTRL_TTYPORT)
232 select BT_HCIUART_3WIRE
235 The Realtek protocol support enables Bluetooth HCI over 3-Wire
236 serial port interface for Realtek Bluetooth controllers.
238 Say Y here to compile support for Realtek protocol.
240 config BT_HCIUART_QCA
241 bool "Qualcomm Atheros protocol support"
242 depends on BT_HCIUART
243 depends on BT_HCIUART_SERDEV
247 The Qualcomm Atheros protocol supports HCI In-Band Sleep feature
248 over serial port interface(H4) between controller and host.
249 This protocol is required for UART clock control for QCA Bluetooth
252 Say Y here to compile support for QCA protocol.
254 config BT_HCIUART_AG6XX
255 bool "Intel AG6XX protocol support"
256 depends on BT_HCIUART
260 The Intel/AG6XX protocol support enables Bluetooth HCI over serial
261 port interface for Intel ibt 2.1 Bluetooth controllers.
263 Say Y here to compile support for Intel AG6XX protocol.
265 config BT_HCIUART_MRVL
266 bool "Marvell protocol support"
267 depends on BT_HCIUART
268 depends on BT_HCIUART_SERDEV
271 Marvell is serial protocol for communication between Bluetooth
272 device and host. This protocol is required for most Marvell Bluetooth
273 devices with UART interface.
275 Say Y here to compile support for HCI MRVL protocol.
278 tristate "HCI BCM203x USB driver"
282 Bluetooth HCI BCM203x USB driver.
283 This driver provides the firmware loading mechanism for the Broadcom
284 Blutonium based devices.
286 Say Y here to compile support for HCI BCM203x devices into the
287 kernel or say M to compile it as module (bcm203x).
291 tristate "HCI BCM4377/4378/4387/4388 PCIe driver"
295 Support for Broadcom BCM4377/4378/4387/4388 Bluetooth chipsets
296 attached via PCIe. These are usually found in Apple machines.
298 Say Y here to compile support for HCI BCM4377 family devices into the
299 kernel or say M to compile it as module (hci_bcm4377).
302 tristate "HCI BPA10x USB driver"
305 Bluetooth HCI BPA10x USB driver.
306 This driver provides support for the Digianswer BPA 100/105 Bluetooth
309 Say Y here to compile support for HCI BPA10x devices into the
310 kernel or say M to compile it as module (bpa10x).
313 tristate "HCI BlueFRITZ! USB driver"
317 Bluetooth HCI BlueFRITZ! USB driver.
318 This driver provides support for Bluetooth USB devices with AVM
322 Say Y here to compile support for HCI BFUSB devices into the
323 kernel or say M to compile it as module (bfusb).
326 tristate "HCI DTL1 (PC Card) driver"
329 Bluetooth HCI DTL1 (PC Card) driver.
330 This driver provides support for Bluetooth PCMCIA devices with
331 Nokia DTL1 interface:
333 Socket Bluetooth CF Card
335 Say Y here to compile support for HCI DTL1 devices into the
336 kernel or say M to compile it as module (dtl1_cs).
339 tristate "HCI BT3C (PC Card) driver"
343 Bluetooth HCI BT3C (PC Card) driver.
344 This driver provides support for Bluetooth PCMCIA devices with
346 3Com Bluetooth Card (3CRWB6096)
349 Say Y here to compile support for HCI BT3C devices into the
350 kernel or say M to compile it as module (bt3c_cs).
352 config BT_HCIBLUECARD
353 tristate "HCI BlueCard (PC Card) driver"
356 Bluetooth HCI BlueCard (PC Card) driver.
357 This driver provides support for Bluetooth PCMCIA devices with
358 Anycom BlueCard interface:
359 Anycom Bluetooth PC Card
360 Anycom Bluetooth CF Card
362 Say Y here to compile support for HCI BlueCard devices into the
363 kernel or say M to compile it as module (bluecard_cs).
366 tristate "HCI VHCI (Virtual HCI device) driver"
367 select WANT_DEV_COREDUMP
369 Bluetooth Virtual HCI device driver.
370 This driver is required if you want to use HCI Emulation software.
372 Say Y here to compile support for virtual HCI devices into the
373 kernel or say M to compile it as module (hci_vhci).
376 tristate "Marvell Bluetooth driver support"
378 The core driver to support Marvell Bluetooth devices.
380 This driver is required if you want to support
381 Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8977/8987/8997.
383 Say Y here to compile Marvell Bluetooth driver
384 into the kernel or say M to compile it as module.
387 tristate "Marvell BT-over-SDIO driver"
388 depends on BT_MRVL && MMC
390 select WANT_DEV_COREDUMP
392 The driver for Marvell Bluetooth chipsets with SDIO interface.
394 This driver is required if you want to use Marvell Bluetooth
395 devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997
396 chipsets are supported.
398 Say Y here to compile support for Marvell BT-over-SDIO driver
399 into the kernel or say M to compile it as module.
402 tristate "Atheros firmware download driver"
403 depends on BT_HCIBTUSB
406 Bluetooth firmware download driver.
407 This driver loads the firmware into the Atheros Bluetooth
410 Say Y here to compile support for "Atheros firmware download driver"
411 into the kernel or say M to compile it as module (ath3k).
414 tristate "MediaTek HCI SDIO driver"
416 depends on USB || !BT_HCIBTUSB_MTK
419 MediaTek Bluetooth HCI SDIO driver.
420 This driver is required if you want to use MediaTek Bluetooth
423 Say Y here to compile support for MediaTek Bluetooth SDIO devices
424 into the kernel or say M to compile it as module (btmtksdio).
427 tristate "MediaTek HCI UART driver"
428 depends on SERIAL_DEV_BUS
429 depends on USB || !BT_HCIBTUSB_MTK
432 MediaTek Bluetooth HCI UART driver.
433 This driver is required if you want to use MediaTek Bluetooth
434 with serial interface.
436 Say Y here to compile support for MediaTek Bluetooth UART devices
437 into the kernel or say M to compile it as module (btmtkuart).
440 tristate "Qualcomm SMD based HCI support"
441 depends on RPMSG || (COMPILE_TEST && RPMSG=n)
442 depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
445 Qualcomm SMD based HCI driver.
446 This driver is used to bridge HCI data onto the shared memory
447 channels to the WCNSS core.
449 Say Y here to compile support for HCI over Qualcomm SMD into the
450 kernel or say M to compile as a module.
456 This driver handles BT traffic from upper layers and pass
457 to the RSI_91x coex module for further scheduling to device
459 Say Y here to compile support for HCI over Redpine into the
460 kernel or say M to compile as a module.
463 tristate "Virtio Bluetooth driver"
466 Virtio Bluetooth support driver.
467 This driver supports Virtio Bluetooth devices.
469 Say Y here to compile support for HCI over Virtio into the
470 kernel or say M to compile as a module.
473 tristate "NXP protocol support"
474 depends on SERIAL_DEV_BUS
478 NXP is serial driver required for NXP Bluetooth
479 devices with UART interface.
481 Say Y here to compile support for NXP Bluetooth UART device into
482 the kernel, or say M here to compile as a module (btnxpuart).
485 tristate "Intel HCI PCIe driver"
490 Intel Bluetooth transport driver for PCIe.
491 This driver is required if you want to use Intel Bluetooth device
494 Say Y here to compiler support for Intel Bluetooth PCIe device into
495 the kernel or say M to compile it as module (btintel_pcie)