0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Bluetooth subsystem configuration
0004 #
0005
0006 menuconfig BT
0007 tristate "Bluetooth subsystem support"
0008 depends on !S390
0009 depends on RFKILL || !RFKILL
0010 select CRC16
0011 select CRYPTO
0012 select CRYPTO_SKCIPHER
0013 select CRYPTO_LIB_AES
0014 imply CRYPTO_AES
0015 select CRYPTO_CMAC
0016 select CRYPTO_ECB
0017 select CRYPTO_SHA256
0018 select CRYPTO_ECDH
0019 help
0020 Bluetooth is low-cost, low-power, short-range wireless technology.
0021 It was designed as a replacement for cables and other short-range
0022 technologies like IrDA. Bluetooth operates in personal area range
0023 that typically extends up to 10 meters. More information about
0024 Bluetooth can be found at <https://www.bluetooth.com/>.
0025
0026 Linux Bluetooth subsystem consist of several layers:
0027 Bluetooth Core
0028 HCI device and connection manager, scheduler
0029 SCO audio links
0030 L2CAP (Logical Link Control and Adaptation Protocol)
0031 SMP (Security Manager Protocol) on LE (Low Energy) links
0032 ISO isochronous links
0033 HCI Device drivers (Interface to the hardware)
0034 RFCOMM Module (RFCOMM Protocol)
0035 BNEP Module (Bluetooth Network Encapsulation Protocol)
0036 CMTP Module (CAPI Message Transport Protocol)
0037 HIDP Module (Human Interface Device Protocol)
0038
0039 Say Y here to compile Bluetooth support into the kernel or say M to
0040 compile it as module (bluetooth).
0041
0042 To use Linux Bluetooth subsystem, you will need several user-space
0043 utilities like hciconfig and bluetoothd. These utilities and updates
0044 to Bluetooth kernel modules are provided in the BlueZ packages. For
0045 more information, see <http://www.bluez.org/>.
0046
0047 config BT_BREDR
0048 bool "Bluetooth Classic (BR/EDR) features"
0049 depends on BT
0050 default y
0051 help
0052 Bluetooth Classic includes support for Basic Rate (BR)
0053 available with Bluetooth version 1.0b or later and support
0054 for Enhanced Data Rate (EDR) available with Bluetooth
0055 version 2.0 or later.
0056
0057 source "net/bluetooth/rfcomm/Kconfig"
0058
0059 source "net/bluetooth/bnep/Kconfig"
0060
0061 source "net/bluetooth/cmtp/Kconfig"
0062
0063 source "net/bluetooth/hidp/Kconfig"
0064
0065 config BT_HS
0066 bool "Bluetooth High Speed (HS) features"
0067 depends on BT_BREDR
0068 help
0069 Bluetooth High Speed includes support for off-loading
0070 Bluetooth connections via 802.11 (wifi) physical layer
0071 available with Bluetooth version 3.0 or later.
0072
0073 config BT_LE
0074 bool "Bluetooth Low Energy (LE) features"
0075 depends on BT
0076 default y
0077 help
0078 Bluetooth Low Energy includes support low-energy physical
0079 layer available with Bluetooth version 4.0 or later.
0080
0081 config BT_6LOWPAN
0082 tristate "Bluetooth 6LoWPAN support"
0083 depends on BT_LE && 6LOWPAN
0084 help
0085 IPv6 compression over Bluetooth Low Energy.
0086
0087 config BT_LEDS
0088 bool "Enable LED triggers"
0089 depends on BT
0090 depends on LEDS_CLASS
0091 select LEDS_TRIGGERS
0092 help
0093 This option selects a few LED triggers for different
0094 Bluetooth events.
0095
0096 config BT_MSFTEXT
0097 bool "Enable Microsoft extensions"
0098 depends on BT
0099 help
0100 This options enables support for the Microsoft defined HCI
0101 vendor extensions.
0102
0103 config BT_AOSPEXT
0104 bool "Enable Android Open Source Project extensions"
0105 depends on BT
0106 help
0107 This options enables support for the Android Open Source
0108 Project defined HCI vendor extensions.
0109
0110 config BT_DEBUGFS
0111 bool "Export Bluetooth internals in debugfs"
0112 depends on BT && DEBUG_FS
0113 default y
0114 help
0115 Provide extensive information about internal Bluetooth states
0116 in debugfs.
0117
0118 config BT_SELFTEST
0119 bool "Bluetooth self testing support"
0120 depends on BT && DEBUG_KERNEL
0121 help
0122 Run self tests when initializing the Bluetooth subsystem. This
0123 is a developer option and can cause significant delay when booting
0124 the system.
0125
0126 When the Bluetooth subsystem is built as module, then the test
0127 cases are run first thing at module load time. When the Bluetooth
0128 subsystem is compiled into the kernel image, then the test cases
0129 are run late in the initcall hierarchy.
0130
0131 config BT_SELFTEST_ECDH
0132 bool "ECDH test cases"
0133 depends on BT_LE && BT_SELFTEST
0134 help
0135 Run test cases for ECDH cryptographic functionality used by the
0136 Bluetooth Low Energy Secure Connections feature.
0137
0138 config BT_SELFTEST_SMP
0139 bool "SMP test cases"
0140 depends on BT_LE && BT_SELFTEST
0141 help
0142 Run test cases for SMP cryptographic functionality, including both
0143 legacy SMP as well as the Secure Connections features.
0144
0145 config BT_FEATURE_DEBUG
0146 bool "Enable runtime option for debugging statements"
0147 depends on BT && !DYNAMIC_DEBUG
0148 help
0149 This provides an option to enable/disable debugging statements
0150 at runtime via the experimental features interface.
0151
0152 source "drivers/bluetooth/Kconfig"