xref: /linux/net/bluetooth/Kconfig (revision 91ec2035134982b98fab0609a9fd8480e8217dc1)
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
1228a220aaSArd Biesheuvel	select CRYPTO_LIB_AES
1348788c8dSEric Biggers	select CRYPTO_LIB_AES_CBC_MACS
1458771c1cSSalvatore Benedetto	select CRYPTO_ECDH
151da177e4SLinus Torvalds	help
161da177e4SLinus Torvalds	  Bluetooth is low-cost, low-power, short-range wireless technology.
171da177e4SLinus Torvalds	  It was designed as a replacement for cables and other short-range
181da177e4SLinus Torvalds	  technologies like IrDA.  Bluetooth operates in personal area range
191da177e4SLinus Torvalds	  that typically extends up to 10 meters.  More information about
20d5baf620SAlexander A. Klimov	  Bluetooth can be found at <https://www.bluetooth.com/>.
211da177e4SLinus Torvalds
221da177e4SLinus Torvalds	  Linux Bluetooth subsystem consist of several layers:
23f1e91e16SUlisses Furquim	     Bluetooth Core
24f1e91e16SUlisses Furquim		HCI device and connection manager, scheduler
25f1e91e16SUlisses Furquim		SCO audio links
26f1e91e16SUlisses Furquim		L2CAP (Logical Link Control and Adaptation Protocol)
27f1e91e16SUlisses Furquim		SMP (Security Manager Protocol) on LE (Low Energy) links
2826afbd82SLuiz Augusto von Dentz		ISO isochronous links
291da177e4SLinus Torvalds	     HCI Device drivers (Interface to the hardware)
301da177e4SLinus Torvalds	     RFCOMM Module (RFCOMM Protocol)
311da177e4SLinus Torvalds	     BNEP Module (Bluetooth Network Encapsulation Protocol)
321da177e4SLinus Torvalds	     HIDP Module (Human Interface Device Protocol)
331da177e4SLinus Torvalds
341da177e4SLinus Torvalds	  Say Y here to compile Bluetooth support into the kernel or say M to
351da177e4SLinus Torvalds	  compile it as module (bluetooth).
361da177e4SLinus Torvalds
371da177e4SLinus Torvalds	  To use Linux Bluetooth subsystem, you will need several user-space
38a0019bcaSGustavo F. Padovan	  utilities like hciconfig and bluetoothd.  These utilities and updates
39a0019bcaSGustavo F. Padovan	  to Bluetooth kernel modules are provided in the BlueZ packages.  For
40a0019bcaSGustavo F. Padovan	  more information, see <http://www.bluez.org/>.
411da177e4SLinus Torvalds
4265efd2bfSMarcel Holtmannconfig BT_BREDR
4365efd2bfSMarcel Holtmann	bool "Bluetooth Classic (BR/EDR) features"
4465efd2bfSMarcel Holtmann	depends on BT
4565efd2bfSMarcel Holtmann	default y
46198ec9aeSPavel Machek	help
47198ec9aeSPavel Machek	  Bluetooth Classic includes support for Basic Rate (BR)
48198ec9aeSPavel Machek	  available with Bluetooth version 1.0b or later and support
49198ec9aeSPavel Machek	  for Enhanced Data Rate (EDR) available with Bluetooth
50198ec9aeSPavel Machek	  version 2.0 or later.
5197550887SAlexander Aring
521da177e4SLinus Torvaldssource "net/bluetooth/rfcomm/Kconfig"
531da177e4SLinus Torvalds
541da177e4SLinus Torvaldssource "net/bluetooth/bnep/Kconfig"
551da177e4SLinus Torvalds
561da177e4SLinus Torvaldssource "net/bluetooth/hidp/Kconfig"
571da177e4SLinus Torvalds
5865efd2bfSMarcel Holtmannconfig BT_LE
5965efd2bfSMarcel Holtmann	bool "Bluetooth Low Energy (LE) features"
6065efd2bfSMarcel Holtmann	depends on BT
6165efd2bfSMarcel Holtmann	default y
62198ec9aeSPavel Machek	help
63198ec9aeSPavel Machek	  Bluetooth Low Energy includes support low-energy physical
64198ec9aeSPavel Machek	  layer available with Bluetooth version 4.0 or later.
6565efd2bfSMarcel Holtmann
66462fcd53SLuiz Augusto von Dentzconfig BT_LE_L2CAP_ECRED
67462fcd53SLuiz Augusto von Dentz	bool "Bluetooth L2CAP Enhanced Credit Flow Control"
68462fcd53SLuiz Augusto von Dentz	depends on BT_LE
69462fcd53SLuiz Augusto von Dentz	default y
70462fcd53SLuiz Augusto von Dentz	help
71462fcd53SLuiz Augusto von Dentz	  Bluetooth Low Energy L2CAP Enhanced Credit Flow Control available with
72462fcd53SLuiz Augusto von Dentz	  Bluetooth version 5.2 or later.
73462fcd53SLuiz Augusto von Dentz
74462fcd53SLuiz Augusto von Dentz	  This can be overridden by passing bluetooth.enable_ecred=[1|0]
75462fcd53SLuiz Augusto von Dentz	  on the kernel commandline.
76462fcd53SLuiz Augusto von Dentz
7765efd2bfSMarcel Holtmannconfig BT_6LOWPAN
7865efd2bfSMarcel Holtmann	tristate "Bluetooth 6LoWPAN support"
79*6ec1896bSIva Kasprzaková	depends on BT && BT_LE && 6LOWPAN
8065efd2bfSMarcel Holtmann	help
8165efd2bfSMarcel Holtmann	  IPv6 compression over Bluetooth Low Energy.
8265efd2bfSMarcel Holtmann
836d5d2ee6SHeiner Kallweitconfig BT_LEDS
846d5d2ee6SHeiner Kallweit	bool "Enable LED triggers"
856d5d2ee6SHeiner Kallweit	depends on BT
866d5d2ee6SHeiner Kallweit	depends on LEDS_CLASS
876d5d2ee6SHeiner Kallweit	select LEDS_TRIGGERS
886d5d2ee6SHeiner Kallweit	help
896d5d2ee6SHeiner Kallweit	  This option selects a few LED triggers for different
906d5d2ee6SHeiner Kallweit	  Bluetooth events.
916d5d2ee6SHeiner Kallweit
92145373cbSMiao-chen Chouconfig BT_MSFTEXT
93145373cbSMiao-chen Chou	bool "Enable Microsoft extensions"
94145373cbSMiao-chen Chou	depends on BT
95145373cbSMiao-chen Chou	help
96145373cbSMiao-chen Chou	  This options enables support for the Microsoft defined HCI
97145373cbSMiao-chen Chou	  vendor extensions.
98145373cbSMiao-chen Chou
99f67743f9SMarcel Holtmannconfig BT_AOSPEXT
100f67743f9SMarcel Holtmann	bool "Enable Android Open Source Project extensions"
101f67743f9SMarcel Holtmann	depends on BT
102f67743f9SMarcel Holtmann	help
103f67743f9SMarcel Holtmann	  This options enables support for the Android Open Source
104f67743f9SMarcel Holtmann	  Project defined HCI vendor extensions.
105f67743f9SMarcel Holtmann
1063d233604SMarcel Holtmannconfig BT_DEBUGFS
1073d233604SMarcel Holtmann	bool "Export Bluetooth internals in debugfs"
1083d233604SMarcel Holtmann	depends on BT && DEBUG_FS
1093d233604SMarcel Holtmann	default y
1103d233604SMarcel Holtmann	help
1113d233604SMarcel Holtmann	  Provide extensive information about internal Bluetooth states
1123d233604SMarcel Holtmann	  in debugfs.
1133d233604SMarcel Holtmann
114ee485290SMarcel Holtmannconfig BT_SELFTEST
115ee485290SMarcel Holtmann	bool "Bluetooth self testing support"
116ee485290SMarcel Holtmann	depends on BT && DEBUG_KERNEL
117ee485290SMarcel Holtmann	help
118ee485290SMarcel Holtmann	  Run self tests when initializing the Bluetooth subsystem.  This
119ee485290SMarcel Holtmann	  is a developer option and can cause significant delay when booting
120ee485290SMarcel Holtmann	  the system.
121ee485290SMarcel Holtmann
122ee485290SMarcel Holtmann	  When the Bluetooth subsystem is built as module, then the test
123ee485290SMarcel Holtmann	  cases are run first thing at module load time.  When the Bluetooth
124ee485290SMarcel Holtmann	  subsystem is compiled into the kernel image, then the test cases
125ee485290SMarcel Holtmann	  are run late in the initcall hierarchy.
126ee485290SMarcel Holtmann
1270b6415b6SJohan Hedbergconfig BT_SELFTEST_ECDH
1280b6415b6SJohan Hedberg	bool "ECDH test cases"
1290b6415b6SJohan Hedberg	depends on BT_LE && BT_SELFTEST
1300b6415b6SJohan Hedberg	help
1310b6415b6SJohan Hedberg	  Run test cases for ECDH cryptographic functionality used by the
1320b6415b6SJohan Hedberg	  Bluetooth Low Energy Secure Connections feature.
1330b6415b6SJohan Hedberg
1340a2b0f04SJohan Hedbergconfig BT_SELFTEST_SMP
1350a2b0f04SJohan Hedberg	bool "SMP test cases"
1360a2b0f04SJohan Hedberg	depends on BT_LE && BT_SELFTEST
1370a2b0f04SJohan Hedberg	help
1380a2b0f04SJohan Hedberg	  Run test cases for SMP cryptographic functionality, including both
1390a2b0f04SJohan Hedberg	  legacy SMP as well as the Secure Connections features.
1400a2b0f04SJohan Hedberg
141e625e50cSMarcel Holtmannconfig BT_FEATURE_DEBUG
142e625e50cSMarcel Holtmann	bool "Enable runtime option for debugging statements"
143e625e50cSMarcel Holtmann	depends on BT && !DYNAMIC_DEBUG
144e625e50cSMarcel Holtmann	help
145e625e50cSMarcel Holtmann	  This provides an option to enable/disable debugging statements
146e625e50cSMarcel Holtmann	  at runtime via the experimental features interface.
147e625e50cSMarcel Holtmann
1481da177e4SLinus Torvaldssource "drivers/bluetooth/Kconfig"
149