Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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_MTK
23 tristate
24 select FW_LOADER
25
26config BT_HCIBTUSB
27 tristate "HCI USB driver"
28 depends on USB
29 select BT_INTEL
30 help
31 Bluetooth HCI USB driver.
32 This driver is required if you want to use Bluetooth devices with
33 USB interface.
34
35 Say Y here to compile support for Bluetooth USB devices into the
36 kernel or say M to compile it as module (btusb).
37
38config BT_HCIBTUSB_AUTOSUSPEND
39 bool "Enable USB autosuspend for Bluetooth USB devices by default"
40 depends on BT_HCIBTUSB
41 help
42 Say Y here to enable USB autosuspend for Bluetooth USB devices by
43 default.
44
45 This can be overridden by passing btusb.enable_autosuspend=[y|n]
46 on the kernel commandline.
47
48config BT_HCIBTUSB_POLL_SYNC
49 bool "Enable USB poll_sync for Bluetooth USB devices by default"
50 depends on BT_HCIBTUSB
51 default y
52 help
53 poll_sync synchronizes the USB data and event endpoints by
54 prioritizing the later.
55
56 Say Y here to enable USB poll_sync for Bluetooth USB devices by
57 default.
58
59config BT_HCIBTUSB_BCM
60 bool "Broadcom protocol support"
61 depends on BT_HCIBTUSB
62 select BT_BCM
63 default y
64 help
65 The Broadcom protocol support enables firmware and patchram
66 download support for Broadcom Bluetooth controllers.
67
68 Say Y here to compile support for Broadcom protocol.
69
70config BT_HCIBTUSB_MTK
71 bool "MediaTek protocol support"
72 depends on BT_HCIBTUSB
73 select BT_MTK
74 default n
75 help
76 The MediaTek protocol support enables firmware download
77 support and chip initialization for MediaTek Bluetooth
78 USB controllers.
79
80 Say Y here to compile support for MediaTek protocol.
81
82config BT_HCIBTUSB_RTL
83 bool "Realtek protocol support"
84 depends on BT_HCIBTUSB
85 select BT_RTL
86 default y
87 help
88 The Realtek protocol support enables firmware and configuration
89 download support for Realtek Bluetooth controllers.
90
91 Say Y here to compile support for Realtek protocol.
92
93config BT_HCIBTSDIO
94 tristate "HCI SDIO driver"
95 depends on MMC
96 help
97 Bluetooth HCI SDIO driver.
98 This driver is required if you want to use Bluetooth device with
99 SDIO interface.
100
101 Say Y here to compile support for Bluetooth SDIO devices into the
102 kernel or say M to compile it as module (btsdio).
103
104config BT_HCIUART
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
109 depends on TTY
110 help
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.
116
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).
119
120config BT_HCIUART_SERDEV
121 bool
122 depends on SERIAL_DEV_BUS && BT_HCIUART
123 default y
124
125config BT_HCIUART_H4
126 bool "UART (H4) protocol support"
127 depends on BT_HCIUART
128 help
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.
132
133 Say Y here to compile support for HCI UART (H4) protocol.
134
135config BT_HCIUART_NOKIA
136 tristate "UART Nokia H4+ protocol support"
137 depends on BT_HCIUART
138 depends on BT_HCIUART_SERDEV
139 depends on GPIOLIB
140 depends on PM
141 select BT_HCIUART_H4
142 select BT_BCM
143 help
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.
147
148 Say Y here to compile support for Nokia's H4+ protocol.
149
150config BT_HCIUART_BCSP
151 bool "BCSP protocol support"
152 depends on BT_HCIUART
153 select BITREVERSE
154 help
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
158 CF cards.
159
160 Say Y here to compile support for HCI BCSP protocol.
161
162config BT_HCIUART_ATH3K
163 bool "Atheros AR300x serial support"
164 depends on BT_HCIUART
165 select BT_HCIUART_H4
166 help
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.
172
173 Say Y here to compile support for HCI UART ATH3K protocol.
174
175config BT_HCIUART_LL
176 bool "HCILL protocol support"
177 depends on BT_HCIUART_SERDEV
178 select BT_HCIUART_H4
179 help
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'
183 BRF chips.
184
185 Say Y here to compile support for HCILL protocol.
186
187config BT_HCIUART_3WIRE
188 bool "Three-wire UART (H5) protocol support"
189 depends on BT_HCIUART
190 depends on BT_HCIUART_SERDEV
191 select CRC_CCITT
192 help
193 The HCI Three-wire UART Transport Layer makes it possible to
194 user the Bluetooth HCI over a serial port interface. The HCI
195 Three-wire UART Transport Layer assumes that the UART
196 communication may have bit errors, overrun errors or burst
197 errors and thereby making CTS/RTS lines unnecessary.
198
199 Say Y here to compile support for Three-wire UART protocol.
200
201config BT_HCIUART_INTEL
202 bool "Intel protocol support"
203 depends on BT_HCIUART
204 depends on GPIOLIB
205 select BT_HCIUART_H4
206 select BT_INTEL
207 help
208 The Intel protocol support enables Bluetooth HCI over serial
209 port interface for Intel Bluetooth controllers.
210
211 Say Y here to compile support for Intel protocol.
212
213config BT_HCIUART_BCM
214 bool "Broadcom protocol support"
215 depends on BT_HCIUART
216 depends on BT_HCIUART_SERDEV
217 depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
218 depends on GPIOLIB
219 select BT_HCIUART_H4
220 select BT_BCM
221 help
222 The Broadcom protocol support enables Bluetooth HCI over serial
223 port interface for Broadcom Bluetooth controllers.
224
225 Say Y here to compile support for Broadcom protocol.
226
227config BT_HCIUART_RTL
228 bool "Realtek protocol support"
229 depends on BT_HCIUART
230 depends on BT_HCIUART_SERDEV
231 depends on GPIOLIB
232 depends on (ACPI || SERIAL_DEV_CTRL_TTYPORT)
233 select BT_HCIUART_3WIRE
234 select BT_RTL
235 help
236 The Realtek protocol support enables Bluetooth HCI over 3-Wire
237 serial port interface for Realtek Bluetooth controllers.
238
239 Say Y here to compile support for Realtek protocol.
240
241config BT_HCIUART_QCA
242 bool "Qualcomm Atheros protocol support"
243 depends on BT_HCIUART
244 depends on BT_HCIUART_SERDEV
245 select BT_HCIUART_H4
246 select BT_QCA
247 help
248 The Qualcomm Atheros protocol supports HCI In-Band Sleep feature
249 over serial port interface(H4) between controller and host.
250 This protocol is required for UART clock control for QCA Bluetooth
251 devices.
252
253 Say Y here to compile support for QCA protocol.
254
255config BT_HCIUART_AG6XX
256 bool "Intel AG6XX protocol support"
257 depends on BT_HCIUART
258 select BT_HCIUART_H4
259 select BT_INTEL
260 help
261 The Intel/AG6XX protocol support enables Bluetooth HCI over serial
262 port interface for Intel ibt 2.1 Bluetooth controllers.
263
264 Say Y here to compile support for Intel AG6XX protocol.
265
266config BT_HCIUART_MRVL
267 bool "Marvell protocol support"
268 depends on BT_HCIUART
269 depends on BT_HCIUART_SERDEV
270 select BT_HCIUART_H4
271 help
272 Marvell is serial protocol for communication between Bluetooth
273 device and host. This protocol is required for most Marvell Bluetooth
274 devices with UART interface.
275
276 Say Y here to compile support for HCI MRVL protocol.
277
278config BT_HCIUART_AML
279 bool "Amlogic protocol support"
280 depends on BT_HCIUART
281 depends on BT_HCIUART_SERDEV
282 select BT_HCIUART_H4
283 select FW_LOADER
284 help
285 The Amlogic protocol support enables Bluetooth HCI over serial
286 port interface for Amlogic Bluetooth controllers.
287
288 Say Y here to compile support for HCI AML protocol.
289
290config BT_HCIBCM203X
291 tristate "HCI BCM203x USB driver"
292 depends on USB
293 select FW_LOADER
294 help
295 Bluetooth HCI BCM203x USB driver.
296 This driver provides the firmware loading mechanism for the Broadcom
297 Blutonium based devices.
298
299 Say Y here to compile support for HCI BCM203x devices into the
300 kernel or say M to compile it as module (bcm203x).
301
302
303config BT_HCIBCM4377
304 tristate "HCI BCM4377/4378/4387/4388 PCIe driver"
305 depends on PCI
306 select FW_LOADER
307 help
308 Support for Broadcom BCM4377/4378/4387/4388 Bluetooth chipsets
309 attached via PCIe. These are usually found in Apple machines.
310
311 Say Y here to compile support for HCI BCM4377 family devices into the
312 kernel or say M to compile it as module (hci_bcm4377).
313
314config BT_HCIBPA10X
315 tristate "HCI BPA10x USB driver"
316 depends on BT_HCIUART
317 depends on USB
318 select BT_HCIUART_H4
319 help
320 Bluetooth HCI BPA10x USB driver.
321 This driver provides support for the Digianswer BPA 100/105 Bluetooth
322 sniffer devices.
323
324 Say Y here to compile support for HCI BPA10x devices into the
325 kernel or say M to compile it as module (bpa10x).
326
327config BT_HCIBFUSB
328 tristate "HCI BlueFRITZ! USB driver"
329 depends on USB
330 select FW_LOADER
331 help
332 Bluetooth HCI BlueFRITZ! USB driver.
333 This driver provides support for Bluetooth USB devices with AVM
334 interface:
335 AVM BlueFRITZ! USB
336
337 Say Y here to compile support for HCI BFUSB devices into the
338 kernel or say M to compile it as module (bfusb).
339
340config BT_HCIDTL1
341 tristate "HCI DTL1 (PC Card) driver"
342 depends on PCMCIA && HAS_IOPORT
343 help
344 Bluetooth HCI DTL1 (PC Card) driver.
345 This driver provides support for Bluetooth PCMCIA devices with
346 Nokia DTL1 interface:
347 Nokia Bluetooth Card
348 Socket Bluetooth CF Card
349
350 Say Y here to compile support for HCI DTL1 devices into the
351 kernel or say M to compile it as module (dtl1_cs).
352
353config BT_HCIBT3C
354 tristate "HCI BT3C (PC Card) driver"
355 depends on PCMCIA && HAS_IOPORT
356 select FW_LOADER
357 help
358 Bluetooth HCI BT3C (PC Card) driver.
359 This driver provides support for Bluetooth PCMCIA devices with
360 3Com BT3C interface:
361 3Com Bluetooth Card (3CRWB6096)
362 HP Bluetooth Card
363
364 Say Y here to compile support for HCI BT3C devices into the
365 kernel or say M to compile it as module (bt3c_cs).
366
367config BT_HCIBLUECARD
368 tristate "HCI BlueCard (PC Card) driver"
369 depends on PCMCIA && HAS_IOPORT
370 help
371 Bluetooth HCI BlueCard (PC Card) driver.
372 This driver provides support for Bluetooth PCMCIA devices with
373 Anycom BlueCard interface:
374 Anycom Bluetooth PC Card
375 Anycom Bluetooth CF Card
376
377 Say Y here to compile support for HCI BlueCard devices into the
378 kernel or say M to compile it as module (bluecard_cs).
379
380config BT_HCIVHCI
381 tristate "HCI VHCI (Virtual HCI device) driver"
382 select WANT_DEV_COREDUMP
383 help
384 Bluetooth Virtual HCI device driver.
385 This driver is required if you want to use HCI Emulation software.
386
387 Say Y here to compile support for virtual HCI devices into the
388 kernel or say M to compile it as module (hci_vhci).
389
390config BT_MRVL
391 tristate "Marvell Bluetooth driver support"
392 help
393 The core driver to support Marvell Bluetooth devices.
394
395 This driver is required if you want to support
396 Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8977/8987/8997.
397
398 Say Y here to compile Marvell Bluetooth driver
399 into the kernel or say M to compile it as module.
400
401config BT_MRVL_SDIO
402 tristate "Marvell BT-over-SDIO driver"
403 depends on BT_MRVL && MMC
404 select FW_LOADER
405 select WANT_DEV_COREDUMP
406 help
407 The driver for Marvell Bluetooth chipsets with SDIO interface.
408
409 This driver is required if you want to use Marvell Bluetooth
410 devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997
411 chipsets are supported.
412
413 Say Y here to compile support for Marvell BT-over-SDIO driver
414 into the kernel or say M to compile it as module.
415
416config BT_ATH3K
417 tristate "Atheros firmware download driver"
418 depends on BT_HCIBTUSB
419 select FW_LOADER
420 help
421 Bluetooth firmware download driver.
422 This driver loads the firmware into the Atheros Bluetooth
423 chipset.
424
425 Say Y here to compile support for "Atheros firmware download driver"
426 into the kernel or say M to compile it as module (ath3k).
427
428config BT_MTKSDIO
429 tristate "MediaTek HCI SDIO driver"
430 depends on MMC
431 depends on USB || !BT_HCIBTUSB_MTK
432 select BT_MTK
433 help
434 MediaTek Bluetooth HCI SDIO driver.
435 This driver is required if you want to use MediaTek Bluetooth
436 with SDIO interface.
437
438 Say Y here to compile support for MediaTek Bluetooth SDIO devices
439 into the kernel or say M to compile it as module (btmtksdio).
440
441config BT_MTKUART
442 tristate "MediaTek HCI UART driver"
443 depends on BT_HCIUART
444 depends on SERIAL_DEV_BUS
445 depends on USB || !BT_HCIBTUSB_MTK
446 select BT_HCIUART_H4
447 select BT_MTK
448 help
449 MediaTek Bluetooth HCI UART driver.
450 This driver is required if you want to use MediaTek Bluetooth
451 with serial interface.
452
453 Say Y here to compile support for MediaTek Bluetooth UART devices
454 into the kernel or say M to compile it as module (btmtkuart).
455
456config BT_QCOMSMD
457 tristate "Qualcomm SMD based HCI support"
458 depends on RPMSG || (COMPILE_TEST && RPMSG=n)
459 depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
460 select BT_QCA
461 help
462 Qualcomm SMD based HCI driver.
463 This driver is used to bridge HCI data onto the shared memory
464 channels to the WCNSS core.
465
466 Say Y here to compile support for HCI over Qualcomm SMD into the
467 kernel or say M to compile as a module.
468
469config BT_HCIRSI
470 tristate
471 help
472 Redpine BT driver.
473 This driver handles BT traffic from upper layers and pass
474 to the RSI_91x coex module for further scheduling to device
475
476 Say Y here to compile support for HCI over Redpine into the
477 kernel or say M to compile as a module.
478
479config BT_VIRTIO
480 tristate "Virtio Bluetooth driver"
481 depends on VIRTIO
482 help
483 Virtio Bluetooth support driver.
484 This driver supports Virtio Bluetooth devices.
485
486 Say Y here to compile support for HCI over Virtio into the
487 kernel or say M to compile as a module.
488
489config BT_NXPUART
490 tristate "NXP protocol support"
491 depends on BT_HCIUART
492 depends on SERIAL_DEV_BUS
493 select BT_HCIUART_H4
494 select CRC32
495 select CRC8
496 help
497 NXP is serial driver required for NXP Bluetooth
498 devices with UART interface.
499
500 Say Y here to compile support for NXP Bluetooth UART device into
501 the kernel, or say M here to compile as a module (btnxpuart).
502
503config BT_INTEL_PCIE
504 tristate "Intel HCI PCIe driver"
505 depends on PCI
506 select BT_INTEL
507 select FW_LOADER
508 help
509 Intel Bluetooth transport driver for PCIe.
510 This driver is required if you want to use Intel Bluetooth device
511 with PCIe interface.
512
513 Say Y here to compiler support for Intel Bluetooth PCIe device into
514 the kernel or say M to compile it as module (btintel_pcie)
515endmenu