drm/nouveau: fix kernel-doc comments
[drm/drm-misc.git] / drivers / bluetooth / Kconfig
blob4ab32abf0f48644715d4c27ec0d2fdaccef62b76
1 # SPDX-License-Identifier: GPL-2.0
3 menu "Bluetooth device drivers"
4         depends on BT
6 config BT_INTEL
7         tristate
8         select REGMAP
10 config BT_BCM
11         tristate
12         select FW_LOADER
14 config BT_RTL
15         tristate
16         select FW_LOADER
18 config BT_QCA
19         tristate
20         select FW_LOADER
22 config BT_MTK
23         tristate
24         select FW_LOADER
26 config 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.
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
41         help
42           Say Y here to enable USB autosuspend for Bluetooth USB devices by
43           default.
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
51         default y
52         help
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
57           default.
59 config 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.
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
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.
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
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.
91           Say Y here to compile support for Realtek protocol.
93 config 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.
101           Say Y here to compile support for Bluetooth SDIO devices into the
102           kernel or say M to compile it as module (btsdio).
104 config 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.
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
121         bool
122         depends on SERIAL_DEV_BUS && BT_HCIUART
123         default y
125 config 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.
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
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.
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
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.
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
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.
173           Say Y here to compile support for HCI UART ATH3K protocol.
175 config 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.
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
191         help
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
203         depends on GPIOLIB
204         select BT_HCIUART_H4
205         select BT_INTEL
206         help
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)
217         depends on GPIOLIB
218         select BT_HCIUART_H4
219         select BT_BCM
220         help
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
230         depends on GPIOLIB
231         depends on (ACPI || SERIAL_DEV_CTRL_TTYPORT)
232         select BT_HCIUART_3WIRE
233         select BT_RTL
234         help
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
244         select BT_HCIUART_H4
245         select BT_QCA
246         help
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
250           devices.
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
257         select BT_HCIUART_H4
258         select BT_INTEL
259         help
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
269         select BT_HCIUART_H4
270         help
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.
277 config BT_HCIUART_AML
278         bool "Amlogic protocol support"
279         depends on BT_HCIUART
280         depends on BT_HCIUART_SERDEV
281         select BT_HCIUART_H4
282         select FW_LOADER
283         help
284           The Amlogic protocol support enables Bluetooth HCI over serial
285           port interface for Amlogic Bluetooth controllers.
287           Say Y here to compile support for HCI AML protocol.
289 config BT_HCIBCM203X
290         tristate "HCI BCM203x USB driver"
291         depends on USB
292         select FW_LOADER
293         help
294           Bluetooth HCI BCM203x USB driver.
295           This driver provides the firmware loading mechanism for the Broadcom
296           Blutonium based devices.
298           Say Y here to compile support for HCI BCM203x devices into the
299           kernel or say M to compile it as module (bcm203x).
302 config BT_HCIBCM4377
303         tristate "HCI BCM4377/4378/4387/4388 PCIe driver"
304         depends on PCI
305         select FW_LOADER
306         help
307           Support for Broadcom BCM4377/4378/4387/4388 Bluetooth chipsets
308           attached via PCIe. These are usually found in Apple machines.
310           Say Y here to compile support for HCI BCM4377 family devices into the
311           kernel or say M to compile it as module (hci_bcm4377).
313 config BT_HCIBPA10X
314         tristate "HCI BPA10x USB driver"
315         depends on USB
316         help
317           Bluetooth HCI BPA10x USB driver.
318           This driver provides support for the Digianswer BPA 100/105 Bluetooth
319           sniffer devices.
321           Say Y here to compile support for HCI BPA10x devices into the
322           kernel or say M to compile it as module (bpa10x).
324 config BT_HCIBFUSB
325         tristate "HCI BlueFRITZ! USB driver"
326         depends on USB
327         select FW_LOADER
328         help
329           Bluetooth HCI BlueFRITZ! USB driver.
330           This driver provides support for Bluetooth USB devices with AVM
331           interface:
332              AVM BlueFRITZ! USB
334           Say Y here to compile support for HCI BFUSB devices into the
335           kernel or say M to compile it as module (bfusb).
337 config BT_HCIDTL1
338         tristate "HCI DTL1 (PC Card) driver"
339         depends on PCMCIA && HAS_IOPORT
340         help
341           Bluetooth HCI DTL1 (PC Card) driver.
342           This driver provides support for Bluetooth PCMCIA devices with
343           Nokia DTL1 interface:
344              Nokia Bluetooth Card
345              Socket Bluetooth CF Card
347           Say Y here to compile support for HCI DTL1 devices into the
348           kernel or say M to compile it as module (dtl1_cs).
350 config BT_HCIBT3C
351         tristate "HCI BT3C (PC Card) driver"
352         depends on PCMCIA && HAS_IOPORT
353         select FW_LOADER
354         help
355           Bluetooth HCI BT3C (PC Card) driver.
356           This driver provides support for Bluetooth PCMCIA devices with
357           3Com BT3C interface:
358              3Com Bluetooth Card (3CRWB6096)
359              HP Bluetooth Card
361           Say Y here to compile support for HCI BT3C devices into the
362           kernel or say M to compile it as module (bt3c_cs).
364 config BT_HCIBLUECARD
365         tristate "HCI BlueCard (PC Card) driver"
366         depends on PCMCIA && HAS_IOPORT
367         help
368           Bluetooth HCI BlueCard (PC Card) driver.
369           This driver provides support for Bluetooth PCMCIA devices with
370           Anycom BlueCard interface:
371              Anycom Bluetooth PC Card
372              Anycom Bluetooth CF Card
374           Say Y here to compile support for HCI BlueCard devices into the
375           kernel or say M to compile it as module (bluecard_cs).
377 config BT_HCIVHCI
378         tristate "HCI VHCI (Virtual HCI device) driver"
379         select WANT_DEV_COREDUMP
380         help
381           Bluetooth Virtual HCI device driver.
382           This driver is required if you want to use HCI Emulation software.
384           Say Y here to compile support for virtual HCI devices into the
385           kernel or say M to compile it as module (hci_vhci).
387 config BT_MRVL
388         tristate "Marvell Bluetooth driver support"
389         help
390           The core driver to support Marvell Bluetooth devices.
392           This driver is required if you want to support
393           Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8977/8987/8997.
395           Say Y here to compile Marvell Bluetooth driver
396           into the kernel or say M to compile it as module.
398 config BT_MRVL_SDIO
399         tristate "Marvell BT-over-SDIO driver"
400         depends on BT_MRVL && MMC
401         select FW_LOADER
402         select WANT_DEV_COREDUMP
403         help
404           The driver for Marvell Bluetooth chipsets with SDIO interface.
406           This driver is required if you want to use Marvell Bluetooth
407           devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997
408           chipsets are supported.
410           Say Y here to compile support for Marvell BT-over-SDIO driver
411           into the kernel or say M to compile it as module.
413 config BT_ATH3K
414         tristate "Atheros firmware download driver"
415         depends on BT_HCIBTUSB
416         select FW_LOADER
417         help
418           Bluetooth firmware download driver.
419           This driver loads the firmware into the Atheros Bluetooth
420           chipset.
422           Say Y here to compile support for "Atheros firmware download driver"
423           into the kernel or say M to compile it as module (ath3k).
425 config BT_MTKSDIO
426         tristate "MediaTek HCI SDIO driver"
427         depends on MMC
428         depends on USB || !BT_HCIBTUSB_MTK
429         select BT_MTK
430         help
431           MediaTek Bluetooth HCI SDIO driver.
432           This driver is required if you want to use MediaTek Bluetooth
433           with SDIO interface.
435           Say Y here to compile support for MediaTek Bluetooth SDIO devices
436           into the kernel or say M to compile it as module (btmtksdio).
438 config BT_MTKUART
439         tristate "MediaTek HCI UART driver"
440         depends on SERIAL_DEV_BUS
441         depends on USB || !BT_HCIBTUSB_MTK
442         select BT_MTK
443         help
444           MediaTek Bluetooth HCI UART driver.
445           This driver is required if you want to use MediaTek Bluetooth
446           with serial interface.
448           Say Y here to compile support for MediaTek Bluetooth UART devices
449           into the kernel or say M to compile it as module (btmtkuart).
451 config BT_QCOMSMD
452         tristate "Qualcomm SMD based HCI support"
453         depends on RPMSG || (COMPILE_TEST && RPMSG=n)
454         depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
455         select BT_QCA
456         help
457           Qualcomm SMD based HCI driver.
458           This driver is used to bridge HCI data onto the shared memory
459           channels to the WCNSS core.
461           Say Y here to compile support for HCI over Qualcomm SMD into the
462           kernel or say M to compile as a module.
464 config BT_HCIRSI
465         tristate
466         help
467           Redpine BT driver.
468           This driver handles BT traffic from upper layers and pass
469           to the RSI_91x coex module for further scheduling to device
471           Say Y here to compile support for HCI over Redpine into the
472           kernel or say M to compile as a module.
474 config BT_VIRTIO
475         tristate "Virtio Bluetooth driver"
476         depends on VIRTIO
477         help
478           Virtio Bluetooth support driver.
479           This driver supports Virtio Bluetooth devices.
481           Say Y here to compile support for HCI over Virtio into the
482           kernel or say M to compile as a module.
484 config BT_NXPUART
485         tristate "NXP protocol support"
486         depends on SERIAL_DEV_BUS
487         select CRC32
488         select CRC8
489         help
490           NXP is serial driver required for NXP Bluetooth
491           devices with UART interface.
493           Say Y here to compile support for NXP Bluetooth UART device into
494           the kernel, or say M here to compile as a module (btnxpuart).
496 config BT_INTEL_PCIE
497         tristate "Intel HCI PCIe driver"
498         depends on PCI
499         select BT_INTEL
500         select FW_LOADER
501         help
502           Intel Bluetooth transport driver for PCIe.
503           This driver is required if you want to use Intel Bluetooth device
504           with PCIe interface.
506           Say Y here to compiler support for Intel Bluetooth PCIe device into
507           the kernel or say M to compile it as module (btintel_pcie)
508 endmenu