Merge tag 'core-debugobjects-2023-05-06' of git://git.kernel.org/pub/scm/linux/kernel...
[platform/kernel/linux-starfive.git] / drivers / bluetooth / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 menu "Bluetooth device drivers"
4         depends on BT
5
6 config BT_INTEL
7         tristate
8         select REGMAP
9
10 config BT_BCM
11         tristate
12         select FW_LOADER
13
14 config BT_RTL
15         tristate
16         select FW_LOADER
17
18 config BT_QCA
19         tristate
20         select FW_LOADER
21
22 config BT_MTK
23         tristate
24         select FW_LOADER
25
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.
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
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.
44
45           This can be overridden by passing btusb.enable_autosuspend=[y|n]
46           on the kernel commandline.
47
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.
55
56           Say Y here to enable USB poll_sync for Bluetooth USB devices by
57           default.
58
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.
67
68           Say Y here to compile support for Broadcom protocol.
69
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.
79
80           Say Y here to compile support for MediaTek protocol.
81
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.
90
91           Say Y here to compile support for Realtek protocol.
92
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.
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
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 TTY
109         help
110           Bluetooth HCI UART driver.
111           This driver is required if you want to use Bluetooth devices with
112           serial port interface. You will also need this driver if you have
113           UART based Bluetooth PCMCIA and CF devices like Xircom Credit Card
114           adapter and BrainBoxes Bluetooth PC Card.
115
116           Say Y here to compile support for Bluetooth UART devices into the
117           kernel or say M to compile it as module (hci_uart).
118
119 config BT_HCIUART_SERDEV
120         bool
121         depends on SERIAL_DEV_BUS && BT_HCIUART
122         default y
123
124 config BT_HCIUART_H4
125         bool "UART (H4) protocol support"
126         depends on BT_HCIUART
127         help
128           UART (H4) is serial protocol for communication between Bluetooth
129           device and host. This protocol is required for most Bluetooth devices
130           with UART interface, including PCMCIA and CF cards.
131
132           Say Y here to compile support for HCI UART (H4) protocol.
133
134 config BT_HCIUART_NOKIA
135         tristate "UART Nokia H4+ protocol support"
136         depends on BT_HCIUART
137         depends on BT_HCIUART_SERDEV
138         depends on GPIOLIB
139         depends on PM
140         select BT_HCIUART_H4
141         select BT_BCM
142         help
143           Nokia H4+ is serial protocol for communication between Bluetooth
144           device and host. This protocol is required for Bluetooth devices
145           with UART interface in Nokia devices.
146
147           Say Y here to compile support for Nokia's H4+ protocol.
148
149 config BT_HCIUART_BCSP
150         bool "BCSP protocol support"
151         depends on BT_HCIUART
152         select BITREVERSE
153         help
154           BCSP (BlueCore Serial Protocol) is serial protocol for communication
155           between Bluetooth device and host. This protocol is required for non
156           USB Bluetooth devices based on CSR BlueCore chip, including PCMCIA and
157           CF cards.
158
159           Say Y here to compile support for HCI BCSP protocol.
160
161 config BT_HCIUART_ATH3K
162         bool "Atheros AR300x serial support"
163         depends on BT_HCIUART
164         select BT_HCIUART_H4
165         help
166           HCIATH3K (HCI Atheros AR300x) is a serial protocol for
167           communication between host and Atheros AR300x Bluetooth devices.
168           This protocol enables AR300x chips to be enabled with
169           power management support.
170           Enable this if you have Atheros AR300x serial Bluetooth device.
171
172           Say Y here to compile support for HCI UART ATH3K protocol.
173
174 config BT_HCIUART_LL
175         bool "HCILL protocol support"
176         depends on BT_HCIUART_SERDEV
177         select BT_HCIUART_H4
178         help
179           HCILL (HCI Low Level) is a serial protocol for communication
180           between Bluetooth device and host. This protocol is required for
181           serial Bluetooth devices that are based on Texas Instruments'
182           BRF chips.
183
184           Say Y here to compile support for HCILL protocol.
185
186 config BT_HCIUART_3WIRE
187         bool "Three-wire UART (H5) protocol support"
188         depends on BT_HCIUART
189         depends on BT_HCIUART_SERDEV
190         help
191           The HCI Three-wire UART Transport Layer makes it possible to
192           user the Bluetooth HCI over a serial port interface. The HCI
193           Three-wire UART Transport Layer assumes that the UART
194           communication may have bit errors, overrun errors or burst
195           errors and thereby making CTS/RTS lines unnecessary.
196
197           Say Y here to compile support for Three-wire UART protocol.
198
199 config BT_HCIUART_INTEL
200         bool "Intel protocol support"
201         depends on BT_HCIUART
202         depends on GPIOLIB
203         select BT_HCIUART_H4
204         select BT_INTEL
205         help
206           The Intel protocol support enables Bluetooth HCI over serial
207           port interface for Intel Bluetooth controllers.
208
209           Say Y here to compile support for Intel protocol.
210
211 config BT_HCIUART_BCM
212         bool "Broadcom protocol support"
213         depends on BT_HCIUART
214         depends on BT_HCIUART_SERDEV
215         depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
216         depends on GPIOLIB
217         select BT_HCIUART_H4
218         select BT_BCM
219         help
220           The Broadcom protocol support enables Bluetooth HCI over serial
221           port interface for Broadcom Bluetooth controllers.
222
223           Say Y here to compile support for Broadcom protocol.
224
225 config BT_HCIUART_RTL
226         bool "Realtek protocol support"
227         depends on BT_HCIUART
228         depends on BT_HCIUART_SERDEV
229         depends on GPIOLIB
230         depends on (ACPI || SERIAL_DEV_CTRL_TTYPORT)
231         select BT_HCIUART_3WIRE
232         select BT_RTL
233         help
234           The Realtek protocol support enables Bluetooth HCI over 3-Wire
235           serial port interface for Realtek Bluetooth controllers.
236
237           Say Y here to compile support for Realtek protocol.
238
239 config BT_HCIUART_QCA
240         bool "Qualcomm Atheros protocol support"
241         depends on BT_HCIUART
242         depends on BT_HCIUART_SERDEV
243         select BT_HCIUART_H4
244         select BT_QCA
245         help
246           The Qualcomm Atheros protocol supports HCI In-Band Sleep feature
247           over serial port interface(H4) between controller and host.
248           This protocol is required for UART clock control for QCA Bluetooth
249           devices.
250
251           Say Y here to compile support for QCA protocol.
252
253 config BT_HCIUART_AG6XX
254         bool "Intel AG6XX protocol support"
255         depends on BT_HCIUART
256         select BT_HCIUART_H4
257         select BT_INTEL
258         help
259           The Intel/AG6XX protocol support enables Bluetooth HCI over serial
260           port interface for Intel ibt 2.1 Bluetooth controllers.
261
262           Say Y here to compile support for Intel AG6XX protocol.
263
264 config BT_HCIUART_MRVL
265         bool "Marvell protocol support"
266         depends on BT_HCIUART
267         depends on BT_HCIUART_SERDEV
268         select BT_HCIUART_H4
269         help
270           Marvell is serial protocol for communication between Bluetooth
271           device and host. This protocol is required for most Marvell Bluetooth
272           devices with UART interface.
273
274           Say Y here to compile support for HCI MRVL protocol.
275
276 config BT_HCIBCM203X
277         tristate "HCI BCM203x USB driver"
278         depends on USB
279         select FW_LOADER
280         help
281           Bluetooth HCI BCM203x USB driver.
282           This driver provides the firmware loading mechanism for the Broadcom
283           Blutonium based devices.
284
285           Say Y here to compile support for HCI BCM203x devices into the
286           kernel or say M to compile it as module (bcm203x).
287
288
289 config BT_HCIBCM4377
290         tristate "HCI BCM4377/4378/4387 PCIe driver"
291         depends on PCI
292         select FW_LOADER
293         help
294           Support for Broadcom BCM4377/4378/4387 Bluetooth chipsets attached via
295           PCIe. These are usually found in Apple machines.
296
297           Say Y here to compile support for HCI BCM4377 family devices into the
298           kernel or say M to compile it as module (hci_bcm4377).
299
300 config BT_HCIBPA10X
301         tristate "HCI BPA10x USB driver"
302         depends on USB
303         help
304           Bluetooth HCI BPA10x USB driver.
305           This driver provides support for the Digianswer BPA 100/105 Bluetooth
306           sniffer devices.
307
308           Say Y here to compile support for HCI BPA10x devices into the
309           kernel or say M to compile it as module (bpa10x).
310
311 config BT_HCIBFUSB
312         tristate "HCI BlueFRITZ! USB driver"
313         depends on USB
314         select FW_LOADER
315         help
316           Bluetooth HCI BlueFRITZ! USB driver.
317           This driver provides support for Bluetooth USB devices with AVM
318           interface:
319              AVM BlueFRITZ! USB
320
321           Say Y here to compile support for HCI BFUSB devices into the
322           kernel or say M to compile it as module (bfusb).
323
324 config BT_HCIDTL1
325         tristate "HCI DTL1 (PC Card) driver"
326         depends on PCMCIA
327         help
328           Bluetooth HCI DTL1 (PC Card) driver.
329           This driver provides support for Bluetooth PCMCIA devices with
330           Nokia DTL1 interface:
331              Nokia Bluetooth Card
332              Socket Bluetooth CF Card
333
334           Say Y here to compile support for HCI DTL1 devices into the
335           kernel or say M to compile it as module (dtl1_cs).
336
337 config BT_HCIBT3C
338         tristate "HCI BT3C (PC Card) driver"
339         depends on PCMCIA
340         select FW_LOADER
341         help
342           Bluetooth HCI BT3C (PC Card) driver.
343           This driver provides support for Bluetooth PCMCIA devices with
344           3Com BT3C interface:
345              3Com Bluetooth Card (3CRWB6096)
346              HP Bluetooth Card
347
348           Say Y here to compile support for HCI BT3C devices into the
349           kernel or say M to compile it as module (bt3c_cs).
350
351 config BT_HCIBLUECARD
352         tristate "HCI BlueCard (PC Card) driver"
353         depends on PCMCIA
354         help
355           Bluetooth HCI BlueCard (PC Card) driver.
356           This driver provides support for Bluetooth PCMCIA devices with
357           Anycom BlueCard interface:
358              Anycom Bluetooth PC Card
359              Anycom Bluetooth CF Card
360
361           Say Y here to compile support for HCI BlueCard devices into the
362           kernel or say M to compile it as module (bluecard_cs).
363
364 config BT_HCIVHCI
365         tristate "HCI VHCI (Virtual HCI device) driver"
366         select WANT_DEV_COREDUMP
367         help
368           Bluetooth Virtual HCI device driver.
369           This driver is required if you want to use HCI Emulation software.
370
371           Say Y here to compile support for virtual HCI devices into the
372           kernel or say M to compile it as module (hci_vhci).
373
374 config BT_MRVL
375         tristate "Marvell Bluetooth driver support"
376         help
377           The core driver to support Marvell Bluetooth devices.
378
379           This driver is required if you want to support
380           Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8977/8987/8997.
381
382           Say Y here to compile Marvell Bluetooth driver
383           into the kernel or say M to compile it as module.
384
385 config BT_MRVL_SDIO
386         tristate "Marvell BT-over-SDIO driver"
387         depends on BT_MRVL && MMC
388         select FW_LOADER
389         select WANT_DEV_COREDUMP
390         help
391           The driver for Marvell Bluetooth chipsets with SDIO interface.
392
393           This driver is required if you want to use Marvell Bluetooth
394           devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997
395           chipsets are supported.
396
397           Say Y here to compile support for Marvell BT-over-SDIO driver
398           into the kernel or say M to compile it as module.
399
400 config BT_ATH3K
401         tristate "Atheros firmware download driver"
402         depends on BT_HCIBTUSB
403         select FW_LOADER
404         help
405           Bluetooth firmware download driver.
406           This driver loads the firmware into the Atheros Bluetooth
407           chipset.
408
409           Say Y here to compile support for "Atheros firmware download driver"
410           into the kernel or say M to compile it as module (ath3k).
411
412 config BT_MTKSDIO
413         tristate "MediaTek HCI SDIO driver"
414         depends on MMC
415         select BT_MTK
416         help
417           MediaTek Bluetooth HCI SDIO driver.
418           This driver is required if you want to use MediaTek Bluetooth
419           with SDIO interface.
420
421           Say Y here to compile support for MediaTek Bluetooth SDIO devices
422           into the kernel or say M to compile it as module (btmtksdio).
423
424 config BT_MTKUART
425         tristate "MediaTek HCI UART driver"
426         depends on SERIAL_DEV_BUS
427         select BT_MTK
428         help
429           MediaTek Bluetooth HCI UART driver.
430           This driver is required if you want to use MediaTek Bluetooth
431           with serial interface.
432
433           Say Y here to compile support for MediaTek Bluetooth UART devices
434           into the kernel or say M to compile it as module (btmtkuart).
435
436 config BT_QCOMSMD
437         tristate "Qualcomm SMD based HCI support"
438         depends on RPMSG || (COMPILE_TEST && RPMSG=n)
439         depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
440         select BT_QCA
441         help
442           Qualcomm SMD based HCI driver.
443           This driver is used to bridge HCI data onto the shared memory
444           channels to the WCNSS core.
445
446           Say Y here to compile support for HCI over Qualcomm SMD into the
447           kernel or say M to compile as a module.
448
449 config BT_HCIRSI
450         tristate
451         help
452           Redpine BT driver.
453           This driver handles BT traffic from upper layers and pass
454           to the RSI_91x coex module for further scheduling to device
455
456           Say Y here to compile support for HCI over Redpine into the
457           kernel or say M to compile as a module.
458
459 config BT_VIRTIO
460         tristate "Virtio Bluetooth driver"
461         depends on VIRTIO
462         help
463           Virtio Bluetooth support driver.
464           This driver supports Virtio Bluetooth devices.
465
466           Say Y here to compile support for HCI over Virtio into the
467           kernel or say M to compile as a module.
468
469 config BT_NXPUART
470         tristate "NXP protocol support"
471         depends on SERIAL_DEV_BUS
472         select CRC32
473         select CRC8
474         help
475           NXP is serial driver required for NXP Bluetooth
476           devices with UART interface.
477
478           Say Y here to compile support for NXP Bluetooth UART device into
479           the kernel, or say M here to compile as a module (btnxpuart).
480
481
482 endmenu