18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Bluetooth subsystem configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cimenuconfig BT
78c2ecf20Sopenharmony_ci	tristate "Bluetooth subsystem support"
88c2ecf20Sopenharmony_ci	depends on NET && !S390
98c2ecf20Sopenharmony_ci	depends on RFKILL || !RFKILL
108c2ecf20Sopenharmony_ci	select CRC16
118c2ecf20Sopenharmony_ci	select CRYPTO
128c2ecf20Sopenharmony_ci	select CRYPTO_SKCIPHER
138c2ecf20Sopenharmony_ci	select CRYPTO_LIB_AES
148c2ecf20Sopenharmony_ci	imply CRYPTO_AES
158c2ecf20Sopenharmony_ci	select CRYPTO_CMAC
168c2ecf20Sopenharmony_ci	select CRYPTO_ECB
178c2ecf20Sopenharmony_ci	select CRYPTO_SHA256
188c2ecf20Sopenharmony_ci	select CRYPTO_ECDH
198c2ecf20Sopenharmony_ci	help
208c2ecf20Sopenharmony_ci	  Bluetooth is low-cost, low-power, short-range wireless technology.
218c2ecf20Sopenharmony_ci	  It was designed as a replacement for cables and other short-range
228c2ecf20Sopenharmony_ci	  technologies like IrDA.  Bluetooth operates in personal area range
238c2ecf20Sopenharmony_ci	  that typically extends up to 10 meters.  More information about
248c2ecf20Sopenharmony_ci	  Bluetooth can be found at <https://www.bluetooth.com/>.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	  Linux Bluetooth subsystem consist of several layers:
278c2ecf20Sopenharmony_ci	     Bluetooth Core
288c2ecf20Sopenharmony_ci		HCI device and connection manager, scheduler
298c2ecf20Sopenharmony_ci		SCO audio links
308c2ecf20Sopenharmony_ci		L2CAP (Logical Link Control and Adaptation Protocol)
318c2ecf20Sopenharmony_ci		SMP (Security Manager Protocol) on LE (Low Energy) links
328c2ecf20Sopenharmony_ci	     HCI Device drivers (Interface to the hardware)
338c2ecf20Sopenharmony_ci	     RFCOMM Module (RFCOMM Protocol)  
348c2ecf20Sopenharmony_ci	     BNEP Module (Bluetooth Network Encapsulation Protocol)
358c2ecf20Sopenharmony_ci	     CMTP Module (CAPI Message Transport Protocol)
368c2ecf20Sopenharmony_ci	     HIDP Module (Human Interface Device Protocol)
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci	  Say Y here to compile Bluetooth support into the kernel or say M to
398c2ecf20Sopenharmony_ci	  compile it as module (bluetooth).
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	  To use Linux Bluetooth subsystem, you will need several user-space
428c2ecf20Sopenharmony_ci	  utilities like hciconfig and bluetoothd.  These utilities and updates
438c2ecf20Sopenharmony_ci	  to Bluetooth kernel modules are provided in the BlueZ packages.  For
448c2ecf20Sopenharmony_ci	  more information, see <http://www.bluez.org/>.
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ciconfig BT_BREDR
478c2ecf20Sopenharmony_ci	bool "Bluetooth Classic (BR/EDR) features"
488c2ecf20Sopenharmony_ci	depends on BT
498c2ecf20Sopenharmony_ci	default y
508c2ecf20Sopenharmony_ci	help
518c2ecf20Sopenharmony_ci	  Bluetooth Classic includes support for Basic Rate (BR)
528c2ecf20Sopenharmony_ci	  available with Bluetooth version 1.0b or later and support
538c2ecf20Sopenharmony_ci	  for Enhanced Data Rate (EDR) available with Bluetooth
548c2ecf20Sopenharmony_ci	  version 2.0 or later.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_cisource "net/bluetooth/rfcomm/Kconfig"
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_cisource "net/bluetooth/bnep/Kconfig"
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_cisource "net/bluetooth/cmtp/Kconfig"
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_cisource "net/bluetooth/hidp/Kconfig"
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciconfig BT_HS
658c2ecf20Sopenharmony_ci	bool "Bluetooth High Speed (HS) features"
668c2ecf20Sopenharmony_ci	depends on BT_BREDR
678c2ecf20Sopenharmony_ci	help
688c2ecf20Sopenharmony_ci	  Bluetooth High Speed includes support for off-loading
698c2ecf20Sopenharmony_ci	  Bluetooth connections via 802.11 (wifi) physical layer
708c2ecf20Sopenharmony_ci	  available with Bluetooth version 3.0 or later.
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciconfig BT_LE
738c2ecf20Sopenharmony_ci	bool "Bluetooth Low Energy (LE) features"
748c2ecf20Sopenharmony_ci	depends on BT
758c2ecf20Sopenharmony_ci	default y
768c2ecf20Sopenharmony_ci	help
778c2ecf20Sopenharmony_ci	  Bluetooth Low Energy includes support low-energy physical
788c2ecf20Sopenharmony_ci	  layer available with Bluetooth version 4.0 or later.
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciconfig BT_6LOWPAN
818c2ecf20Sopenharmony_ci	tristate "Bluetooth 6LoWPAN support"
828c2ecf20Sopenharmony_ci	depends on BT_LE && 6LOWPAN
838c2ecf20Sopenharmony_ci	help
848c2ecf20Sopenharmony_ci	  IPv6 compression over Bluetooth Low Energy.
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ciconfig BT_LEDS
878c2ecf20Sopenharmony_ci	bool "Enable LED triggers"
888c2ecf20Sopenharmony_ci	depends on BT
898c2ecf20Sopenharmony_ci	depends on LEDS_CLASS
908c2ecf20Sopenharmony_ci	select LEDS_TRIGGERS
918c2ecf20Sopenharmony_ci	help
928c2ecf20Sopenharmony_ci	  This option selects a few LED triggers for different
938c2ecf20Sopenharmony_ci	  Bluetooth events.
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ciconfig BT_MSFTEXT
968c2ecf20Sopenharmony_ci	bool "Enable Microsoft extensions"
978c2ecf20Sopenharmony_ci	depends on BT
988c2ecf20Sopenharmony_ci	help
998c2ecf20Sopenharmony_ci	  This options enables support for the Microsoft defined HCI
1008c2ecf20Sopenharmony_ci	  vendor extensions.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciconfig BT_DEBUGFS
1038c2ecf20Sopenharmony_ci	bool "Export Bluetooth internals in debugfs"
1048c2ecf20Sopenharmony_ci	depends on BT && DEBUG_FS
1058c2ecf20Sopenharmony_ci	default y
1068c2ecf20Sopenharmony_ci	help
1078c2ecf20Sopenharmony_ci	  Provide extensive information about internal Bluetooth states
1088c2ecf20Sopenharmony_ci	  in debugfs.
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ciconfig BT_SELFTEST
1118c2ecf20Sopenharmony_ci	bool "Bluetooth self testing support"
1128c2ecf20Sopenharmony_ci	depends on BT && DEBUG_KERNEL
1138c2ecf20Sopenharmony_ci	help
1148c2ecf20Sopenharmony_ci	  Run self tests when initializing the Bluetooth subsystem.  This
1158c2ecf20Sopenharmony_ci	  is a developer option and can cause significant delay when booting
1168c2ecf20Sopenharmony_ci	  the system.
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci	  When the Bluetooth subsystem is built as module, then the test
1198c2ecf20Sopenharmony_ci	  cases are run first thing at module load time.  When the Bluetooth
1208c2ecf20Sopenharmony_ci	  subsystem is compiled into the kernel image, then the test cases
1218c2ecf20Sopenharmony_ci	  are run late in the initcall hierarchy.
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_ciconfig BT_SELFTEST_ECDH
1248c2ecf20Sopenharmony_ci	bool "ECDH test cases"
1258c2ecf20Sopenharmony_ci	depends on BT_LE && BT_SELFTEST
1268c2ecf20Sopenharmony_ci	help
1278c2ecf20Sopenharmony_ci	  Run test cases for ECDH cryptographic functionality used by the
1288c2ecf20Sopenharmony_ci	  Bluetooth Low Energy Secure Connections feature.
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ciconfig BT_SELFTEST_SMP
1318c2ecf20Sopenharmony_ci	bool "SMP test cases"
1328c2ecf20Sopenharmony_ci	depends on BT_LE && BT_SELFTEST
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  Run test cases for SMP cryptographic functionality, including both
1358c2ecf20Sopenharmony_ci	  legacy SMP as well as the Secure Connections features.
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ciconfig BT_FEATURE_DEBUG
1388c2ecf20Sopenharmony_ci	bool "Enable runtime option for debugging statements"
1398c2ecf20Sopenharmony_ci	depends on BT && !DYNAMIC_DEBUG
1408c2ecf20Sopenharmony_ci	help
1418c2ecf20Sopenharmony_ci	  This provides an option to enable/disable debugging statements
1428c2ecf20Sopenharmony_ci	  at runtime via the experimental features interface.
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_cisource "drivers/bluetooth/Kconfig"
145