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