1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Bluetooth subsystem configuration 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunmenuconfig BT 7*4882a593Smuzhiyun tristate "Bluetooth subsystem support" 8*4882a593Smuzhiyun depends on NET && !S390 9*4882a593Smuzhiyun depends on RFKILL || !RFKILL 10*4882a593Smuzhiyun select CRC16 11*4882a593Smuzhiyun select CRYPTO 12*4882a593Smuzhiyun select CRYPTO_SKCIPHER 13*4882a593Smuzhiyun select CRYPTO_LIB_AES 14*4882a593Smuzhiyun imply CRYPTO_AES 15*4882a593Smuzhiyun select CRYPTO_CMAC 16*4882a593Smuzhiyun select CRYPTO_ECB 17*4882a593Smuzhiyun select CRYPTO_SHA256 18*4882a593Smuzhiyun select CRYPTO_ECDH 19*4882a593Smuzhiyun help 20*4882a593Smuzhiyun Bluetooth is low-cost, low-power, short-range wireless technology. 21*4882a593Smuzhiyun It was designed as a replacement for cables and other short-range 22*4882a593Smuzhiyun technologies like IrDA. Bluetooth operates in personal area range 23*4882a593Smuzhiyun that typically extends up to 10 meters. More information about 24*4882a593Smuzhiyun Bluetooth can be found at <https://www.bluetooth.com/>. 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun Linux Bluetooth subsystem consist of several layers: 27*4882a593Smuzhiyun Bluetooth Core 28*4882a593Smuzhiyun HCI device and connection manager, scheduler 29*4882a593Smuzhiyun SCO audio links 30*4882a593Smuzhiyun L2CAP (Logical Link Control and Adaptation Protocol) 31*4882a593Smuzhiyun SMP (Security Manager Protocol) on LE (Low Energy) links 32*4882a593Smuzhiyun HCI Device drivers (Interface to the hardware) 33*4882a593Smuzhiyun RFCOMM Module (RFCOMM Protocol) 34*4882a593Smuzhiyun BNEP Module (Bluetooth Network Encapsulation Protocol) 35*4882a593Smuzhiyun CMTP Module (CAPI Message Transport Protocol) 36*4882a593Smuzhiyun HIDP Module (Human Interface Device Protocol) 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun Say Y here to compile Bluetooth support into the kernel or say M to 39*4882a593Smuzhiyun compile it as module (bluetooth). 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun To use Linux Bluetooth subsystem, you will need several user-space 42*4882a593Smuzhiyun utilities like hciconfig and bluetoothd. These utilities and updates 43*4882a593Smuzhiyun to Bluetooth kernel modules are provided in the BlueZ packages. For 44*4882a593Smuzhiyun more information, see <http://www.bluez.org/>. 45*4882a593Smuzhiyun 46*4882a593Smuzhiyunconfig BT_BREDR 47*4882a593Smuzhiyun bool "Bluetooth Classic (BR/EDR) features" 48*4882a593Smuzhiyun depends on BT 49*4882a593Smuzhiyun default y 50*4882a593Smuzhiyun help 51*4882a593Smuzhiyun Bluetooth Classic includes support for Basic Rate (BR) 52*4882a593Smuzhiyun available with Bluetooth version 1.0b or later and support 53*4882a593Smuzhiyun for Enhanced Data Rate (EDR) available with Bluetooth 54*4882a593Smuzhiyun version 2.0 or later. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyunsource "net/bluetooth/rfcomm/Kconfig" 57*4882a593Smuzhiyun 58*4882a593Smuzhiyunsource "net/bluetooth/bnep/Kconfig" 59*4882a593Smuzhiyun 60*4882a593Smuzhiyunsource "net/bluetooth/cmtp/Kconfig" 61*4882a593Smuzhiyun 62*4882a593Smuzhiyunsource "net/bluetooth/hidp/Kconfig" 63*4882a593Smuzhiyun 64*4882a593Smuzhiyunconfig BT_HS 65*4882a593Smuzhiyun bool "Bluetooth High Speed (HS) features" 66*4882a593Smuzhiyun depends on BT_BREDR 67*4882a593Smuzhiyun help 68*4882a593Smuzhiyun Bluetooth High Speed includes support for off-loading 69*4882a593Smuzhiyun Bluetooth connections via 802.11 (wifi) physical layer 70*4882a593Smuzhiyun available with Bluetooth version 3.0 or later. 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig BT_LE 73*4882a593Smuzhiyun bool "Bluetooth Low Energy (LE) features" 74*4882a593Smuzhiyun depends on BT 75*4882a593Smuzhiyun default y 76*4882a593Smuzhiyun help 77*4882a593Smuzhiyun Bluetooth Low Energy includes support low-energy physical 78*4882a593Smuzhiyun layer available with Bluetooth version 4.0 or later. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunconfig BT_6LOWPAN 81*4882a593Smuzhiyun tristate "Bluetooth 6LoWPAN support" 82*4882a593Smuzhiyun depends on BT_LE && 6LOWPAN 83*4882a593Smuzhiyun help 84*4882a593Smuzhiyun IPv6 compression over Bluetooth Low Energy. 85*4882a593Smuzhiyun 86*4882a593Smuzhiyunconfig BT_LEDS 87*4882a593Smuzhiyun bool "Enable LED triggers" 88*4882a593Smuzhiyun depends on BT 89*4882a593Smuzhiyun depends on LEDS_CLASS 90*4882a593Smuzhiyun select LEDS_TRIGGERS 91*4882a593Smuzhiyun help 92*4882a593Smuzhiyun This option selects a few LED triggers for different 93*4882a593Smuzhiyun Bluetooth events. 94*4882a593Smuzhiyun 95*4882a593Smuzhiyunconfig BT_MSFTEXT 96*4882a593Smuzhiyun bool "Enable Microsoft extensions" 97*4882a593Smuzhiyun depends on BT 98*4882a593Smuzhiyun help 99*4882a593Smuzhiyun This options enables support for the Microsoft defined HCI 100*4882a593Smuzhiyun vendor extensions. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyunconfig BT_DEBUGFS 103*4882a593Smuzhiyun bool "Export Bluetooth internals in debugfs" 104*4882a593Smuzhiyun depends on BT && DEBUG_FS 105*4882a593Smuzhiyun default y 106*4882a593Smuzhiyun help 107*4882a593Smuzhiyun Provide extensive information about internal Bluetooth states 108*4882a593Smuzhiyun in debugfs. 109*4882a593Smuzhiyun 110*4882a593Smuzhiyunconfig BT_SELFTEST 111*4882a593Smuzhiyun bool "Bluetooth self testing support" 112*4882a593Smuzhiyun depends on BT && DEBUG_KERNEL 113*4882a593Smuzhiyun help 114*4882a593Smuzhiyun Run self tests when initializing the Bluetooth subsystem. This 115*4882a593Smuzhiyun is a developer option and can cause significant delay when booting 116*4882a593Smuzhiyun the system. 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun When the Bluetooth subsystem is built as module, then the test 119*4882a593Smuzhiyun cases are run first thing at module load time. When the Bluetooth 120*4882a593Smuzhiyun subsystem is compiled into the kernel image, then the test cases 121*4882a593Smuzhiyun are run late in the initcall hierarchy. 122*4882a593Smuzhiyun 123*4882a593Smuzhiyunconfig BT_SELFTEST_ECDH 124*4882a593Smuzhiyun bool "ECDH test cases" 125*4882a593Smuzhiyun depends on BT_LE && BT_SELFTEST 126*4882a593Smuzhiyun help 127*4882a593Smuzhiyun Run test cases for ECDH cryptographic functionality used by the 128*4882a593Smuzhiyun Bluetooth Low Energy Secure Connections feature. 129*4882a593Smuzhiyun 130*4882a593Smuzhiyunconfig BT_SELFTEST_SMP 131*4882a593Smuzhiyun bool "SMP test cases" 132*4882a593Smuzhiyun depends on BT_LE && BT_SELFTEST 133*4882a593Smuzhiyun help 134*4882a593Smuzhiyun Run test cases for SMP cryptographic functionality, including both 135*4882a593Smuzhiyun legacy SMP as well as the Secure Connections features. 136*4882a593Smuzhiyun 137*4882a593Smuzhiyunconfig BT_FEATURE_DEBUG 138*4882a593Smuzhiyun bool "Enable runtime option for debugging statements" 139*4882a593Smuzhiyun depends on BT && !DYNAMIC_DEBUG 140*4882a593Smuzhiyun help 141*4882a593Smuzhiyun This provides an option to enable/disable debugging statements 142*4882a593Smuzhiyun at runtime via the experimental features interface. 143*4882a593Smuzhiyun 144*4882a593Smuzhiyunsource "drivers/bluetooth/Kconfig" 145