projects/linux·blob master · refs

475 lines · 13.5 KiB

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_HCIVHCI
341 tristate "HCI VHCI (Virtual HCI device) driver"
342 select WANT_DEV_COREDUMP
343 help
344 Bluetooth Virtual HCI device driver.
345 This driver is required if you want to use HCI Emulation software.
346
347 Say Y here to compile support for virtual HCI devices into the
348 kernel or say M to compile it as module (hci_vhci).
349
350config BT_MRVL
351 tristate "Marvell Bluetooth driver support"
352 help
353 The core driver to support Marvell Bluetooth devices.
354
355 This driver is required if you want to support
356 Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8977/8987/8997.
357
358 Say Y here to compile Marvell Bluetooth driver
359 into the kernel or say M to compile it as module.
360
361config BT_MRVL_SDIO
362 tristate "Marvell BT-over-SDIO driver"
363 depends on BT_MRVL && MMC
364 select FW_LOADER
365 select WANT_DEV_COREDUMP
366 help
367 The driver for Marvell Bluetooth chipsets with SDIO interface.
368
369 This driver is required if you want to use Marvell Bluetooth
370 devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997
371 chipsets are supported.
372
373 Say Y here to compile support for Marvell BT-over-SDIO driver
374 into the kernel or say M to compile it as module.
375
376config BT_ATH3K
377 tristate "Atheros firmware download driver"
378 depends on BT_HCIBTUSB
379 select FW_LOADER
380 help
381 Bluetooth firmware download driver.
382 This driver loads the firmware into the Atheros Bluetooth
383 chipset.
384
385 Say Y here to compile support for "Atheros firmware download driver"
386 into the kernel or say M to compile it as module (ath3k).
387
388config BT_MTKSDIO
389 tristate "MediaTek HCI SDIO driver"
390 depends on MMC
391 depends on USB || !BT_HCIBTUSB_MTK
392 select BT_MTK
393 help
394 MediaTek Bluetooth HCI SDIO driver.
395 This driver is required if you want to use MediaTek Bluetooth
396 with SDIO interface.
397
398 Say Y here to compile support for MediaTek Bluetooth SDIO devices
399 into the kernel or say M to compile it as module (btmtksdio).
400
401config BT_MTKUART
402 tristate "MediaTek HCI UART driver"
403 depends on BT_HCIUART
404 depends on SERIAL_DEV_BUS
405 depends on USB || !BT_HCIBTUSB_MTK
406 select BT_HCIUART_H4
407 select BT_MTK
408 help
409 MediaTek Bluetooth HCI UART driver.
410 This driver is required if you want to use MediaTek Bluetooth
411 with serial interface.
412
413 Say Y here to compile support for MediaTek Bluetooth UART devices
414 into the kernel or say M to compile it as module (btmtkuart).
415
416config BT_QCOMSMD
417 tristate "Qualcomm SMD based HCI support"
418 depends on RPMSG || (COMPILE_TEST && RPMSG=n)
419 depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
420 select BT_QCA
421 help
422 Qualcomm SMD based HCI driver.
423 This driver is used to bridge HCI data onto the shared memory
424 channels to the WCNSS core.
425
426 Say Y here to compile support for HCI over Qualcomm SMD into the
427 kernel or say M to compile as a module.
428
429config BT_HCIRSI
430 tristate
431 help
432 Redpine BT driver.
433 This driver handles BT traffic from upper layers and pass
434 to the RSI_91x coex module for further scheduling to device
435
436 Say Y here to compile support for HCI over Redpine into the
437 kernel or say M to compile as a module.
438
439config BT_VIRTIO
440 tristate "Virtio Bluetooth driver"
441 depends on VIRTIO
442 help
443 Virtio Bluetooth support driver.
444 This driver supports Virtio Bluetooth devices.
445
446 Say Y here to compile support for HCI over Virtio into the
447 kernel or say M to compile as a module.
448
449config BT_NXPUART
450 tristate "NXP protocol support"
451 depends on BT_HCIUART
452 depends on SERIAL_DEV_BUS
453 select BT_HCIUART_H4
454 select CRC32
455 select CRC8
456 help
457 NXP is serial driver required for NXP Bluetooth
458 devices with UART interface.
459
460 Say Y here to compile support for NXP Bluetooth UART device into
461 the kernel, or say M here to compile as a module (btnxpuart).
462
463config BT_INTEL_PCIE
464 tristate "Intel HCI PCIe driver"
465 depends on PCI && ACPI
466 select BT_INTEL
467 select FW_LOADER
468 help
469 Intel Bluetooth transport driver for PCIe.
470 This driver is required if you want to use Intel Bluetooth device
471 with PCIe interface.
472
473 Say Y here to compiler support for Intel Bluetooth PCIe device into
474 the kernel or say M to compile it as module (btintel_pcie)
475endmenu