xref: /openbmc/linux/net/bluetooth/Kconfig (revision 74ce1896)
1#
2# Bluetooth subsystem configuration
3#
4
5menuconfig BT
6	tristate "Bluetooth subsystem support"
7	depends on NET && !S390
8	depends on RFKILL || !RFKILL
9	select CRC16
10	select CRYPTO
11	select CRYPTO_BLKCIPHER
12	select CRYPTO_AES
13	select CRYPTO_CMAC
14	select CRYPTO_ECB
15	select CRYPTO_SHA256
16	select CRYPTO_ECDH
17	help
18	  Bluetooth is low-cost, low-power, short-range wireless technology.
19	  It was designed as a replacement for cables and other short-range
20	  technologies like IrDA.  Bluetooth operates in personal area range
21	  that typically extends up to 10 meters.  More information about
22	  Bluetooth can be found at <http://www.bluetooth.com/>.
23
24	  Linux Bluetooth subsystem consist of several layers:
25	     Bluetooth Core
26		HCI device and connection manager, scheduler
27		SCO audio links
28		L2CAP (Logical Link Control and Adaptation Protocol)
29		SMP (Security Manager Protocol) on LE (Low Energy) links
30	     HCI Device drivers (Interface to the hardware)
31	     RFCOMM Module (RFCOMM Protocol)
32	     BNEP Module (Bluetooth Network Encapsulation Protocol)
33	     CMTP Module (CAPI Message Transport Protocol)
34	     HIDP Module (Human Interface Device Protocol)
35
36	  Say Y here to compile Bluetooth support into the kernel or say M to
37	  compile it as module (bluetooth).
38
39	  To use Linux Bluetooth subsystem, you will need several user-space
40	  utilities like hciconfig and bluetoothd.  These utilities and updates
41	  to Bluetooth kernel modules are provided in the BlueZ packages.  For
42	  more information, see <http://www.bluez.org/>.
43
44config BT_BREDR
45	bool "Bluetooth Classic (BR/EDR) features"
46	depends on BT
47	default y
48	help
49	  Bluetooth Classic includes support for Basic Rate (BR)
50	  available with Bluetooth version 1.0b or later and support
51	  for Enhanced Data Rate (EDR) available with Bluetooth
52	  version 2.0 or later.
53
54source "net/bluetooth/rfcomm/Kconfig"
55
56source "net/bluetooth/bnep/Kconfig"
57
58source "net/bluetooth/cmtp/Kconfig"
59
60source "net/bluetooth/hidp/Kconfig"
61
62config BT_HS
63	bool "Bluetooth High Speed (HS) features"
64	depends on BT_BREDR
65	default y
66	help
67	  Bluetooth High Speed includes support for off-loading
68	  Bluetooth connections via 802.11 (wifi) physical layer
69	  available with Bluetooth version 3.0 or later.
70
71config BT_LE
72	bool "Bluetooth Low Energy (LE) features"
73	depends on BT
74	default y
75	help
76	  Bluetooth Low Energy includes support low-energy physical
77	  layer available with Bluetooth version 4.0 or later.
78
79config BT_6LOWPAN
80	tristate "Bluetooth 6LoWPAN support"
81	depends on BT_LE && 6LOWPAN
82	help
83	  IPv6 compression over Bluetooth Low Energy.
84
85config BT_LEDS
86	bool "Enable LED triggers"
87	depends on BT
88	depends on LEDS_CLASS
89	select LEDS_TRIGGERS
90	help
91	  This option selects a few LED triggers for different
92	  Bluetooth events.
93
94config BT_SELFTEST
95	bool "Bluetooth self testing support"
96	depends on BT && DEBUG_KERNEL
97	help
98	  Run self tests when initializing the Bluetooth subsystem.  This
99	  is a developer option and can cause significant delay when booting
100	  the system.
101
102	  When the Bluetooth subsystem is built as module, then the test
103	  cases are run first thing at module load time.  When the Bluetooth
104	  subsystem is compiled into the kernel image, then the test cases
105	  are run late in the initcall hierarchy.
106
107config BT_SELFTEST_ECDH
108	bool "ECDH test cases"
109	depends on BT_LE && BT_SELFTEST
110	help
111	  Run test cases for ECDH cryptographic functionality used by the
112	  Bluetooth Low Energy Secure Connections feature.
113
114config BT_SELFTEST_SMP
115	bool "SMP test cases"
116	depends on BT_LE && BT_SELFTEST
117	help
118	  Run test cases for SMP cryptographic functionality, including both
119	  legacy SMP as well as the Secure Connections features.
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_LEGACY_IOCTL
130	bool "Enable legacy ioctl interfaces"
131	depends on BT && BT_BREDR
132	default y
133	help
134	  Enable support for legacy ioctl interfaces.  This is only needed
135	  for old and deprecated applications using direct ioctl calls for
136	  controller management.  Since Linux 3.4 all configuration and
137	  setup is done via mgmt interface and this is no longer needed.
138
139source "drivers/bluetooth/Kconfig"
140