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