xref: /linux/net/bluetooth/Kconfig (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# Bluetooth subsystem configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
61da177e4SLinus Torvaldsmenuconfig BT
71da177e4SLinus Torvalds	tristate "Bluetooth subsystem support"
8864e898bSMasahiro Yamada	depends on !S390
91a097181SMarcel Holtmann	depends on RFKILL || !RFKILL
10f1e91e16SUlisses Furquim	select CRC16
11daf4ce85SRandy Dunlap	select CRYPTO
12b95bba5dSEric Biggers	select CRYPTO_SKCIPHER
1328a220aaSArd Biesheuvel	select CRYPTO_LIB_AES
1428a220aaSArd Biesheuvel	imply CRYPTO_AES
15407cecf6SJohan Hedberg	select CRYPTO_CMAC
16f1e91e16SUlisses Furquim	select CRYPTO_ECB
175a349186SAndrei Emeltchenko	select CRYPTO_SHA256
1858771c1cSSalvatore Benedetto	select CRYPTO_ECDH
191da177e4SLinus Torvalds	help
201da177e4SLinus Torvalds	  Bluetooth is low-cost, low-power, short-range wireless technology.
211da177e4SLinus Torvalds	  It was designed as a replacement for cables and other short-range
221da177e4SLinus Torvalds	  technologies like IrDA.  Bluetooth operates in personal area range
231da177e4SLinus Torvalds	  that typically extends up to 10 meters.  More information about
24d5baf620SAlexander A. Klimov	  Bluetooth can be found at <https://www.bluetooth.com/>.
251da177e4SLinus Torvalds
261da177e4SLinus Torvalds	  Linux Bluetooth subsystem consist of several layers:
27f1e91e16SUlisses Furquim	     Bluetooth Core
28f1e91e16SUlisses Furquim		HCI device and connection manager, scheduler
29f1e91e16SUlisses Furquim		SCO audio links
30f1e91e16SUlisses Furquim		L2CAP (Logical Link Control and Adaptation Protocol)
31f1e91e16SUlisses Furquim		SMP (Security Manager Protocol) on LE (Low Energy) links
3226afbd82SLuiz Augusto von Dentz		ISO isochronous links
331da177e4SLinus Torvalds	     HCI Device drivers (Interface to the hardware)
341da177e4SLinus Torvalds	     RFCOMM Module (RFCOMM Protocol)
351da177e4SLinus Torvalds	     BNEP Module (Bluetooth Network Encapsulation Protocol)
361da177e4SLinus Torvalds	     CMTP Module (CAPI Message Transport Protocol)
371da177e4SLinus Torvalds	     HIDP Module (Human Interface Device Protocol)
381da177e4SLinus Torvalds
391da177e4SLinus Torvalds	  Say Y here to compile Bluetooth support into the kernel or say M to
401da177e4SLinus Torvalds	  compile it as module (bluetooth).
411da177e4SLinus Torvalds
421da177e4SLinus Torvalds	  To use Linux Bluetooth subsystem, you will need several user-space
43a0019bcaSGustavo F. Padovan	  utilities like hciconfig and bluetoothd.  These utilities and updates
44a0019bcaSGustavo F. Padovan	  to Bluetooth kernel modules are provided in the BlueZ packages.  For
45a0019bcaSGustavo F. Padovan	  more information, see <http://www.bluez.org/>.
461da177e4SLinus Torvalds
4765efd2bfSMarcel Holtmannconfig BT_BREDR
4865efd2bfSMarcel Holtmann	bool "Bluetooth Classic (BR/EDR) features"
4965efd2bfSMarcel Holtmann	depends on BT
5065efd2bfSMarcel Holtmann	default y
51198ec9aeSPavel Machek	help
52198ec9aeSPavel Machek	  Bluetooth Classic includes support for Basic Rate (BR)
53198ec9aeSPavel Machek	  available with Bluetooth version 1.0b or later and support
54198ec9aeSPavel Machek	  for Enhanced Data Rate (EDR) available with Bluetooth
55198ec9aeSPavel Machek	  version 2.0 or later.
5697550887SAlexander Aring
571da177e4SLinus Torvaldssource "net/bluetooth/rfcomm/Kconfig"
581da177e4SLinus Torvalds
591da177e4SLinus Torvaldssource "net/bluetooth/bnep/Kconfig"
601da177e4SLinus Torvalds
611da177e4SLinus Torvaldssource "net/bluetooth/cmtp/Kconfig"
621da177e4SLinus Torvalds
631da177e4SLinus Torvaldssource "net/bluetooth/hidp/Kconfig"
641da177e4SLinus Torvalds
6565efd2bfSMarcel Holtmannconfig BT_LE
6665efd2bfSMarcel Holtmann	bool "Bluetooth Low Energy (LE) features"
6765efd2bfSMarcel Holtmann	depends on BT
6865efd2bfSMarcel Holtmann	default y
69198ec9aeSPavel Machek	help
70198ec9aeSPavel Machek	  Bluetooth Low Energy includes support low-energy physical
71198ec9aeSPavel Machek	  layer available with Bluetooth version 4.0 or later.
7265efd2bfSMarcel Holtmann
73*462fcd53SLuiz Augusto von Dentzconfig BT_LE_L2CAP_ECRED
74*462fcd53SLuiz Augusto von Dentz	bool "Bluetooth L2CAP Enhanced Credit Flow Control"
75*462fcd53SLuiz Augusto von Dentz	depends on BT_LE
76*462fcd53SLuiz Augusto von Dentz	default y
77*462fcd53SLuiz Augusto von Dentz	help
78*462fcd53SLuiz Augusto von Dentz	  Bluetooth Low Energy L2CAP Enhanced Credit Flow Control available with
79*462fcd53SLuiz Augusto von Dentz	  Bluetooth version 5.2 or later.
80*462fcd53SLuiz Augusto von Dentz
81*462fcd53SLuiz Augusto von Dentz	  This can be overridden by passing bluetooth.enable_ecred=[1|0]
82*462fcd53SLuiz Augusto von Dentz	  on the kernel commandline.
83*462fcd53SLuiz Augusto von Dentz
8465efd2bfSMarcel Holtmannconfig BT_6LOWPAN
8565efd2bfSMarcel Holtmann	tristate "Bluetooth 6LoWPAN support"
8665efd2bfSMarcel Holtmann	depends on BT_LE && 6LOWPAN
8765efd2bfSMarcel Holtmann	help
8865efd2bfSMarcel Holtmann	  IPv6 compression over Bluetooth Low Energy.
8965efd2bfSMarcel Holtmann
906d5d2ee6SHeiner Kallweitconfig BT_LEDS
916d5d2ee6SHeiner Kallweit	bool "Enable LED triggers"
926d5d2ee6SHeiner Kallweit	depends on BT
936d5d2ee6SHeiner Kallweit	depends on LEDS_CLASS
946d5d2ee6SHeiner Kallweit	select LEDS_TRIGGERS
956d5d2ee6SHeiner Kallweit	help
966d5d2ee6SHeiner Kallweit	  This option selects a few LED triggers for different
976d5d2ee6SHeiner Kallweit	  Bluetooth events.
986d5d2ee6SHeiner Kallweit
99145373cbSMiao-chen Chouconfig BT_MSFTEXT
100145373cbSMiao-chen Chou	bool "Enable Microsoft extensions"
101145373cbSMiao-chen Chou	depends on BT
102145373cbSMiao-chen Chou	help
103145373cbSMiao-chen Chou	  This options enables support for the Microsoft defined HCI
104145373cbSMiao-chen Chou	  vendor extensions.
105145373cbSMiao-chen Chou
106f67743f9SMarcel Holtmannconfig BT_AOSPEXT
107f67743f9SMarcel Holtmann	bool "Enable Android Open Source Project extensions"
108f67743f9SMarcel Holtmann	depends on BT
109f67743f9SMarcel Holtmann	help
110f67743f9SMarcel Holtmann	  This options enables support for the Android Open Source
111f67743f9SMarcel Holtmann	  Project defined HCI vendor extensions.
112f67743f9SMarcel Holtmann
1133d233604SMarcel Holtmannconfig BT_DEBUGFS
1143d233604SMarcel Holtmann	bool "Export Bluetooth internals in debugfs"
1153d233604SMarcel Holtmann	depends on BT && DEBUG_FS
1163d233604SMarcel Holtmann	default y
1173d233604SMarcel Holtmann	help
1183d233604SMarcel Holtmann	  Provide extensive information about internal Bluetooth states
1193d233604SMarcel Holtmann	  in debugfs.
1203d233604SMarcel Holtmann
121ee485290SMarcel Holtmannconfig BT_SELFTEST
122ee485290SMarcel Holtmann	bool "Bluetooth self testing support"
123ee485290SMarcel Holtmann	depends on BT && DEBUG_KERNEL
124ee485290SMarcel Holtmann	help
125ee485290SMarcel Holtmann	  Run self tests when initializing the Bluetooth subsystem.  This
126ee485290SMarcel Holtmann	  is a developer option and can cause significant delay when booting
127ee485290SMarcel Holtmann	  the system.
128ee485290SMarcel Holtmann
129ee485290SMarcel Holtmann	  When the Bluetooth subsystem is built as module, then the test
130ee485290SMarcel Holtmann	  cases are run first thing at module load time.  When the Bluetooth
131ee485290SMarcel Holtmann	  subsystem is compiled into the kernel image, then the test cases
132ee485290SMarcel Holtmann	  are run late in the initcall hierarchy.
133ee485290SMarcel Holtmann
1340b6415b6SJohan Hedbergconfig BT_SELFTEST_ECDH
1350b6415b6SJohan Hedberg	bool "ECDH test cases"
1360b6415b6SJohan Hedberg	depends on BT_LE && BT_SELFTEST
1370b6415b6SJohan Hedberg	help
1380b6415b6SJohan Hedberg	  Run test cases for ECDH cryptographic functionality used by the
1390b6415b6SJohan Hedberg	  Bluetooth Low Energy Secure Connections feature.
1400b6415b6SJohan Hedberg
1410a2b0f04SJohan Hedbergconfig BT_SELFTEST_SMP
1420a2b0f04SJohan Hedberg	bool "SMP test cases"
1430a2b0f04SJohan Hedberg	depends on BT_LE && BT_SELFTEST
1440a2b0f04SJohan Hedberg	help
1450a2b0f04SJohan Hedberg	  Run test cases for SMP cryptographic functionality, including both
1460a2b0f04SJohan Hedberg	  legacy SMP as well as the Secure Connections features.
1470a2b0f04SJohan Hedberg
148e625e50cSMarcel Holtmannconfig BT_FEATURE_DEBUG
149e625e50cSMarcel Holtmann	bool "Enable runtime option for debugging statements"
150e625e50cSMarcel Holtmann	depends on BT && !DYNAMIC_DEBUG
151e625e50cSMarcel Holtmann	help
152e625e50cSMarcel Holtmann	  This provides an option to enable/disable debugging statements
153e625e50cSMarcel Holtmann	  at runtime via the experimental features interface.
154e625e50cSMarcel Holtmann
1551da177e4SLinus Torvaldssource "drivers/bluetooth/Kconfig"
156