Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

# Zephyr Bluetooth Controller configuration options

# Copyright (c) 2020 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config BT_CTLR_DF_SUPPORT
	bool
	select BT_CTLR_DF_CTE_TX_SUPPORT
	select BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
	select BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT
	select BT_CTLR_DF_CTE_RX_SUPPORT
	select BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT

config BT_CTLR_DF_CTE_TX_SUPPORT
	bool

config BT_CTLR_DF_CTE_RX_SUPPORT
	bool

config BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT
	bool

config BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
	bool

config BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT
	bool

menuconfig BT_CTLR_DF
	bool "LE Direction Finding [Experimental]"
	depends on BT_CTLR_DF_SUPPORT
	help
	  Enable support for Bluetooth 5.1 Direction Finding

if BT_CTLR_DF

# Basic controller functionalities required for implementation of
# Bluetooth v5.1 Direction Finding

config BT_CTLR_DF_CTE_TX
	bool "Enable transmission of Constant Tone Extension"
	depends on BT_CTLR_DF_CTE_TX_SUPPORT
	default y
	help
	  Enable support for transmission of Constant Tone Extension in
	  controller.

config BT_CTLR_DF_CTE_RX_SAMPLE_1US
	bool "Enable reception of CTE with 1us sampling slots"
	depends on BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT
	default y
	help
	  Enable reception of Constant Tone Extension. Process IQ sampling
	  during CTE reception with 1us sampling slots.
	  This sampling mode is optional for Direction Finding according to
	  Bluetooth v5.1.

config BT_CTLR_DF_ANT_SWITCH_1US
	bool "Enable support for 1us antenna switch slots"
	depends on BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT
	default y
	help
	  Enable support for 1us antenna switching slots. This antenna switching
	  mode is optional for Direction Finding according to Bluetooth v5.1.

# Features related with Direction Finding
# BT Core spec 5.1, Vol 6, Part B, sec. 4.6 Feature Support

config BT_CTLR_DF_ANT_SWITCH_TX
	bool "Enable antenna switching during CTE transmission (AoD) feature"
	depends on BT_CTLR_DF_CTE_TX && BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
	default y
	help
	  Enable support for antenna switching during CTE transmission.
	  Also known as Angle of Departure mode.

config BT_CTLR_DF_ANT_SWITCH_RX
	bool "Enable antenna switching during CTE reception (AoA) feature"
	depends on BT_CTLR_DF_CTE_RX && BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
	default y
	help
	  Enable support for antenna switching during CTE reception.
	  Also known as Angle of Arrival mode.

config BT_CTLR_DF_CTE_RX
	bool "Enable reception of Constant Tone Extension feature"
	depends on BT_CTLR_DF_CTE_RX_SUPPORT
	default y
	help
	  Enable support for reception of Constant Tone Extension in controller.

config BT_CTLR_DF_CONN_CTE_REQ
	bool "Enable Connection CTE Request feature"
	depends on BT_CTLR_DF_CTE_RX && BT_CONN
	help
	  Enable support for Bluetooth v5.1 Connection CTE Request feature
	  in controller.

config BT_CTLR_DF_CONN_CTE_RSP
	bool "Enable Connection CTE Response feature"
	depends on BT_CTLR_DF_CTE_TX && BT_CONN
	help
	  Enable support for Bluetooth v5.1 Connection CTE Response feature
	  in controller.

config BT_CTLR_DF_ADV_CTE_TX
	bool "Enable Connectionless CTE Transmitter feature"
	depends on BT_CTLR_DF_CTE_TX && BT_CTLR_ADV_PERIODIC
	select BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY
	default y
	help
	  Enable support for Bluetooth v5.1 Connectionless CTE Transmitter
	  feature in controller.

config BT_CTLR_DF_SCAN_CTE_RX
	bool "Enable Connectionless CTE Receiver"
	depends on BT_CTLR_DF_CTE_RX && BT_CTLR_SYNC_PERIODIC
	default y
	help
	  Enable support for Bluetooth v5.1 connectionless CTE reception
	  in controller.

config BT_CTLR_DF_SAMPLE_CTE_FOR_PDU_WITH_BAD_CRC
	bool "Enable sampling of CTE for PDUs with bad CRC"
	depends on BT_CTLR_DF_SCAN_CTE_RX
	default y
	help
	  Enable support for sampling of CTE for PDUs that have bad CRC.

# Customization setting to manage memory usage footprint

config BT_CTLR_DF_MAX_ANT_SW_PATTERN_LEN
	int "Maximum length of antenna switch pattern"
	range 3 39 if SOC_COMPATIBLE_NRF
	range 2 75 if !SOC_COMPATIBLE_NRF
	default 12
	help
	  Defines maximum length of antenna switch pattern that controller
	  is able to store. For nRF5x-based controllers, the hardware imposes
	  the value is within range 3 to 40, where last value is maximum.
	  For general use cases Bluetooth Core 5.1 spec. required the value
	  to be within range 2 up to 75.

config BT_CTLR_DF_INIT_ANT_SEL_GPIOS
	bool "Enable initialization of GPIOs responsible for antenna switching"
	depends on BT_CTLR_DF_ANT_SWITCH_TX || BT_CTLR_DF_ANT_SWITCH_RX
	default y
	help
	  Enable implicit initialization of GPIOs responsible for antenna
	  switching during Radio initialization.
	  If this feature is not enabled, the Radio initialization procedure will
	  not initialize GPIOs pins selected to drive antenna switching.
	  In such case application is responsible for appropriate GPIOs
	  initialization.

config BT_CTLR_DF_PER_ADV_CTE_NUM_MAX
	int "Maximum number of transmitted PDUs with Constant Tone Extension in connectionless mode"
	depends on BT_CTLR_DF_ADV_CTE_TX && BT_CTLR_ADV_PDU_LINK
	range 1 16
	default 1
	help
	  Maximum supported number of PDUs, that have Constant Tone Extension, transmitted in single
	  periodic advertising chain. The range is taken from BT Core spec 5.1, Vol 4 Part E
	  section 7.8.82 HCI_LE_Set_Connectionless_IQ_Sampling_Enable Max_Sampled_CTEs parameter.

config BT_CTLR_DF_PER_SCAN_CTE_NUM_MAX
	int "Maximum number of received PDUs with Constant Tone Extension in connectionless mode"
	depends on BT_CTLR_DF_SCAN_CTE_RX
	range 1 16
	default 16
	help
	  Maximum supported number of PDUs, that have Constant Tone Extension, received in single
	  periodic advertising chain. The range is taken from BT Core spec 5.1, Vol 4 Part E
	  section 7.8.82 HCI_LE_Set_Connectionless_IQ_Sampling_Enable Max_Sampled_CTEs parameter.

config BT_CTLR_DF_DEBUG_ENABLE
	bool "Bluetooth Direction Finding debug support enable"
	help
	  This option enables debug support for the Direction Finding
	  implementation in controller.

endif # BT_CTLR_DF