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