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