Linux 6.9-rc1
[linux-2.6-microblaze.git] / net / bluetooth / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Bluetooth subsystem configuration
4 #
5
6 menuconfig 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              HCI Device drivers (Interface to the hardware)
33              RFCOMM Module (RFCOMM Protocol)  
34              BNEP Module (Bluetooth Network Encapsulation Protocol)
35              CMTP Module (CAPI Message Transport Protocol)
36              HIDP Module (Human Interface Device Protocol)
37
38           Say Y here to compile Bluetooth support into the kernel or say M to
39           compile it as module (bluetooth).
40
41           To use Linux Bluetooth subsystem, you will need several user-space
42           utilities like hciconfig and bluetoothd.  These utilities and updates
43           to Bluetooth kernel modules are provided in the BlueZ packages.  For
44           more information, see <http://www.bluez.org/>.
45
46 config BT_BREDR
47         bool "Bluetooth Classic (BR/EDR) features"
48         depends on BT
49         default y
50         help
51           Bluetooth Classic includes support for Basic Rate (BR)
52           available with Bluetooth version 1.0b or later and support
53           for Enhanced Data Rate (EDR) available with Bluetooth
54           version 2.0 or later.
55
56 source "net/bluetooth/rfcomm/Kconfig"
57
58 source "net/bluetooth/bnep/Kconfig"
59
60 source "net/bluetooth/cmtp/Kconfig"
61
62 source "net/bluetooth/hidp/Kconfig"
63
64 config BT_HS
65         bool "Bluetooth High Speed (HS) features"
66         depends on BT_BREDR
67         help
68           Bluetooth High Speed includes support for off-loading
69           Bluetooth connections via 802.11 (wifi) physical layer
70           available with Bluetooth version 3.0 or later.
71
72 config BT_LE
73         bool "Bluetooth Low Energy (LE) features"
74         depends on BT
75         default y
76         help
77           Bluetooth Low Energy includes support low-energy physical
78           layer available with Bluetooth version 4.0 or later.
79
80 config BT_6LOWPAN
81         tristate "Bluetooth 6LoWPAN support"
82         depends on BT_LE && 6LOWPAN
83         help
84           IPv6 compression over Bluetooth Low Energy.
85
86 config BT_LEDS
87         bool "Enable LED triggers"
88         depends on BT
89         depends on LEDS_CLASS
90         select LEDS_TRIGGERS
91         help
92           This option selects a few LED triggers for different
93           Bluetooth events.
94
95 config BT_MSFTEXT
96         bool "Enable Microsoft extensions"
97         depends on BT
98         help
99           This options enables support for the Microsoft defined HCI
100           vendor extensions.
101
102 config BT_AOSPEXT
103         bool "Enable Android Open Source Project extensions"
104         depends on BT
105         help
106           This options enables support for the Android Open Source
107           Project defined HCI vendor extensions.
108
109 config BT_DEBUGFS
110         bool "Export Bluetooth internals in debugfs"
111         depends on BT && DEBUG_FS
112         default y
113         help
114           Provide extensive information about internal Bluetooth states
115           in debugfs.
116
117 config BT_SELFTEST
118         bool "Bluetooth self testing support"
119         depends on BT && DEBUG_KERNEL
120         help
121           Run self tests when initializing the Bluetooth subsystem.  This
122           is a developer option and can cause significant delay when booting
123           the system.
124
125           When the Bluetooth subsystem is built as module, then the test
126           cases are run first thing at module load time.  When the Bluetooth
127           subsystem is compiled into the kernel image, then the test cases
128           are run late in the initcall hierarchy.
129
130 config BT_SELFTEST_ECDH
131         bool "ECDH test cases"
132         depends on BT_LE && BT_SELFTEST
133         help
134           Run test cases for ECDH cryptographic functionality used by the
135           Bluetooth Low Energy Secure Connections feature.
136
137 config BT_SELFTEST_SMP
138         bool "SMP test cases"
139         depends on BT_LE && BT_SELFTEST
140         help
141           Run test cases for SMP cryptographic functionality, including both
142           legacy SMP as well as the Secure Connections features.
143
144 config BT_FEATURE_DEBUG
145         bool "Enable runtime option for debugging statements"
146         depends on BT && !DYNAMIC_DEBUG
147         help
148           This provides an option to enable/disable debugging statements
149           at runtime via the experimental features interface.
150
151 source "drivers/bluetooth/Kconfig"