#ifndef PLATFORMS_COMMON_USB_H
#define PLATFORMS_COMMON_USB_H
#include <stdint.h>
#include <libopencm3/usb/usbd.h>
extern usbd_device *usbdev;
extern uint16_t usb_config;
#if defined(USB_HS)
#define CDCACM_PACKET_SIZE 512U
#define TRACE_ENDPOINT_SIZE 512U
#else
#define CDCACM_PACKET_SIZE 64U
#define TRACE_ENDPOINT_SIZE 64U
#endif
#if !defined(USB_MAX_INTERVAL)
#define USB_MAX_INTERVAL 255U
#endif
#define CDCACM_GDB_ENDPOINT 1U
#define CDCACM_UART_ENDPOINT 3U
#define TRACE_ENDPOINT 5U
#define GDB_IF_NO 0U
#define UART_IF_NO 2U
#define DFU_IF_NO 4U
#ifdef PLATFORM_HAS_TRACESWO
#define TRACE_IF_NO 5U
#define TOTAL_INTERFACES 6U
#else
#define TOTAL_INTERFACES 5U
#endif
void blackmagic_usb_init(void);
uint16_t usb_get_config(void);
bool usb_config_is_updated(void);
void usb_config_clear_updated(void);
#endif