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