# Copyright (c) 2016 Wind River Systems, Inc.
# SPDX-License-Identifier: Apache-2.0

menuconfig USB_DEVICE_BLUETOOTH
	bool "USB Bluetooth Device Class support"
	select BT
	select BT_HCI_RAW
	help
	  USB Bluetooth device class support

config USB_DEVICE_BLUETOOTH_VS_H4
	bool "Enable USB Bluetooth H4 vendor command"
	depends on USB_DEVICE_BLUETOOTH
	select BT_HCI_RAW_H4
	select BT_HCI_RAW_CMD_EXT
	help
	  Enables vendor command to switch to H:4 transport using the bulk
	  endpoint.

config USB_DEVICE_BT_H4
	bool "USB Bluetooth H4 Device Class support"
	select BT
	select BT_HCI_RAW
	select BT_HCI_RAW_H4
	select BT_HCI_RAW_H4_ENABLE
	help
	  USB Bluetooth H4 device class support
