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
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

comment "Bluetooth HCI Driver Options"

# Controller support is an HCI driver in itself, so these HCI driver
# options are only applicable if controller support hasn't been enabled.
if !BLUETOOTH_CONTROLLER

config BLUETOOTH_UART
	bool

choice
	prompt "Bluetooth HCI driver"
	default BLUETOOTH_H4

config BLUETOOTH_H4
	bool "H:4 UART"
	select UART_INTERRUPT_DRIVEN
	select BLUETOOTH_UART
	select BLUETOOTH_HOST_BUFFERS
	depends on SERIAL
	help
	  Bluetooth H:4 UART driver. Requires hardware flow control
	  lines to be available.

config BLUETOOTH_H5
	bool "H:5 UART [EXPERIMENTAL]"
	select UART_INTERRUPT_DRIVEN
	select BLUETOOTH_UART
	select BLUETOOTH_HOST_BUFFERS
	depends on SERIAL
	help
	  Bluetooth three-wire (H:5) UART driver. Implementation of HCI
	  Three-Wire UART Transport Layer.

config BLUETOOTH_NO_DRIVER
	bool "No default HCI driver"
	help
	  This is intended for unit tests where no internal driver
	  should be selected.

endchoice

endif # !BLUETOOTH_CONTROLLER

config BLUETOOTH_HOST_BUFFERS
	bool "Host managed incoming data buffers"
	help
	  Enable this to have the host stack manage incoming ACL data
	  and HCI event buffers. This makes sense for all HCI drivers
	  that talk to a controller running on a different CPU.

	  If the controller resides in the same address space it may
	  make sense to have the lower layers manage these buffers, in
	  which case this option can be left disabled.

config BLUETOOTH_DEBUG_HCI_DRIVER
	bool "Bluetooth HCI driver debug"
	depends on BLUETOOTH_DEBUG
	help
	  This option enables debug support for the chosen
	  Bluetooth HCI driver

config BLUETOOTH_UART_ON_DEV_NAME
	string "Device Name of UART Device for Bluetooth"
	default "UART_0"
	depends on BLUETOOTH_UART
	help
	  This option specifies the name of UART device to be used
	  for Bluetooth.

# Headroom that the driver needs for sending and receiving buffers.
# Add a new 'default' entry for each new driver.

# Needed headroom for outgoing buffers (to controller)
config BLUETOOTH_HCI_SEND_RESERVE
	int
	# Even if no driver is selected the following default is still
	# needed e.g. for unit tests.
	default 0
	default 0 if BLUETOOTH_H4
	default 1 if BLUETOOTH_H5

# Needed headroom for incoming buffers (from controller)
config BLUETOOTH_HCI_RECV_RESERVE
	int
	# Even if no driver is selected the following default is still
	# needed e.g. for unit tests.
	default 0
	default 0 if BLUETOOTH_H4
	default 0 if BLUETOOTH_H5