xref: /kernel/linux/linux-6.6/net/bluetooth/Kconfig (revision 62306a36)
162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Bluetooth subsystem configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig BT
762306a36Sopenharmony_ci	tristate "Bluetooth subsystem support"
862306a36Sopenharmony_ci	depends on !S390
962306a36Sopenharmony_ci	depends on RFKILL || !RFKILL
1062306a36Sopenharmony_ci	select CRC16
1162306a36Sopenharmony_ci	select CRYPTO
1262306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
1362306a36Sopenharmony_ci	select CRYPTO_LIB_AES
1462306a36Sopenharmony_ci	imply CRYPTO_AES
1562306a36Sopenharmony_ci	select CRYPTO_CMAC
1662306a36Sopenharmony_ci	select CRYPTO_ECB
1762306a36Sopenharmony_ci	select CRYPTO_SHA256
1862306a36Sopenharmony_ci	select CRYPTO_ECDH
1962306a36Sopenharmony_ci	help
2062306a36Sopenharmony_ci	  Bluetooth is low-cost, low-power, short-range wireless technology.
2162306a36Sopenharmony_ci	  It was designed as a replacement for cables and other short-range
2262306a36Sopenharmony_ci	  technologies like IrDA.  Bluetooth operates in personal area range
2362306a36Sopenharmony_ci	  that typically extends up to 10 meters.  More information about
2462306a36Sopenharmony_ci	  Bluetooth can be found at <https://www.bluetooth.com/>.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	  Linux Bluetooth subsystem consist of several layers:
2762306a36Sopenharmony_ci	     Bluetooth Core
2862306a36Sopenharmony_ci		HCI device and connection manager, scheduler
2962306a36Sopenharmony_ci		SCO audio links
3062306a36Sopenharmony_ci		L2CAP (Logical Link Control and Adaptation Protocol)
3162306a36Sopenharmony_ci		SMP (Security Manager Protocol) on LE (Low Energy) links
3262306a36Sopenharmony_ci		ISO isochronous links
3362306a36Sopenharmony_ci	     HCI Device drivers (Interface to the hardware)
3462306a36Sopenharmony_ci	     RFCOMM Module (RFCOMM Protocol)  
3562306a36Sopenharmony_ci	     BNEP Module (Bluetooth Network Encapsulation Protocol)
3662306a36Sopenharmony_ci	     CMTP Module (CAPI Message Transport Protocol)
3762306a36Sopenharmony_ci	     HIDP Module (Human Interface Device Protocol)
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	  Say Y here to compile Bluetooth support into the kernel or say M to
4062306a36Sopenharmony_ci	  compile it as module (bluetooth).
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci	  To use Linux Bluetooth subsystem, you will need several user-space
4362306a36Sopenharmony_ci	  utilities like hciconfig and bluetoothd.  These utilities and updates
4462306a36Sopenharmony_ci	  to Bluetooth kernel modules are provided in the BlueZ packages.  For
4562306a36Sopenharmony_ci	  more information, see <http://www.bluez.org/>.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciconfig BT_BREDR
4862306a36Sopenharmony_ci	bool "Bluetooth Classic (BR/EDR) features"
4962306a36Sopenharmony_ci	depends on BT
5062306a36Sopenharmony_ci	default y
5162306a36Sopenharmony_ci	help
5262306a36Sopenharmony_ci	  Bluetooth Classic includes support for Basic Rate (BR)
5362306a36Sopenharmony_ci	  available with Bluetooth version 1.0b or later and support
5462306a36Sopenharmony_ci	  for Enhanced Data Rate (EDR) available with Bluetooth
5562306a36Sopenharmony_ci	  version 2.0 or later.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_cisource "net/bluetooth/rfcomm/Kconfig"
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_cisource "net/bluetooth/bnep/Kconfig"
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_cisource "net/bluetooth/cmtp/Kconfig"
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_cisource "net/bluetooth/hidp/Kconfig"
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciconfig BT_LE
6662306a36Sopenharmony_ci	bool "Bluetooth Low Energy (LE) features"
6762306a36Sopenharmony_ci	depends on BT
6862306a36Sopenharmony_ci	default y
6962306a36Sopenharmony_ci	help
7062306a36Sopenharmony_ci	  Bluetooth Low Energy includes support low-energy physical
7162306a36Sopenharmony_ci	  layer available with Bluetooth version 4.0 or later.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciconfig BT_LE_L2CAP_ECRED
7462306a36Sopenharmony_ci	bool "Bluetooth L2CAP Enhanced Credit Flow Control"
7562306a36Sopenharmony_ci	depends on BT_LE
7662306a36Sopenharmony_ci	default y
7762306a36Sopenharmony_ci	help
7862306a36Sopenharmony_ci	  Bluetooth Low Energy L2CAP Enhanced Credit Flow Control available with
7962306a36Sopenharmony_ci	  Bluetooth version 5.2 or later.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci	  This can be overridden by passing bluetooth.enable_ecred=[1|0]
8262306a36Sopenharmony_ci	  on the kernel commandline.
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciconfig BT_6LOWPAN
8562306a36Sopenharmony_ci	tristate "Bluetooth 6LoWPAN support"
8662306a36Sopenharmony_ci	depends on BT_LE && 6LOWPAN
8762306a36Sopenharmony_ci	help
8862306a36Sopenharmony_ci	  IPv6 compression over Bluetooth Low Energy.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig BT_LEDS
9162306a36Sopenharmony_ci	bool "Enable LED triggers"
9262306a36Sopenharmony_ci	depends on BT
9362306a36Sopenharmony_ci	depends on LEDS_CLASS
9462306a36Sopenharmony_ci	select LEDS_TRIGGERS
9562306a36Sopenharmony_ci	help
9662306a36Sopenharmony_ci	  This option selects a few LED triggers for different
9762306a36Sopenharmony_ci	  Bluetooth events.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciconfig BT_MSFTEXT
10062306a36Sopenharmony_ci	bool "Enable Microsoft extensions"
10162306a36Sopenharmony_ci	depends on BT
10262306a36Sopenharmony_ci	help
10362306a36Sopenharmony_ci	  This options enables support for the Microsoft defined HCI
10462306a36Sopenharmony_ci	  vendor extensions.
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ciconfig BT_AOSPEXT
10762306a36Sopenharmony_ci	bool "Enable Android Open Source Project extensions"
10862306a36Sopenharmony_ci	depends on BT
10962306a36Sopenharmony_ci	help
11062306a36Sopenharmony_ci	  This options enables support for the Android Open Source
11162306a36Sopenharmony_ci	  Project defined HCI vendor extensions.
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciconfig BT_DEBUGFS
11462306a36Sopenharmony_ci	bool "Export Bluetooth internals in debugfs"
11562306a36Sopenharmony_ci	depends on BT && DEBUG_FS
11662306a36Sopenharmony_ci	default y
11762306a36Sopenharmony_ci	help
11862306a36Sopenharmony_ci	  Provide extensive information about internal Bluetooth states
11962306a36Sopenharmony_ci	  in debugfs.
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ciconfig BT_SELFTEST
12262306a36Sopenharmony_ci	bool "Bluetooth self testing support"
12362306a36Sopenharmony_ci	depends on BT && DEBUG_KERNEL
12462306a36Sopenharmony_ci	help
12562306a36Sopenharmony_ci	  Run self tests when initializing the Bluetooth subsystem.  This
12662306a36Sopenharmony_ci	  is a developer option and can cause significant delay when booting
12762306a36Sopenharmony_ci	  the system.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci	  When the Bluetooth subsystem is built as module, then the test
13062306a36Sopenharmony_ci	  cases are run first thing at module load time.  When the Bluetooth
13162306a36Sopenharmony_ci	  subsystem is compiled into the kernel image, then the test cases
13262306a36Sopenharmony_ci	  are run late in the initcall hierarchy.
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciconfig BT_SELFTEST_ECDH
13562306a36Sopenharmony_ci	bool "ECDH test cases"
13662306a36Sopenharmony_ci	depends on BT_LE && BT_SELFTEST
13762306a36Sopenharmony_ci	help
13862306a36Sopenharmony_ci	  Run test cases for ECDH cryptographic functionality used by the
13962306a36Sopenharmony_ci	  Bluetooth Low Energy Secure Connections feature.
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ciconfig BT_SELFTEST_SMP
14262306a36Sopenharmony_ci	bool "SMP test cases"
14362306a36Sopenharmony_ci	depends on BT_LE && BT_SELFTEST
14462306a36Sopenharmony_ci	help
14562306a36Sopenharmony_ci	  Run test cases for SMP cryptographic functionality, including both
14662306a36Sopenharmony_ci	  legacy SMP as well as the Secure Connections features.
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ciconfig BT_FEATURE_DEBUG
14962306a36Sopenharmony_ci	bool "Enable runtime option for debugging statements"
15062306a36Sopenharmony_ci	depends on BT && !DYNAMIC_DEBUG
15162306a36Sopenharmony_ci	help
15262306a36Sopenharmony_ci	  This provides an option to enable/disable debugging statements
15362306a36Sopenharmony_ci	  at runtime via the experimental features interface.
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_cisource "drivers/bluetooth/Kconfig"
156