# Kconfig - Bluetooth LE driver configuration options

#
# Copyright (c) 2015-2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

#
# Bluetooth options
#

if BLUETOOTH

menu "Bluetooth Drivers"

if BLUETOOTH_HCI
source "drivers/bluetooth/hci/Kconfig"
endif

if BLUETOOTH_CUSTOM
# Insert here any custom (non-HCI) offload drives
endif

config BLUETOOTH_NRF51_PM
	bool "nRF51 Power Management [EXPERIMENTAL]"
	depends on BLUETOOTH_H4
	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"
	depends on BLUETOOTH_HCI
	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
