Linux Audio

Check our new training course

Loading...
# Bluetooth drivers configuration options

# Copyright (c) 2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

comment "Bluetooth HCI Driver Options"

config BT_UART
	bool

choice BT_HCI_BUS_TYPE
	prompt "Bluetooth HCI driver"

config BT_H4
	bool "H:4 UART"
	select UART_INTERRUPT_DRIVEN
	select BT_UART
	depends on SERIAL
	help
	  Bluetooth H:4 UART driver. Requires hardware flow control
	  lines to be available.

config BT_H5
	bool "H:5 UART [EXPERIMENTAL]"
	select UART_INTERRUPT_DRIVEN
	select BT_UART
	select EXPERIMENTAL
	depends on SERIAL
	help
	  Bluetooth three-wire (H:5) UART driver. Implementation of HCI
	  Three-Wire UART Transport Layer.

config BT_RPMSG
	bool "HCI using RPMsg"
	select BT_HAS_HCI_VS
	select IPC_SERVICE
	select MBOX
	help
	  Bluetooth HCI driver for communication with another CPU
	  using RPMsg framework.

config BT_SPI
	bool "SPI HCI"
	depends on SPI
	help
	  Supports Bluetooth ICs using SPI as the communication protocol.
	  HCI packets are sent and received as single Byte transfers,
	  prepended after a known header.  Headers may vary per device, so
	  additional platform specific knowledge may need to be added as
	  devices are.

config BT_STM32_IPM
	bool "IPM HCI"
	select USE_STM32_HAL_CORTEX
	select HAS_STM32LIB
	help
	  TODO

config BT_SILABS_HCI
	bool "Silicon Labs Bluetooth interface"
	depends on SOC_SERIES_EFR32BG22 || SOC_SERIES_EFR32MG24 || SOC_SERIES_EFR32BG27
	depends on !PM || SOC_GECKO_PM_BACKEND_PMGR
	select ENTROPY_GENERATOR
	select MBEDTLS
	select MBEDTLS_PSA_CRYPTO_C
	select MBEDTLS_ENTROPY_ENABLED
	select MBEDTLS_ZEPHYR_ENTROPY
	help
	  Use Silicon Labs binary Bluetooth library to connect to the
	  controller.

config BT_USERCHAN
	bool "HCI User Channel based driver"
	depends on BOARD_NATIVE_POSIX
	help
	  This driver provides access to the local Linux host's Bluetooth
	  adapter using a User Channel HCI socket to the Linux kernel. It
	  is only intended to be used with the native POSIX build of Zephyr.
	  The Bluetooth adapter must be powered off in order for Zephyr to
	  be able to use it.

config BT_ESP32
	bool "ESP32 HCI driver"
	help
	  Espressif HCI bluetooth interface

config BT_B91
	bool "Telink B91 HCI driver"
	help
	  Telink B91 HCI bluetooth interface

config BT_PSOC6_BLESS
	bool "PSOC6 BLESS driver"
	select BT_HCI_SETUP
	help
	  PSOC6 BLESS driver with BLE Controller which operates in
	  Single CPU mode.

config BT_NO_DRIVER
	bool "No default HCI driver"
	help
	  This is intended for unit tests where no internal driver
	  should be selected.

endchoice

if BT_SPI

config BT_SPI_INIT_PRIORITY
	int "BT SPI init priority"
	default 75

config BT_BLUENRG_ACI
	bool "ACI message with with BlueNRG-based devices"
	help
	  Enable support for devices compatible with the BlueNRG Bluetooth
	  Stack. Current driver supports: ST BLUENRG-MS.

config BT_SPI_BLUENRG
	bool "Compatibility with BlueNRG-based devices"
	help
	  Enable support for devices compatible with the BlueNRG Bluetooth
	  Stack. Current driver supports: ST BLUENRG-MS.

endif # BT_SPI

config BT_STM32_IPM_RX_STACK_SIZE
	int "STM32 IPM stack size for RX thread"
	depends on BT_STM32_IPM
	default 512

menuconfig BT_CYW43XXX
	bool "CYW43XXX BT connectivity"
	default y
	select BT_HCI_SETUP
	depends on GPIO
	depends on DT_HAS_INFINEON_CYW43XXX_BT_HCI_ENABLED
	depends on BT_H4
	help
	  Infineon's AIROCâ„¢ Wi-Fi & combos portfolio integrates
	  IEEE 802.11a/b/g/n/ac/ax Wi-Fi and Bluetooth® 5.2 in a single-chip
	  solution to enable small-form-factor IoT designs.
source "drivers/bluetooth/hci/Kconfig.infineon"

config BT_DRIVER_QUIRK_NO_AUTO_DLE
	bool "Host auto-initiated Data Length Update quirk"
	depends on BT_AUTO_DATA_LEN_UPDATE
	default y if BT_RPMSG || BT_ESP32
	help
	  Enable the quirk wherein BT Host stack will auto-initiate Data Length
	  Update procedure for new connections for controllers that do not
	  auto-initiate the procedure if the default data length parameters are
	  not equal to the initial parameters.

	  This has to be enabled when the BLE controller connected is Zephyr
	  open source controller.

config BT_HCI_SETUP
	bool
	help
	  Enable the HCI vendor-specific Setup function.

	  This option has to be enabled when the BT Controller requires execution
	  of the vendor-specific commands sequence to initialize the BT Controller
	  before the BT Host executes a Reset sequence.

	  The user should generally avoid changing it via menuconfig or in
	  configuration files. This option are enabled by the vendor-specific
	  HCI extension, where the Setup function is implemented.

config BT_DRV_TX_STACK_SIZE
	int
	default 256
	help
	  Stack size for the HCI driver's TX thread.

config BT_DRV_RX_STACK_SIZE
	int
	default 512 if BT_SPI
	default BT_RX_STACK_SIZE if (BT_H4 || BT_HCI_RAW_H4)
	default BT_STM32_IPM_RX_STACK_SIZE if BT_STM32_IPM
	default 256
	help
	  Stack size for the HCI driver's RX thread.

config BT_SILABS_HCI_BUFFER_MEMORY
	int "Silicon Labs Bluetooth Library memory buffer size"
	depends on BT_SILABS_HCI
	default 6144
	help
	  Select the size of allocated memory buffer for the Silicon Labs
	  Bluetooth Library.