261 lines
7.1 KiB
Plaintext
261 lines
7.1 KiB
Plaintext
# Bluetooth configuration options
|
|
|
|
# Copyright (c) 2016 Intel Corporation
|
|
# 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
|
|
|
|
module = BT
|
|
module-str = bt
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
choice
|
|
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_RESERVE
|
|
int "Buffer headroom needed for HCI transport"
|
|
depends on BT_HCI_RAW
|
|
default 1 if BT_HCI_RAW_H4
|
|
default 0
|
|
help
|
|
This option is used by the HCI raw transport implementation to
|
|
declare how much headroom it needs for any HCI transport headers.
|
|
|
|
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.
|
|
|
|
menu "Broadcaster"
|
|
visible if !BT_PERIPHERAL
|
|
|
|
config BT_BROADCASTER
|
|
bool "Broadcaster Role support"
|
|
default y if !BT_OBSERVER
|
|
help
|
|
Select this for LE Broadcaster role support.
|
|
|
|
endmenu
|
|
|
|
config BT_EXT_ADV
|
|
bool "Extended Advertising and Scanning support [EXPERIMENTAL]"
|
|
help
|
|
Select this to enable Extended Advertising API support.
|
|
This enables support for advertising with multiple advertising sets,
|
|
extended advertising data, and advertising on LE Coded PHY.
|
|
It enables support for receiving extended advertising data as a
|
|
scanner, including support for advertising data over the LE coded PHY.
|
|
It enables establishing connections over LE Coded PHY.
|
|
|
|
if BT_EXT_ADV
|
|
config BT_EXT_ADV_LEGACY_SUPPORT
|
|
bool "Support starting advertising through legacy commands"
|
|
help
|
|
Select this to enable the use of the Legacy Advertising HCI commands.
|
|
This option should be used where the capabilities of the controller
|
|
is not known.
|
|
If this option is not enabled the controller must support the extended
|
|
advertising feature.
|
|
|
|
config BT_EXT_ADV_MAX_ADV_SET
|
|
int "Maximum number of simultaneous advertising sets"
|
|
range 1 64
|
|
default 1
|
|
help
|
|
Maximum number of simultaneous Bluetooth advertising sets
|
|
supported.
|
|
|
|
config BT_PER_ADV
|
|
bool "Periodic Advertising and Scanning support [EXPERIMENTAL]"
|
|
help
|
|
Select this to enable Periodic Advertising API support. This allows
|
|
the device to send advertising data periodically at deterministic
|
|
intervals. Scanners can synchronize to the periodic advertisements
|
|
to periodically get the data.
|
|
|
|
config BT_PER_ADV_SYNC
|
|
bool "Periodic advertising sync support [EXPERIMENTAL]"
|
|
depends on BT_OBSERVER
|
|
help
|
|
Select this to enable Periodic Advertising Sync API support.
|
|
Syncing with a periodic advertiser allows the device to periodically
|
|
and deterministic receive data from that device in a connectionless
|
|
manner.
|
|
|
|
if BT_PER_ADV_SYNC
|
|
config BT_PER_ADV_SYNC_MAX
|
|
int "Maximum number of simultaneous periodic advertising syncs"
|
|
range 1 64
|
|
default 1
|
|
help
|
|
Maximum number of simultaneous periodic advertising syncs supported.
|
|
endif # BT_PER_ADV_SYNC
|
|
|
|
endif # BT_EXT_ADV
|
|
|
|
menu "Observer"
|
|
visible if !BT_CENTRAL
|
|
|
|
config BT_OBSERVER
|
|
bool "Observer Role support"
|
|
help
|
|
Select this for LE Observer role support.
|
|
|
|
endmenu
|
|
|
|
source "subsys/bluetooth/services/Kconfig"
|
|
|
|
config BT_CONN
|
|
bool
|
|
|
|
config BT_MAX_CONN
|
|
int "Maximum number of simultaneous connections"
|
|
depends on BT_CONN
|
|
range 1 64
|
|
default 1
|
|
help
|
|
Maximum number of simultaneous Bluetooth connections
|
|
supported.
|
|
|
|
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
|
|
# 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 "Enable 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_info(). The fields in question can
|
|
be then found in the bt_conn_info struct.
|
|
|
|
config BT_PHY_UPDATE
|
|
bool "PHY Update"
|
|
default y
|
|
help
|
|
Enable support for Bluetooth 5.0 PHY Update Procedure.
|
|
|
|
config BT_DATA_LEN_UPDATE
|
|
bool "Data Length Update"
|
|
default y
|
|
help
|
|
Enable support for Bluetooth v4.2 LE Data Length Update procedure.
|
|
endif # BT_CONN
|
|
|
|
# Workaround for not being able to have commas in macro arguments
|
|
DT_CHOSEN_Z_BT_C2H_UART := zephyr,bt-c2h-uart
|
|
|
|
config BT_CTLR_TO_HOST_UART_DEV_NAME
|
|
string "Device Name of UART Device to an external Bluetooth Host"
|
|
default "$(dt_chosen_label,$(DT_CHOSEN_Z_BT_C2H_UART))" if HAS_DTS
|
|
default "UART_0"
|
|
depends on BT_HCI_RAW
|
|
help
|
|
This option specifies the name of UART device to be used
|
|
to connect to an external Bluetooth Host when Zephyr is
|
|
acting as a Bluetooth Controller.
|
|
|
|
source "subsys/bluetooth/common/Kconfig"
|
|
source "subsys/bluetooth/host/Kconfig"
|
|
source "subsys/bluetooth/controller/Kconfig"
|
|
source "subsys/bluetooth/shell/Kconfig"
|
|
|
|
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
|
|
|
|
source "subsys/bluetooth/mesh/Kconfig"
|
|
|
|
endif # BT
|