1*278f064eSEduardo Habkost /* SPDX-License-Identifier: BSD-3-Clause */
2*278f064eSEduardo Habkost 
3*278f064eSEduardo Habkost #ifndef _LINUX_VIRTIO_BT_H
4*278f064eSEduardo Habkost #define _LINUX_VIRTIO_BT_H
5*278f064eSEduardo Habkost 
6*278f064eSEduardo Habkost #include "standard-headers/linux/virtio_types.h"
7*278f064eSEduardo Habkost 
8*278f064eSEduardo Habkost /* Feature bits */
9*278f064eSEduardo Habkost #define VIRTIO_BT_F_VND_HCI	0	/* Indicates vendor command support */
10*278f064eSEduardo Habkost #define VIRTIO_BT_F_MSFT_EXT	1	/* Indicates MSFT vendor support */
11*278f064eSEduardo Habkost #define VIRTIO_BT_F_AOSP_EXT	2	/* Indicates AOSP vendor support */
12*278f064eSEduardo Habkost 
13*278f064eSEduardo Habkost enum virtio_bt_config_type {
14*278f064eSEduardo Habkost 	VIRTIO_BT_CONFIG_TYPE_PRIMARY	= 0,
15*278f064eSEduardo Habkost 	VIRTIO_BT_CONFIG_TYPE_AMP	= 1,
16*278f064eSEduardo Habkost };
17*278f064eSEduardo Habkost 
18*278f064eSEduardo Habkost enum virtio_bt_config_vendor {
19*278f064eSEduardo Habkost 	VIRTIO_BT_CONFIG_VENDOR_NONE	= 0,
20*278f064eSEduardo Habkost 	VIRTIO_BT_CONFIG_VENDOR_ZEPHYR	= 1,
21*278f064eSEduardo Habkost 	VIRTIO_BT_CONFIG_VENDOR_INTEL	= 2,
22*278f064eSEduardo Habkost 	VIRTIO_BT_CONFIG_VENDOR_REALTEK	= 3,
23*278f064eSEduardo Habkost };
24*278f064eSEduardo Habkost 
25*278f064eSEduardo Habkost struct virtio_bt_config {
26*278f064eSEduardo Habkost 	uint8_t  type;
27*278f064eSEduardo Habkost 	uint16_t vendor;
28*278f064eSEduardo Habkost 	uint16_t msft_opcode;
29*278f064eSEduardo Habkost } QEMU_PACKED;
30*278f064eSEduardo Habkost 
31*278f064eSEduardo Habkost #endif /* _LINUX_VIRTIO_BT_H */
32