xref: /linux/drivers/bluetooth/Kconfig (revision 6ebe6dbd6886af07b102aca42e44edbee94a22d9)
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_HCIBTUSB
23	tristate "HCI USB driver"
24	depends on USB
25	select BT_INTEL
26	help
27	  Bluetooth HCI USB driver.
28	  This driver is required if you want to use Bluetooth devices with
29	  USB interface.
30
31	  Say Y here to compile support for Bluetooth USB devices into the
32	  kernel or say M to compile it as module (btusb).
33
34config BT_HCIBTUSB_AUTOSUSPEND
35	bool "Enable USB autosuspend for Bluetooth USB devices by default"
36	depends on BT_HCIBTUSB
37	help
38	  Say Y here to enable USB autosuspend for Bluetooth USB devices by
39	  default.
40
41	  This can be overridden by passing btusb.enable_autosuspend=[y|n]
42	  on the kernel commandline.
43
44config BT_HCIBTUSB_BCM
45	bool "Broadcom protocol support"
46	depends on BT_HCIBTUSB
47	select BT_BCM
48	default y
49	help
50	  The Broadcom protocol support enables firmware and patchram
51	  download support for Broadcom Bluetooth controllers.
52
53	  Say Y here to compile support for Broadcom protocol.
54
55config BT_HCIBTUSB_RTL
56	bool "Realtek protocol support"
57	depends on BT_HCIBTUSB
58	select BT_RTL
59	default y
60	help
61	  The Realtek protocol support enables firmware and configuration
62	  download support for Realtek Bluetooth controllers.
63
64	  Say Y here to compile support for Realtek protocol.
65
66config BT_HCIBTSDIO
67	tristate "HCI SDIO driver"
68	depends on MMC
69	help
70	  Bluetooth HCI SDIO driver.
71	  This driver is required if you want to use Bluetooth device with
72	  SDIO interface.
73
74	  Say Y here to compile support for Bluetooth SDIO devices into the
75	  kernel or say M to compile it as module (btsdio).
76
77config BT_HCIUART
78	tristate "HCI UART driver"
79	depends on SERIAL_DEV_BUS || !SERIAL_DEV_BUS
80	depends on TTY
81	help
82	  Bluetooth HCI UART driver.
83	  This driver is required if you want to use Bluetooth devices with
84	  serial port interface. You will also need this driver if you have
85	  UART based Bluetooth PCMCIA and CF devices like Xircom Credit Card
86	  adapter and BrainBoxes Bluetooth PC Card.
87
88	  Say Y here to compile support for Bluetooth UART devices into the
89	  kernel or say M to compile it as module (hci_uart).
90
91config BT_HCIUART_SERDEV
92	bool
93	depends on SERIAL_DEV_BUS && BT_HCIUART
94	default y
95
96config BT_HCIUART_H4
97	bool "UART (H4) protocol support"
98	depends on BT_HCIUART
99	help
100	  UART (H4) is serial protocol for communication between Bluetooth
101	  device and host. This protocol is required for most Bluetooth devices
102	  with UART interface, including PCMCIA and CF cards.
103
104	  Say Y here to compile support for HCI UART (H4) protocol.
105
106config BT_HCIUART_NOKIA
107	tristate "UART Nokia H4+ protocol support"
108	depends on BT_HCIUART
109	depends on BT_HCIUART_SERDEV
110	depends on PM
111	select BT_HCIUART_H4
112	select BT_BCM
113	help
114	  Nokia H4+ is serial protocol for communication between Bluetooth
115	  device and host. This protocol is required for Bluetooth devices
116	  with UART interface in Nokia devices.
117
118	  Say Y here to compile support for Nokia's H4+ protocol.
119
120config BT_HCIUART_BCSP
121	bool "BCSP protocol support"
122	depends on BT_HCIUART
123	select BITREVERSE
124	help
125	  BCSP (BlueCore Serial Protocol) is serial protocol for communication
126	  between Bluetooth device and host. This protocol is required for non
127	  USB Bluetooth devices based on CSR BlueCore chip, including PCMCIA and
128	  CF cards.
129
130	  Say Y here to compile support for HCI BCSP protocol.
131
132config BT_HCIUART_ATH3K
133	bool "Atheros AR300x serial support"
134	depends on BT_HCIUART
135	select BT_HCIUART_H4
136	help
137	  HCIATH3K (HCI Atheros AR300x) is a serial protocol for
138	  communication between host and Atheros AR300x Bluetooth devices.
139	  This protocol enables AR300x chips to be enabled with
140	  power management support.
141	  Enable this if you have Atheros AR300x serial Bluetooth device.
142
143	  Say Y here to compile support for HCI UART ATH3K protocol.
144
145config BT_HCIUART_LL
146	bool "HCILL protocol support"
147	depends on BT_HCIUART_SERDEV
148	help
149	  HCILL (HCI Low Level) is a serial protocol for communication
150	  between Bluetooth device and host. This protocol is required for
151	  serial Bluetooth devices that are based on Texas Instruments'
152	  BRF chips.
153
154	  Say Y here to compile support for HCILL protocol.
155
156config BT_HCIUART_3WIRE
157	bool "Three-wire UART (H5) protocol support"
158	depends on BT_HCIUART
159	help
160	  The HCI Three-wire UART Transport Layer makes it possible to
161	  user the Bluetooth HCI over a serial port interface. The HCI
162	  Three-wire UART Transport Layer assumes that the UART
163	  communication may have bit errors, overrun errors or burst
164	  errors and thereby making CTS/RTS lines unnecessary.
165
166	  Say Y here to compile support for Three-wire UART protocol.
167
168config BT_HCIUART_INTEL
169	bool "Intel protocol support"
170	depends on BT_HCIUART
171	select BT_HCIUART_H4
172	select BT_INTEL
173	help
174	  The Intel protocol support enables Bluetooth HCI over serial
175	  port interface for Intel Bluetooth controllers.
176
177	  Say Y here to compile support for Intel protocol.
178
179config BT_HCIUART_BCM
180	bool "Broadcom protocol support"
181	depends on BT_HCIUART
182	depends on BT_HCIUART_SERDEV
183	depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
184	select BT_HCIUART_H4
185	select BT_BCM
186	help
187	  The Broadcom protocol support enables Bluetooth HCI over serial
188	  port interface for Broadcom Bluetooth controllers.
189
190	  Say Y here to compile support for Broadcom protocol.
191
192config BT_HCIUART_QCA
193	bool "Qualcomm Atheros protocol support"
194	depends on BT_HCIUART
195	select BT_HCIUART_H4
196	select BT_QCA
197	help
198	  The Qualcomm Atheros protocol supports HCI In-Band Sleep feature
199	  over serial port interface(H4) between controller and host.
200	  This protocol is required for UART clock control for QCA Bluetooth
201	  devices.
202
203	  Say Y here to compile support for QCA protocol.
204
205config BT_HCIUART_AG6XX
206	bool "Intel AG6XX protocol support"
207	depends on BT_HCIUART
208	select BT_HCIUART_H4
209	select BT_INTEL
210	help
211	  The Intel/AG6XX protocol support enables Bluetooth HCI over serial
212	  port interface for Intel ibt 2.1 Bluetooth controllers.
213
214	  Say Y here to compile support for Intel AG6XX protocol.
215
216config BT_HCIUART_MRVL
217	bool "Marvell protocol support"
218	depends on BT_HCIUART
219	select BT_HCIUART_H4
220	help
221	  Marvell is serial protocol for communication between Bluetooth
222	  device and host. This protocol is required for most Marvell Bluetooth
223	  devices with UART interface.
224
225	  Say Y here to compile support for HCI MRVL protocol.
226
227config BT_HCIBCM203X
228	tristate "HCI BCM203x USB driver"
229	depends on USB
230	select FW_LOADER
231	help
232	  Bluetooth HCI BCM203x USB driver.
233	  This driver provides the firmware loading mechanism for the Broadcom
234	  Blutonium based devices.
235
236	  Say Y here to compile support for HCI BCM203x devices into the
237	  kernel or say M to compile it as module (bcm203x).
238
239config BT_HCIBPA10X
240	tristate "HCI BPA10x USB driver"
241	depends on USB && BT_HCIUART
242	select BT_HCIUART_H4
243	help
244	  Bluetooth HCI BPA10x USB driver.
245	  This driver provides support for the Digianswer BPA 100/105 Bluetooth
246	  sniffer devices.
247
248	  Say Y here to compile support for HCI BPA10x devices into the
249	  kernel or say M to compile it as module (bpa10x).
250
251config BT_HCIBFUSB
252	tristate "HCI BlueFRITZ! USB driver"
253	depends on USB
254	select FW_LOADER
255	help
256	  Bluetooth HCI BlueFRITZ! USB driver.
257	  This driver provides support for Bluetooth USB devices with AVM
258	  interface:
259	     AVM BlueFRITZ! USB
260
261	  Say Y here to compile support for HCI BFUSB devices into the
262	  kernel or say M to compile it as module (bfusb).
263
264config BT_HCIDTL1
265	tristate "HCI DTL1 (PC Card) driver"
266	depends on PCMCIA
267	help
268	  Bluetooth HCI DTL1 (PC Card) driver.
269	  This driver provides support for Bluetooth PCMCIA devices with
270	  Nokia DTL1 interface:
271	     Nokia Bluetooth Card
272	     Socket Bluetooth CF Card
273
274	  Say Y here to compile support for HCI DTL1 devices into the
275	  kernel or say M to compile it as module (dtl1_cs).
276
277config BT_HCIBT3C
278	tristate "HCI BT3C (PC Card) driver"
279	depends on PCMCIA
280	select FW_LOADER
281	help
282	  Bluetooth HCI BT3C (PC Card) driver.
283	  This driver provides support for Bluetooth PCMCIA devices with
284	  3Com BT3C interface:
285	     3Com Bluetooth Card (3CRWB6096)
286	     HP Bluetooth Card
287
288	  Say Y here to compile support for HCI BT3C devices into the
289	  kernel or say M to compile it as module (bt3c_cs).
290
291config BT_HCIBLUECARD
292	tristate "HCI BlueCard (PC Card) driver"
293	depends on PCMCIA
294	help
295	  Bluetooth HCI BlueCard (PC Card) driver.
296	  This driver provides support for Bluetooth PCMCIA devices with
297	  Anycom BlueCard interface:
298	     Anycom Bluetooth PC Card
299	     Anycom Bluetooth CF Card
300
301	  Say Y here to compile support for HCI BlueCard devices into the
302	  kernel or say M to compile it as module (bluecard_cs).
303
304config BT_HCIBTUART
305	tristate "HCI UART (PC Card) device driver"
306	depends on PCMCIA
307	help
308	  Bluetooth HCI UART (PC Card) driver.
309	  This driver provides support for Bluetooth PCMCIA devices with
310	  an UART interface:
311	     Xircom CreditCard Bluetooth Adapter
312	     Xircom RealPort2 Bluetooth Adapter
313	     Sphinx PICO Card
314	     H-Soft blue+Card
315	     Cyber-blue Compact Flash Card
316
317	  Say Y here to compile support for HCI UART devices into the
318	  kernel or say M to compile it as module (btuart_cs).
319
320config BT_HCIVHCI
321	tristate "HCI VHCI (Virtual HCI device) driver"
322	help
323	  Bluetooth Virtual HCI device driver.
324	  This driver is required if you want to use HCI Emulation software.
325
326	  Say Y here to compile support for virtual HCI devices into the
327	  kernel or say M to compile it as module (hci_vhci).
328
329config BT_MRVL
330	tristate "Marvell Bluetooth driver support"
331	help
332	  The core driver to support Marvell Bluetooth devices.
333
334	  This driver is required if you want to support
335	  Marvell Bluetooth devices, such as 8688/8787/8797/8887/8897/8997.
336
337	  Say Y here to compile Marvell Bluetooth driver
338	  into the kernel or say M to compile it as module.
339
340config BT_MRVL_SDIO
341	tristate "Marvell BT-over-SDIO driver"
342	depends on BT_MRVL && MMC
343	select FW_LOADER
344	select WANT_DEV_COREDUMP
345	help
346	  The driver for Marvell Bluetooth chipsets with SDIO interface.
347
348	  This driver is required if you want to use Marvell Bluetooth
349	  devices with SDIO interface. Currently SD8688/SD8787/SD8797/SD8887/SD8897/SD8997
350	  chipsets are supported.
351
352	  Say Y here to compile support for Marvell BT-over-SDIO driver
353	  into the kernel or say M to compile it as module.
354
355config BT_ATH3K
356	tristate "Atheros firmware download driver"
357	depends on BT_HCIBTUSB
358	select FW_LOADER
359	help
360	  Bluetooth firmware download driver.
361	  This driver loads the firmware into the Atheros Bluetooth
362	  chipset.
363
364	  Say Y here to compile support for "Atheros firmware download driver"
365	  into the kernel or say M to compile it as module (ath3k).
366
367config BT_WILINK
368	tristate "Texas Instruments WiLink7 driver"
369	depends on TI_ST
370	help
371	  This enables the Bluetooth driver for Texas Instrument's BT/FM/GPS
372	  combo devices. This makes use of shared transport line discipline
373	  core driver to communicate with the BT core of the combo chip.
374
375	  Say Y here to compile support for Texas Instrument's WiLink7 driver
376	  into the kernel or say M to compile it as module (btwilink).
377
378config BT_QCOMSMD
379	tristate "Qualcomm SMD based HCI support"
380	depends on RPMSG || (COMPILE_TEST && RPMSG=n)
381	depends on QCOM_WCNSS_CTRL || (COMPILE_TEST && QCOM_WCNSS_CTRL=n)
382	select BT_QCA
383	help
384	  Qualcomm SMD based HCI driver.
385	  This driver is used to bridge HCI data onto the shared memory
386	  channels to the WCNSS core.
387
388	  Say Y here to compile support for HCI over Qualcomm SMD into the
389	  kernel or say M to compile as a module.
390
391endmenu
392