29#if (CFG_TUD_ENABLED && CFG_TUD_DFU_RUNTIME)
41#ifndef CFG_TUD_DFU_RUNTIME_LOG_LEVEL
42 #define CFG_TUD_DFU_RUNTIME_LOG_LEVEL CFG_TUD_LOG_LEVEL
45#define TU_LOG_DRV(...) TU_LOG(CFG_TUD_DFU_RUNTIME_LOG_LEVEL, __VA_ARGS__)
112 TU_LOG_DRV(
" DFU RT Request: DETACH\r\n");
114 tud_dfu_runtime_reboot_to_dfu_cb();
120 TU_LOG_DRV(
" DFU RT Request: GETSTATUS\r\n");
123 TU_VERIFY(
tu_memset_s(&resp,
sizeof(resp), 0x00,
sizeof(resp))==0);
uint16_t dfu_rtd_open(uint8_t rhport, tusb_desc_interface_t const *itf_desc, uint16_t max_len)
bool dfu_rtd_deinit(void)
bool dfu_rtd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t const *request)
void dfu_rtd_reset(uint8_t rhport)
AUDIO Channel Cluster Descriptor (4.1)
struct TU_ATTR_PACKED::@16::TU_ATTR_PACKED bmRequestType_bit
uint8_t bInterfaceSubClass
Subclass code (assigned by the USB-IF). These codes are qualified by the value of the bInterfaceCla...
uint8_t bRequest
Request type audio_cs_req_t.
uint8_t bInterfaceProtocol
Protocol code (assigned by the USB). These codes are qualified by the value of the bInterfaceClass ...
static TU_ATTR_ALWAYS_INLINE int tu_memset_s(void *dest, size_t destsz, int ch, size_t count)
static TU_ATTR_ALWAYS_INLINE uint8_t tu_desc_len(void const *desc)
@ TUSB_REQ_RCPT_INTERFACE
static TU_ATTR_ALWAYS_INLINE uint8_t tu_desc_type(void const *desc)
struct TU_ATTR_PACKED tusb_desc_interface_t
USB Interface Descriptor.
static TU_ATTR_ALWAYS_INLINE uint8_t const * tu_desc_next(void const *desc)
bool tud_control_xfer(uint8_t rhport, tusb_control_request_t const *request, void *buffer, uint16_t len)
bool tud_control_status(uint8_t rhport, tusb_control_request_t const *request)
CFG_TUH_MEM_ALIGN tusb_control_request_t request