# Bluetooth configuration options # Copyright (c) 2016 Intel Corporation # Copyright (c) 2021 Nordic Semiconductor ASA # SPDX-License-Identifier: Apache-2.0 menuconfig BT bool "Bluetooth" # Some BT threads use co-op priorities to implement critical sections, # will need some refactoring to work on SMP systems. depends on !SMP select NET_BUF help This option enables Bluetooth support. if BT choice BT_STACK_SELECTION prompt "Bluetooth Stack Selection" default BT_HCI help Select the Bluetooth stack to compile. config BT_HCI bool "HCI-based" help HCI-based stack with optional host & controller parts and an HCI driver in between. config BT_CUSTOM bool "Custom" help Select a custom, non-HCI based stack. If you're not sure what this is, you probably want the HCI-based stack instead. endchoice # The Bluetooth subsystem requires the system workqueue to execute at # a cooperative priority. config SYSTEM_WORKQUEUE_PRIORITY range -256 -1 if BT_HCI config BT_HCI_RAW bool "RAW HCI access" help This option allows to access Bluetooth controller from the application with the RAW HCI protocol. config BT_HCI_RAW_H4 bool "RAW HCI H:4 transport" help This option enables HCI RAW access to work over an H:4 transport, note that it still need to be selected at runtime. config BT_HCI_RAW_H4_ENABLE bool "RAW HCI H:4 transport enable" depends on BT_HCI_RAW_H4 help This option enables use of H:4 transport for HCI RAW access at build time. config BT_HCI_RAW_CMD_EXT bool "RAW HCI Command Extension" help This option enables HCI RAW command extension so the driver can register it own command table extension. config BT_PERIPHERAL bool "Peripheral Role support" select BT_BROADCASTER select BT_CONN default y if BT_HCI_RAW help Select this for LE Peripheral role support. config BT_CENTRAL bool "Central Role support" select BT_OBSERVER select BT_CONN default y if BT_HCI_RAW help Select this for LE Central role support. config BT_BROADCASTER bool "Broadcaster Role support" default y if !BT_OBSERVER help Select this for LE Broadcaster role support. config BT_OBSERVER bool "Observer Role support" help Select this for LE Observer role support. rsource "Kconfig.adv" config BT_CONN bool config BT_MAX_CONN int "Maximum number of simultaneous connections" depends on BT_CONN range 1 250 default 2 if BT_MESH_GATT_CLIENT default 1 help Maximum number of simultaneous Bluetooth connections supported. config BT_CONN_TX bool default BT_CONN || BT_ISO_TX help Hidden configuration that is true if ACL or broadcast ISO is enabled if BT_CONN config BT_HCI_ACL_FLOW_CONTROL bool "Controller to Host ACL flow control support" # Enable if building a Host-only build default y if !BT_CTLR && !BT_STM32_IPM && !BT_ESP32 && !BT_STM32WBA # Enable if building a Controller-only build default y if BT_HCI_RAW select POLL help Enable support for throttling ACL buffers from the controller to the host. This is particularly useful when the host and controller are on separate cores since it ensures that we do not run out of incoming ACL buffers. config BT_REMOTE_VERSION bool "Allow fetching of remote version" # Enable if building a Controller-only build default y if BT_HCI_RAW help Enable this to get access to the remote version in the Controller and in the Host through bt_conn_get_remote_info(). The fields in question can then be found in the bt_conn_remote_info struct. config BT_PHY_UPDATE bool "PHY Update" default y depends on !BT_CTLR || BT_CTLR_PHY_UPDATE_SUPPORT help Enable support for Bluetooth 5.0 PHY Update Procedure. config BT_DATA_LEN_UPDATE bool "Data Length Update" default y depends on !BT_CTLR || BT_CTLR_DATA_LEN_UPDATE_SUPPORT help Enable support for Bluetooth v4.2 LE Data Length Update procedure. config BT_PER_ADV_SYNC_TRANSFER_RECEIVER bool "Periodic Advertising Sync Transfer receiver" depends on BT_PER_ADV_SYNC && (!BT_CTLR || BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT) config BT_PER_ADV_SYNC_TRANSFER_SENDER bool "Periodic Advertising Sync Transfer sender" depends on (BT_PER_ADV_SYNC || BT_PER_ADV) && (!BT_CTLR || BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT) config BT_SCA_UPDATE bool "Sleep Clock Accuracy Update" default y if BT_ISO_PERIPHERAL || BT_ISO_CENTRAL depends on !BT_CTLR || BT_CTLR_SCA_UPDATE_SUPPORT help Enable support for Bluetooth 5.1 Sleep Clock Accuracy Update Procedure config BT_TRANSMIT_POWER_CONTROL bool "LE Power Control" depends on !BT_CTLR || BT_CTLR_LE_POWER_CONTROL_SUPPORT help Enable support for LE Power Control Request feature that is defined in the Bluetooth Core specification, Version 5.4 | Vol 6, Part B, Section 4.6.31. config BT_PATH_LOSS_MONITORING bool "LE Path Loss Monitoring" depends on !BT_CTLR || BT_CTLR_LE_PATH_LOSS_MONITORING_SUPPORT help Enable support for LE Path Loss Monitoring feature that is defined in the Bluetooth Core specification, Version 5.4 | Vol 6, Part B, Section 4.6.32. endif # BT_CONN rsource "Kconfig.iso" rsource "common/Kconfig" rsource "host/Kconfig" rsource "controller/Kconfig" rsource "shell/Kconfig" rsource "crypto/Kconfig" rsource "lib/Kconfig" rsource "Kconfig.logging" config BT_USE_PSA_API bool "Use PSA APIs instead of TinyCrypt for crypto operations" depends on BT_CRYPTO || BT_HOST_CRYPTO || BT_ECC depends on PSA_CRYPTO_CLIENT help Use PSA APIs instead of TinyCrypt for crypto operations endif # BT_HCI config BT_COMPANY_ID hex "Company Id" default 0x05F1 range 0x0000 0xFFFF help Set the Bluetooth Company Identifier for this device. The Linux Foundation's Company Identifier (0x05F1) is the default value for this option although silicon vendors and hardware manufacturers can set their own. Note that the controller's Company Identifier is controlled by BT_CTLR_COMPANY_ID. The full list of Bluetooth Company Identifiers can be found here: https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers endif # BT