1afd2daa2SMarcel Holtmann /* SPDX-License-Identifier: BSD-3-Clause */ 2afd2daa2SMarcel Holtmann 3afd2daa2SMarcel Holtmann #ifndef _UAPI_LINUX_VIRTIO_BT_H 4afd2daa2SMarcel Holtmann #define _UAPI_LINUX_VIRTIO_BT_H 5afd2daa2SMarcel Holtmann 6afd2daa2SMarcel Holtmann #include <linux/virtio_types.h> 7afd2daa2SMarcel Holtmann 8afd2daa2SMarcel Holtmann /* Feature bits */ 9afd2daa2SMarcel Holtmann #define VIRTIO_BT_F_VND_HCI 0 /* Indicates vendor command support */ 10afd2daa2SMarcel Holtmann #define VIRTIO_BT_F_MSFT_EXT 1 /* Indicates MSFT vendor support */ 11afd2daa2SMarcel Holtmann #define VIRTIO_BT_F_AOSP_EXT 2 /* Indicates AOSP vendor support */ 12*47c50853SIgor Skalkin #define VIRTIO_BT_F_CONFIG_V2 3 /* Use second version configuration */ 13afd2daa2SMarcel Holtmann 14afd2daa2SMarcel Holtmann enum virtio_bt_config_type { 15afd2daa2SMarcel Holtmann VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0, 16afd2daa2SMarcel Holtmann VIRTIO_BT_CONFIG_TYPE_AMP = 1, 17afd2daa2SMarcel Holtmann }; 18afd2daa2SMarcel Holtmann 19afd2daa2SMarcel Holtmann enum virtio_bt_config_vendor { 20afd2daa2SMarcel Holtmann VIRTIO_BT_CONFIG_VENDOR_NONE = 0, 21afd2daa2SMarcel Holtmann VIRTIO_BT_CONFIG_VENDOR_ZEPHYR = 1, 22afd2daa2SMarcel Holtmann VIRTIO_BT_CONFIG_VENDOR_INTEL = 2, 23afd2daa2SMarcel Holtmann VIRTIO_BT_CONFIG_VENDOR_REALTEK = 3, 24afd2daa2SMarcel Holtmann }; 25afd2daa2SMarcel Holtmann 26afd2daa2SMarcel Holtmann struct virtio_bt_config { 27afd2daa2SMarcel Holtmann __u8 type; 28afd2daa2SMarcel Holtmann __u16 vendor; 29afd2daa2SMarcel Holtmann __u16 msft_opcode; 30afd2daa2SMarcel Holtmann } __attribute__((packed)); 31afd2daa2SMarcel Holtmann 32*47c50853SIgor Skalkin struct virtio_bt_config_v2 { 33*47c50853SIgor Skalkin __u8 type; 34*47c50853SIgor Skalkin __u8 alignment; 35*47c50853SIgor Skalkin __u16 vendor; 36*47c50853SIgor Skalkin __u16 msft_opcode; 37*47c50853SIgor Skalkin }; 38*47c50853SIgor Skalkin 39afd2daa2SMarcel Holtmann #endif /* _UAPI_LINUX_VIRTIO_BT_H */ 40