blob: 9e82343ec5cd9697c698b807464797614d3f912b [file] [log] [blame]
# 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