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