27#ifndef TUSB_DWC2_COMMON_H
28#define TUSB_DWC2_COMMON_H
40#if defined(TUP_USBIP_DWC2_STM32)
42#elif defined(TUP_USBIP_DWC2_ESP32)
44#elif TU_CHECK_MCU(OPT_MCU_GD32VF103)
46#elif TU_CHECK_MCU(OPT_MCU_BCM2711, OPT_MCU_BCM2835, OPT_MCU_BCM2837)
48#elif TU_CHECK_MCU(OPT_MCU_EFM32GG)
50#elif TU_CHECK_MCU(OPT_MCU_XMC4000)
53 #error "Unsupported MCUs"
84 dwc2->
grstctl = GRSTCTL_TXFFLSH | (fnum << GRSTCTL_TXFNUM_Pos);
85 while (dwc2->
grstctl & GRSTCTL_TXFFLSH_Msk) {}
90 dwc2->
grstctl = GRSTCTL_RXFFLSH;
91 while (dwc2->
grstctl & GRSTCTL_RXFFLSH_Msk) {}
static TU_ATTR_ALWAYS_INLINE dwc2_regs_t * DWC2_REG(uint8_t rhport)
static TU_ATTR_ALWAYS_INLINE void dfifo_flush_tx(dwc2_regs_t *dwc2, uint8_t fnum)
void dfifo_read_packet(dwc2_regs_t *dwc2, uint8_t *dst, uint16_t len)
void dfifo_write_packet(dwc2_regs_t *dwc2, uint8_t fifo_num, uint8_t const *src, uint16_t len)
bool dwc2_core_is_highspeed(dwc2_regs_t *dwc2, tusb_role_t role)
static TU_ATTR_ALWAYS_INLINE void dfifo_flush_rx(dwc2_regs_t *dwc2)
bool dwc2_core_init(uint8_t rhport, bool is_highspeed)
void dwc2_core_handle_common_irq(uint8_t rhport, bool in_isr)
static const dwc2_controller_t _dwc2_controller[]
volatile uint32_t grstctl