xref: /linux/drivers/bluetooth/Kconfig (revision db11223571d489d1aab575a4ac4b7352d2d54e2f)
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 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
119config BT_HCIUART_SERDEV
120	bool
121	depends on SERIAL_DEV_BUS && BT_HCIUART
122	default y
123
124config 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
134config 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
149config 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
161config 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
174config 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
186config 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
199config 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
211config 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
225config 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
239config 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
253config 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
264config 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
276config 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
288config BT_HCIBPA10X
289	tristate "HCI BPA10x USB driver"
290	depends on USB
291	help
292	  Bluetooth HCI BPA10x USB driver.
293	  This driver provides support for the Digianswer BPA 100/105 Bluetooth
294	  sniffer devices.
295
296	  Say Y here to compile support for HCI BPA10x devices into the
297	  kernel or say M to compile it as module (bpa10x).
298
299config BT_HCIBFUSB
300	tristate "HCI BlueFRITZ! USB driver"
301	depends on USB
302	select FW_LOADER
303	help
304	  Bluetooth HCI BlueFRITZ! USB driver.
305	  This driver provides support for Bluetooth USB devices with AVM
306	  interface:
307	     AVM BlueFRITZ! USB
308
309	  Say Y here to compile support for HCI BFUSB devices into the
310	  kernel or say M to compile it as module (bfusb).
311
312config BT_HCIDTL1
313	tristate "HCI DTL1 (PC Card) driver"
314	depends on PCMCIA
315	help
316	  Bluetooth HCI DTL1 (PC Card) driver.
317	  This driver provides support for Bluetooth PCMCIA devices with
318	  Nokia DTL1 interface:
319	     Nokia Bluetooth Card
320	     Socket Bluetooth CF Card
321
322	  Say Y here to compile support for HCI DTL1 devices into the
323	  kernel or say M to compile it as module (dtl1_cs).
324
325config BT_HCIBT3C
326	tristate "HCI BT3C (PC Card) driver"
327	depends on PCMCIA
328	select FW_LOADER
329	help
330	  Bluetooth HCI BT3C (PC Card) driver.
331	  This driver provides support for Bluetooth PCMCIA devices with
332	  3Com BT3C interface:
333	     3Com Bluetooth Card (3CRWB6096)
334	     HP Bluetooth Card
335
336	  Say Y here to compile support for HCI BT3C devices into the
337	  kernel or say M to compile it as module (bt3c_cs).
338
339config BT_HCIBLUECARD
340	tristate "HCI BlueCard (PC Card) driver"
341	depends on PCMCIA
342	help
343	  Bluetooth HCI BlueCard (PC Card) driver.
344	  This driver provides support for Bluetooth PCMCIA devices with
345	  Anycom BlueCard interface:
346	     Anycom Bluetooth PC Card
347	     Anycom Bluetooth CF Card
348
349	  Say Y here to compile support for HCI BlueCard devices into the
350	  kernel or say M to compile it as module (bluecard_cs).
351
352config BT_HCIVHCI
353	tristate "HCI VHCI (Virtual HCI device) driver"
354	help
355	  Bluetooth Virtual HCI device driver.
356	  This driver is required if you want to use HCI Emulation software.
357
358	  Say Y here to compile support for virtual HCI devices into the
359	  kernel or say M to compile it as module (hci_vhci).
360
361config BT_MRVL
362	tristate "Marvell Bluetooth driver support"
363	help
364	  The core driver to support Marvell Bluetooth devices.
365
366	  This driver is required if you want to support
367	  Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8977/8987/8997.
368
369	  Say Y here to compile Marvell Bluetooth driver
370	  into the kernel or say M to compile it as module.
371
372config BT_MRVL_SDIO
373	tristate "Marvell BT-over-SDIO driver"
374	depends on BT_MRVL && MMC
375	select FW_LOADER
376	select WANT_DEV_COREDUMP
377	help
378	  The driver for Marvell Bluetooth chipsets with SDIO interface.
379
380	  This driver is required if you want to use Marvell Bluetooth
381	  devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997
382	  chipsets are supported.
383
384	  Say Y here to compile support for Marvell BT-over-SDIO driver
385	  into the kernel or say M to compile it as module.
386
387config BT_ATH3K
388	tristate "Atheros firmware download driver"
389	depends on BT_HCIBTUSB
390	select FW_LOADER
391	help
392	  Bluetooth firmware download driver.
393	  This driver loads the firmware into the Atheros Bluetooth
394	  chipset.
395
396	  Say Y here to compile support for "Atheros firmware download driver"
397	  into the kernel or say M to compile it as module (ath3k).
398
399config BT_MTKSDIO
400	tristate "MediaTek HCI SDIO driver"
401	depends on MMC
402	select BT_MTK
403	help
404	  MediaTek Bluetooth HCI SDIO driver.
405	  This driver is required if you want to use MediaTek Bluetooth
406	  with SDIO interface.
407
408	  Say Y here to compile support for MediaTek Bluetooth SDIO devices
409	  into the kernel or say M to compile it as module (btmtksdio).
410
411config BT_MTKUART
412	tristate "MediaTek HCI UART driver"
413	depends on SERIAL_DEV_BUS
414	select BT_MTK
415	help
416	  MediaTek Bluetooth HCI UART driver.
417	  This driver is required if you want to use MediaTek Bluetooth
418	  with serial interface.
419
420	  Say Y here to compile support for MediaTek Bluetooth UART devices
421	  into the kernel or say M to compile it as module (btmtkuart).
422
423config BT_QCOMSMD
424	tristate "Qualcomm SMD based HCI support"
425	depends on RPMSG || (COMPILE_TEST && RPMSG=n)
426	depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
427	select BT_QCA
428	help
429	  Qualcomm SMD based HCI driver.
430	  This driver is used to bridge HCI data onto the shared memory
431	  channels to the WCNSS core.
432
433	  Say Y here to compile support for HCI over Qualcomm SMD into the
434	  kernel or say M to compile as a module.
435
436config BT_HCIRSI
437	tristate
438	help
439	  Redpine BT driver.
440	  This driver handles BT traffic from upper layers and pass
441	  to the RSI_91x coex module for further scheduling to device
442
443	  Say Y here to compile support for HCI over Redpine into the
444	  kernel or say M to compile as a module.
445
446config BT_VIRTIO
447	tristate "Virtio Bluetooth driver"
448	depends on VIRTIO
449	help
450	  Virtio Bluetooth support driver.
451	  This driver supports Virtio Bluetooth devices.
452
453	  Say Y here to compile support for HCI over Virtio into the
454	  kernel or say M to compile as a module.
455
456endmenu
457