38#include "usb_private.h"
39#include "usb_dwc_common.h"
44#define RX_FIFO_SIZE 256
49#define ENDPOINT_COUNT 4
136 .set_address_before_status = 1,
Dispatcher for the base address definitions, depending on the particular Gecko family.
void cmu_wait_for_usbclk_selected(enum cmu_osc osc)
Wait while USBCLK is not selected.
void cmu_periph_clock_enable(enum cmu_periph_clken periph)
Enable Peripheral Clock in running mode.
void cmu_set_usbclk_source(enum cmu_osc osc)
Set USBCLK clock source.
#define CMU_LFCLKSEL_LFC_LFRCO
void cmu_osc_on(enum cmu_osc osc)
Turn on Oscillator.
void cmu_wait_for_osc_ready(enum cmu_osc osc)
Wait while oscillator is not ready.
#define CMU_USHFRCOCONF_BAND_48MHZ
@ USHFRCO
Internal, 48MHz.
struct _usbd_device usbd_device
static struct _usbd_device _usbd_dev
static usbd_device * efm32hg_usbd_init(void)
Initialize the USB device controller hardware of the EFM32HG.
const struct _usbd_driver efm32hg_usb_driver
#define OTG_GUSBCFG_FDMOD
#define OTG_DIEPMSK_XFRCM
#define OTG_GINTMSK_IEPINT
#define OTG_GRSTCTL_AHBIDL
#define OTG_GINTMSK_RXFLVLM
#define OTG_GRSTCTL_CSRST
#define OTG_GINTMSK_ENUMDNEM
#define OTG_GUSBCFG_TRDT_MASK
#define OTG_GINTMSK_USBSUSPM
uint8_t dwc_ep_stall_get(usbd_device *usbd_dev, uint8_t addr)
void dwc_disconnect(usbd_device *usbd_dev, bool disconnected)
void dwc_endpoints_reset(usbd_device *usbd_dev)
uint16_t dwc_ep_write_packet(usbd_device *usbd_dev, uint8_t addr, const void *buf, uint16_t len)
uint16_t dwc_ep_read_packet(usbd_device *usbd_dev, uint8_t addr, void *buf, uint16_t len)
void dwc_set_address(usbd_device *usbd_dev, uint8_t addr)
void dwc_ep_nak_set(usbd_device *usbd_dev, uint8_t addr, uint8_t nak)
void dwc_ep_stall_set(usbd_device *usbd_dev, uint8_t addr, uint8_t stall)
void dwc_ep_setup(usbd_device *usbd_dev, uint8_t addr, uint8_t type, uint16_t max_size, void(*callback)(usbd_device *usbd_dev, uint8_t ep))
void dwc_poll(usbd_device *usbd_dev)