xref: /linux/net/bluetooth/Kconfig (revision 3b165c2a29cfb6453f26e1ac833ca6afd28d28cf)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Bluetooth subsystem configuration
4#
5
6menuconfig BT
7	tristate "Bluetooth subsystem support"
8	depends on !S390
9	depends on RFKILL || !RFKILL
10	select CRC16
11	select CRYPTO
12	select CRYPTO_LIB_AES
13	select CRYPTO_LIB_AES_CBC_MACS
14	select CRYPTO_ECDH
15	help
16	  Bluetooth is low-cost, low-power, short-range wireless technology.
17	  It was designed as a replacement for cables and other short-range
18	  technologies like IrDA.  Bluetooth operates in personal area range
19	  that typically extends up to 10 meters.  More information about
20	  Bluetooth can be found at <https://www.bluetooth.com/>.
21
22	  Linux Bluetooth subsystem consist of several layers:
23	     Bluetooth Core
24		HCI device and connection manager, scheduler
25		SCO audio links
26		L2CAP (Logical Link Control and Adaptation Protocol)
27		SMP (Security Manager Protocol) on LE (Low Energy) links
28		ISO isochronous links
29	     HCI Device drivers (Interface to the hardware)
30	     RFCOMM Module (RFCOMM Protocol)
31	     BNEP Module (Bluetooth Network Encapsulation Protocol)
32	     HIDP Module (Human Interface Device Protocol)
33
34	  Say Y here to compile Bluetooth support into the kernel or say M to
35	  compile it as module (bluetooth).
36
37	  To use Linux Bluetooth subsystem, you will need several user-space
38	  utilities like hciconfig and bluetoothd.  These utilities and updates
39	  to Bluetooth kernel modules are provided in the BlueZ packages.  For
40	  more information, see <http://www.bluez.org/>.
41
42config BT_BREDR
43	bool "Bluetooth Classic (BR/EDR) features"
44	depends on BT
45	default y
46	help
47	  Bluetooth Classic includes support for Basic Rate (BR)
48	  available with Bluetooth version 1.0b or later and support
49	  for Enhanced Data Rate (EDR) available with Bluetooth
50	  version 2.0 or later.
51
52source "net/bluetooth/rfcomm/Kconfig"
53
54source "net/bluetooth/bnep/Kconfig"
55
56source "net/bluetooth/hidp/Kconfig"
57
58config BT_LE
59	bool "Bluetooth Low Energy (LE) features"
60	depends on BT
61	default y
62	help
63	  Bluetooth Low Energy includes support low-energy physical
64	  layer available with Bluetooth version 4.0 or later.
65
66config BT_LE_L2CAP_ECRED
67	bool "Bluetooth L2CAP Enhanced Credit Flow Control"
68	depends on BT_LE
69	default y
70	help
71	  Bluetooth Low Energy L2CAP Enhanced Credit Flow Control available with
72	  Bluetooth version 5.2 or later.
73
74	  This can be overridden by passing bluetooth.enable_ecred=[1|0]
75	  on the kernel commandline.
76
77config BT_6LOWPAN
78	tristate "Bluetooth 6LoWPAN support"
79	depends on BT_LE && 6LOWPAN
80	help
81	  IPv6 compression over Bluetooth Low Energy.
82
83config BT_LEDS
84	bool "Enable LED triggers"
85	depends on BT
86	depends on LEDS_CLASS
87	select LEDS_TRIGGERS
88	help
89	  This option selects a few LED triggers for different
90	  Bluetooth events.
91
92config BT_MSFTEXT
93	bool "Enable Microsoft extensions"
94	depends on BT
95	help
96	  This options enables support for the Microsoft defined HCI
97	  vendor extensions.
98
99config BT_AOSPEXT
100	bool "Enable Android Open Source Project extensions"
101	depends on BT
102	help
103	  This options enables support for the Android Open Source
104	  Project defined HCI vendor extensions.
105
106config BT_DEBUGFS
107	bool "Export Bluetooth internals in debugfs"
108	depends on BT && DEBUG_FS
109	default y
110	help
111	  Provide extensive information about internal Bluetooth states
112	  in debugfs.
113
114config BT_SELFTEST
115	bool "Bluetooth self testing support"
116	depends on BT && DEBUG_KERNEL
117	help
118	  Run self tests when initializing the Bluetooth subsystem.  This
119	  is a developer option and can cause significant delay when booting
120	  the system.
121
122	  When the Bluetooth subsystem is built as module, then the test
123	  cases are run first thing at module load time.  When the Bluetooth
124	  subsystem is compiled into the kernel image, then the test cases
125	  are run late in the initcall hierarchy.
126
127config BT_SELFTEST_ECDH
128	bool "ECDH test cases"
129	depends on BT_LE && BT_SELFTEST
130	help
131	  Run test cases for ECDH cryptographic functionality used by the
132	  Bluetooth Low Energy Secure Connections feature.
133
134config BT_SELFTEST_SMP
135	bool "SMP test cases"
136	depends on BT_LE && BT_SELFTEST
137	help
138	  Run test cases for SMP cryptographic functionality, including both
139	  legacy SMP as well as the Secure Connections features.
140
141config BT_FEATURE_DEBUG
142	bool "Enable runtime option for debugging statements"
143	depends on BT && !DYNAMIC_DEBUG
144	help
145	  This provides an option to enable/disable debugging statements
146	  at runtime via the experimental features interface.
147
148source "drivers/bluetooth/Kconfig"
149