Boot Linux faster!

Check our new training course

Boot Linux faster!

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

Bootlin logo

Elixir Cross Referencer

# 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
	select BT_RECV_IS_RX_THREAD
	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
	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"
	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_STLIB
	help
	  TODO

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_NO_DRIVER
	bool "No default HCI driver"
	help
	  This is intended for unit tests where no internal driver
	  should be selected.

endchoice

# Workaround for not being able to have commas in macro arguments
DT_CHOSEN_Z_BT_UART := zephyr,bt-uart

config BT_UART_ON_DEV_NAME
	string "Device Name of UART Device for Bluetooth"
	default "$(dt_chosen_label,$(DT_CHOSEN_Z_BT_UART))" if HAS_DTS
	default "UART_0"
	depends on BT_UART
	help
	  This option specifies the name of UART device to be used
	  for Bluetooth.

if BT_SPI

config BT_BLUENRG_ACI
	bool "Enable 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 "Enable 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

if BT_RPMSG

config BT_RPMSG_NRF53
	bool "nRF53 configuration of RPMsg"
	default y if (BOARD_NRF5340_DK_NRF5340_CPUAPP || BOARD_NRF5340_DK_NRF5340_CPUAPPNS)
	select IPM
	select IPM_NRFX
	select IPM_MSG_CH_1_ENABLE
	select IPM_MSG_CH_0_ENABLE
	select IPM_MSG_CH_0_TX
	select IPM_MSG_CH_1_RX
	select OPENAMP
	help
	  Enable RPMsg configuration for nRF53. Two channels of the IPM driver
	  are used in the HCI driver: channel 0 for TX and channel 1 for RX.

if BT_RPMSG_NRF53

config BT_RPMSG_NRF53_RX_STACK_SIZE
	int "RPMsg stack size for RX thread"
	default 1024

config BT_RPMSG_NRF53_RX_PRIO
	int "RPMsg RX thread priority"
	default 8

endif # BT_RPMSG_NRF53

endif # BT_RPMSG