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

# Kconfig - Bluetooth configuration options
#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menu "Bluetooth"

config BT
	bool "Bluetooth support"
	select NET_BUF
	help
	  This option enables Bluetooth support.

if BT

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

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_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

menu "Observer"
	visible if !BT_CENTRAL

config BT_OBSERVER
	bool "Observer Role support"
	help
	  Select this for LE Observer role support.

endmenu

config BT_CONN
	# Virtual/hidden option
	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"
	default n
	# Enable if building a Host-only build
	default y if !BT_CTLR
	# 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.
endif # BT_CONN

config BT_CTLR_TO_HOST_UART_DEV_NAME
	string "Device Name of UART Device to an external Bluetooth Host"
	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.

# TODO add DTS support, once SPI node definitions are available.

config BT_CTLR_TO_HOST_SPI_DEV_NAME
	string "Device Name of SPI Device to an external Bluetooth Host"
	default "SPI_0"
	depends on SPI && BT_HCI_RAW
	help
	  This option specifies the name of SPI device to be used to connect
	  to an external Bluetooth Host when Zephyr is acting as a Bluetooth
	  Controller.

config BT_CTLR_TO_HOST_SPI_IRQ_DEV_NAME
	string "Device Name of SPI IRQ to an external Bluetooth Host"
	default "GPIO_0"
	depends on SPI && BT_HCI_RAW
	help
	  This option specifies the name of SPI IRQ device to be used to
	  notify an external Bluetooth Host when Zephyr is acting as a
	  Bluetooth Controller.

config BT_CTLR_TO_HOST_SPI_IRQ_PIN
	int "SPI IRQ line number to an external Bluetooth Host"
	default 0
	depends on SPI && BT_HCI_RAW
	help
	  This option specifies the IRQ line number to be used to notify
	  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

endif # BT

endmenu