xref: /OK3568_Linux_fs/kernel/net/bluetooth/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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