Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

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

Bootlin logo

Elixir Cross Referencer

# Kconfig - 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
	prompt "Bluetooth HCI driver"
	default BT_H4

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

endchoice

if !HAS_DTS
config BT_UART_ON_DEV_NAME
	string "Device Name of UART Device for Bluetooth"
	default "UART_0"
	depends on BT_UART
	help
	  This option specifies the name of UART device to be used
	  for Bluetooth.
endif

config BT_SPI_DEV_NAME
	string "Device Name of SPI Device for Bluetooth"
	default "SPI_0"
	depends on BT_SPI && !HAS_DTS_SPI_DEVICE
	help
	  This option specifies the name of SPI device to be used for Bluetooth.
	  On the controller side, this SPI device is used to encapsulate the
	  RAW HCI frames to send further up the stack. On the BLE stack side,
	  this device is used to reply back with HCI frames that are sent over
	  the air.

if BT_SPI

config BT_SPI_BLUENRG
	bool "Enable compatibility with BlueNRG-based devices"
	default n
	help
	  Enable support for devices compatible with the BlueNRG Bluetooth
	  Stack. Current driver supports: ST X-NUCLEO BLE series.

config BT_SPI_CHIP_SELECT_DEV_NAME
	string "Chip Select (CS) line driver name"
	depends on BT_SPI_BLUENRG
	help
	  This option specifies the name of GPIO driver controlling
	  the Chip Select (CS) line.

config BT_SPI_IRQ_DEV_NAME
	string "IRQ line driver name"
	help
	  This option specifies the name of GPIO driver controlling
	  the chip's IRQ line.

config BT_SPI_RESET_DEV_NAME
	string "Reset line driver name"
	help
	  This option specifies the name of GPIO driver controlling
	  the chip's Reset line.

config BT_SPI_CHIP_SELECT_PIN
	int "SPI Chip Select (CS) line number"
	depends on BT_SPI_BLUENRG
	help
	  This option specifies the Chip Select (CS) line number on the SPI
	  device

config BT_SPI_IRQ_PIN
	int "SPI IRQ line number"
	help
	  This option specifies the IRQ line number on the SPI device

config BT_SPI_RESET_PIN
	int "SPI Reset line number"
	help
	  This option specifies the Reset line number on the SPI device

config BT_SPI_MAX_CLK_FREQ
	int "Maximum clock frequency for the HCI SPI interface"
	default 5000000
	depends on !HAS_DTS_SPI_DEVICE
	help
	  This option specifies the maximum clock rate the HCI SPI
	  interface is capable of running at.

endif # BT_SPI