# Bluetooth drivers configuration options # Copyright (c) 2016 Intel Corporation # SPDX-License-Identifier: Apache-2.0 comment "Bluetooth HCI Driver Options" config BT_UART bool select SERIAL select UART_INTERRUPT_DRIVEN config BT_H4 bool "H:4 UART" select BT_UART default y depends on DT_HAS_ZEPHYR_BT_HCI_UART_ENABLED help Bluetooth H:4 UART driver. Requires hardware flow control lines to be available. config BT_H5 bool "H:5 UART [EXPERIMENTAL]" select BT_UART select EXPERIMENTAL default y depends on DT_HAS_ZEPHYR_BT_HCI_3WIRE_UART_ENABLED help Bluetooth three-wire (H:5) UART driver. Implementation of HCI Three-Wire UART Transport Layer. # Removed: Here only to give the user a warning about its removal # Remove after 3.7.0 is released config BT_RPMSG bool "[REMOVED] HCI using RPMsg" help Use BT_HCI_IPC instead config BT_HCI_IPC bool "HCI using the IPC subsystem" default y depends on DT_HAS_ZEPHYR_BT_HCI_IPC_ENABLED select BT_HAS_HCI_VS select IPC_SERVICE select MBOX help Bluetooth HCI driver for communication with another CPU using the IPC subsystem. config BT_SPI bool "SPI HCI" select 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" default y depends on DT_HAS_ST_STM32WB_RF_ENABLED select USE_STM32_HAL_CORTEX select HAS_STM32LIB help TODO config BT_STM32WBA bool "STM32WBA HCI driver" default y depends on DT_HAS_ST_HCI_STM32WBA_ENABLED select HAS_STM32LIB help ST STM32WBA HCI Bluetooth interface 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 SOC_GECKO_USE_RAIL 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 default y depends on DT_HAS_ZEPHYR_BT_HCI_USERCHAN_ENABLED 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" default y depends on DT_HAS_ESPRESSIF_ESP32_BT_HCI_ENABLED help Espressif HCI bluetooth interface config BT_PSOC6_BLESS bool "PSOC6 BLESS driver" default y depends on DT_HAS_INFINEON_CAT1_BLESS_HCI_ENABLED select BT_HCI_SETUP help PSOC6 BLESS driver with BLE Controller which operates in Single CPU mode. config BT_DA1469X bool "DA1469x HCI driver" default y depends on DT_HAS_RENESAS_BT_HCI_DA1469X_ENABLED help Bluetooth HCI driver for communication with CMAC core on DA1469x MCU. config BT_NXP bool "NXP HCI driver" select BT_HCI_SETUP help NXP HCI bluetooth interface config BT_AMBIQ_HCI bool "AMBIQ BT HCI driver" default y depends on DT_HAS_AMBIQ_BT_HCI_SPI_ENABLED select SPI select GPIO if SOC_SERIES_APOLLO4X select CLOCK_CONTROL if SOC_SERIES_APOLLO4X select BT_HCI_SETUP help Supports Ambiq Bluetooth SoC using SPI as the communication protocol. HCI packets are sent and received as single Byte transfers. 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" select BT_HCI_SET_PUBLIC_ADDR help Enable support for devices compatible with the BlueNRG Bluetooth Stack. Current driver supports: ST BLUENRG-MS. endif # BT_SPI config BT_HCI_INIT_PRIORITY int "BT HCI init priority" default 75 if BT_AMBIQ_HCI default KERNEL_INIT_PRIORITY_DEVICE help The priority of BT HCI driver initialization. config BT_STM32_IPM_RX_STACK_SIZE int "STM32 IPM stack size for RX thread" depends on BT_STM32_IPM default 512 menuconfig BT_AIROC bool "AIROC BT connectivity" default y select BT_HCI_SETUP select UART_USE_RUNTIME_CONFIGURE 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" source "drivers/bluetooth/hci/Kconfig.nxp" 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_HCI_IPC || 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_SET_PUBLIC_ADDR bool select BT_HCI_SETUP help Pass the controller's public address to the HCI driver in setup() This option should be enabled by drivers for controllers that support setting the public identity through vendor-specific commands. They can then implement the setup() HCI driver API function and get the address to set from the public_addr field. From the application side, the public address is set using the first call to bt_id_create(), before calling bt_enable(). 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 640 if (BT_SPI || BT_AMBIQ_HCI) 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.