1# Bluetooth configuration options 2 3# Copyright (c) 2016 Intel Corporation 4# Copyright (c) 2021 Nordic Semiconductor ASA 5# SPDX-License-Identifier: Apache-2.0 6 7menuconfig BT 8 bool "Bluetooth" 9 # Some BT threads use co-op priorities to implement critical sections, 10 # will need some refactoring to work on SMP systems. 11 depends on !SMP 12 select NET_BUF 13 help 14 This option enables Bluetooth support. 15 16if BT 17 18choice BT_STACK_SELECTION 19 prompt "Bluetooth Stack Selection" 20 default BT_HCI 21 help 22 Select the Bluetooth stack to compile. 23 24config BT_HCI 25 bool "HCI-based" 26 help 27 HCI-based stack with optional host & controller parts and an 28 HCI driver in between. 29 30config BT_CUSTOM 31 bool "Custom" 32 help 33 Select a custom, non-HCI based stack. If you're not sure what 34 this is, you probably want the HCI-based stack instead. 35 36endchoice 37 38# The Bluetooth subsystem requires the system workqueue to execute at 39# a cooperative priority. 40config SYSTEM_WORKQUEUE_PRIORITY 41 range -256 -1 42 43if BT_HCI 44 45config BT_HCI_RAW 46 bool "RAW HCI access" 47 help 48 This option allows to access Bluetooth controller 49 from the application with the RAW HCI protocol. 50 51config BT_HCI_RAW_H4 52 bool "RAW HCI H:4 transport" 53 help 54 This option enables HCI RAW access to work over an H:4 55 transport, note that it still need to be selected at runtime. 56 57config BT_HCI_RAW_H4_ENABLE 58 bool "RAW HCI H:4 transport enable" 59 depends on BT_HCI_RAW_H4 60 help 61 This option enables use of H:4 transport for HCI RAW access at 62 build time. 63 64config BT_HCI_RAW_RESERVE 65 int "Buffer headroom needed for HCI transport" 66 depends on BT_HCI_RAW 67 default 1 if BT_HCI_RAW_H4 68 default 0 69 help 70 This option is used by the HCI raw transport implementation to 71 declare how much headroom it needs for any HCI transport headers. 72 73config BT_HCI_RAW_CMD_EXT 74 bool "RAW HCI Command Extension" 75 help 76 This option enables HCI RAW command extension so the driver can 77 register it own command table extension. 78 79config BT_PERIPHERAL 80 bool "Peripheral Role support" 81 select BT_BROADCASTER 82 select BT_CONN 83 default y if BT_HCI_RAW 84 help 85 Select this for LE Peripheral role support. 86 87config BT_CENTRAL 88 bool "Central Role support" 89 select BT_OBSERVER 90 select BT_CONN 91 default y if BT_HCI_RAW 92 help 93 Select this for LE Central role support. 94 95config BT_BROADCASTER 96 bool "Broadcaster Role support" 97 default y if !BT_OBSERVER 98 help 99 Select this for LE Broadcaster role support. 100 101config BT_OBSERVER 102 bool "Observer Role support" 103 help 104 Select this for LE Observer role support. 105 106rsource "Kconfig.adv" 107 108config BT_CONN 109 bool 110 111config BT_MAX_CONN 112 int "Maximum number of simultaneous connections" 113 depends on BT_CONN 114 range 1 250 115 default 2 if BT_MESH_GATT_CLIENT 116 default 1 117 help 118 Maximum number of simultaneous Bluetooth connections 119 supported. 120 121config BT_CONN_TX 122 bool 123 default BT_CONN || BT_ISO_BROADCASTER 124 help 125 Hidden configuration that is true if ACL or broadcast ISO is enabled 126 127if BT_CONN 128config BT_HCI_ACL_FLOW_CONTROL 129 bool "Controller to Host ACL flow control support" 130 # Enable if building a Host-only build 131 default y if !BT_CTLR && !BT_STM32_IPM && !BT_ESP32 132 # Enable if building a Controller-only build 133 default y if BT_HCI_RAW 134 select POLL 135 help 136 Enable support for throttling ACL buffers from the controller 137 to the host. This is particularly useful when the host and 138 controller are on separate cores since it ensures that we do 139 not run out of incoming ACL buffers. 140 141config BT_REMOTE_VERSION 142 bool "Allow fetching of remote version" 143 # Enable if building a Controller-only build 144 default y if BT_HCI_RAW 145 help 146 Enable this to get access to the remote version in the Controller and 147 in the Host through bt_conn_get_remote_info(). The fields in question 148 can then be found in the bt_conn_remote_info struct. 149 150config BT_PHY_UPDATE 151 bool "PHY Update" 152 default y 153 depends on !BT_CTLR || BT_CTLR_PHY_UPDATE_SUPPORT 154 help 155 Enable support for Bluetooth 5.0 PHY Update Procedure. 156 157config BT_DATA_LEN_UPDATE 158 bool "Data Length Update" 159 default y 160 depends on !BT_CTLR || BT_CTLR_DATA_LEN_UPDATE_SUPPORT 161 help 162 Enable support for Bluetooth v4.2 LE Data Length Update procedure. 163 164config BT_PER_ADV_SYNC_TRANSFER_RECEIVER 165 bool "Periodic Advertising Sync Transfer receiver" 166 depends on BT_PER_ADV_SYNC && (!BT_CTLR || BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT) 167 168config BT_PER_ADV_SYNC_TRANSFER_SENDER 169 bool "Periodic Advertising Sync Transfer sender" 170 depends on (BT_PER_ADV_SYNC || BT_PER_ADV) && (!BT_CTLR || BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT) 171 172config BT_SCA_UPDATE 173 bool "Sleep Clock Accuracy Update" 174 default y if BT_ISO_PERIPHERAL || BT_ISO_CENTRAL 175 depends on !BT_CTLR || BT_CTLR_SCA_UPDATE_SUPPORT 176 help 177 Enable support for Bluetooth 5.1 Sleep Clock Accuracy Update Procedure 178endif # BT_CONN 179 180rsource "Kconfig.iso" 181rsource "common/Kconfig" 182rsource "host/Kconfig" 183rsource "controller/Kconfig" 184rsource "shell/Kconfig" 185rsource "crypto/Kconfig" 186rsource "lib/Kconfig" 187rsource "Kconfig.logging" 188 189endif # BT_HCI 190 191config BT_COMPANY_ID 192 hex "Company Id" 193 default 0x05F1 194 range 0x0000 0xFFFF 195 help 196 Set the Bluetooth Company Identifier for this device. The Linux 197 Foundation's Company Identifier (0x05F1) is the default value for 198 this option although silicon vendors and hardware manufacturers 199 can set their own. Note that the controller's Company Identifier is 200 controlled by BT_CTLR_COMPANY_ID. The full list of Bluetooth 201 Company Identifiers can be found here: 202 https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers 203 204endif # BT 205