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 LE driver configuration options

#
# Copyright (c) 2015 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.
#

#
# Bluetooth options
#

if BLUETOOTH

menu "Bluetooth Drivers"

if BLUETOOTH_STACK_HCI

comment "Bluetooth HCI Driver Options"

config BLUETOOTH_UART
	bool
	default n

choice
	prompt "Bluetooth HCI driver"
	default BLUETOOTH_H4

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

config BLUETOOTH_H5
	bool "H:5 UART [EXPERIMENTAL]"
	select SERIAL
	select UART_INTERRUPT_DRIVEN
	select BLUETOOTH_UART
	select BLUETOOTH_HOST_BUFFERS
	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

config  BLUETOOTH_HOST_BUFFERS
	bool "Host managed incoming data buffers"
	default n
	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_DRIVER
	bool "Bluetooth driver debug"
	depends on BLUETOOTH_DEBUG && BLUETOOTH_UART
	default n
	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

endif # BLUETOOTH_STACK_HCI

source "drivers/bluetooth/nble/Kconfig"

config BLUETOOTH_NRF51_PM
	bool "nRF51 Power Management [EXPERIMENTAL]"
	depends on BLUETOOTH_H4 || NBLE
	help
	  Power Management support for Nordic BLE nRF51 chip. Allows to enable,
	  disable the chip and handle wakeups.

config BLUETOOTH_WAIT_NOP
	bool "Wait for \"NOP\" Command Complete event during init"
	help
	  Some controllers emit a Command Complete event for the NOP
	  opcode to indicate that they're ready to receive commands.
	  This option should be selected if the controller used
	  exhibits such behavior.

endmenu

endif # BLUETOOTH