Open FFBoard
Open source force feedback firmware
dcd_dwc2.c File Reference

Go to the source code of this file.

Functions

static CFG_TUD_MEM_SECTION TU_ATTR_ALIGNED (4)
 
static TU_ATTR_ALWAYS_INLINE bool dma_device_enabled (const dwc2_regs_t *dwc2)
 
static void dma_setup_prepare (uint8_t rhport)
 
static TU_ATTR_ALWAYS_INLINE uint16_t calc_device_grxfsiz (uint16_t largest_ep_size, uint8_t ep_count)
 
static bool dfifo_alloc (uint8_t rhport, uint8_t ep_addr, uint16_t packet_size)
 
static void dfifo_device_init (uint8_t rhport)
 
static void edpt_activate (uint8_t rhport, tusb_desc_endpoint_t const *p_endpoint_desc)
 
static void edpt_disable (uint8_t rhport, uint8_t ep_addr, bool stall)
 
static void bus_reset (uint8_t rhport)
 
static void edpt_schedule_packets (uint8_t rhport, uint8_t const epnum, uint8_t const dir, uint16_t const num_packets, uint16_t total_bytes)
 
bool dcd_init (uint8_t rhport, const tusb_rhport_init_t *rh_init)
 
void dcd_int_enable (uint8_t rhport)
 
void dcd_int_disable (uint8_t rhport)
 
void dcd_set_address (uint8_t rhport, uint8_t dev_addr)
 
void dcd_remote_wakeup (uint8_t rhport)
 
void dcd_connect (uint8_t rhport)
 
void dcd_disconnect (uint8_t rhport)
 
void dcd_sof_enable (uint8_t rhport, bool en)
 
bool dcd_edpt_open (uint8_t rhport, tusb_desc_endpoint_t const *desc_edpt)
 
void dcd_edpt_close_all (uint8_t rhport)
 
bool dcd_edpt_iso_alloc (uint8_t rhport, uint8_t ep_addr, uint16_t largest_packet_size)
 
bool dcd_edpt_iso_activate (uint8_t rhport, tusb_desc_endpoint_t const *p_endpoint_desc)
 
bool dcd_edpt_xfer (uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t total_bytes)
 
bool dcd_edpt_xfer_fifo (uint8_t rhport, uint8_t ep_addr, tu_fifo_t *ff, uint16_t total_bytes)
 
void dcd_edpt_close (uint8_t rhport, uint8_t ep_addr)
 
void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr)
 
void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr)
 
static void handle_rxflvl_irq (uint8_t rhport)
 
static void handle_epout_irq (uint8_t rhport)
 
static void handle_epin_irq (uint8_t rhport)
 
void dcd_int_handler (uint8_t rhport)
 
void dcd_enter_test_mode (uint8_t rhport, tusb_feature_test_mode_t test_selector)
 

Variables

 xfer_ctl_t
 
static xfer_ctl_t xfer_status [DWC2_EP_MAX][2]
 
static uint16_t ep0_pending [2]
 
static uint16_t _dfifo_top
 
static uint8_t _allocated_ep_in_count
 
static bool _sof_en
 

Function Documentation

◆ bus_reset()

static void bus_reset ( uint8_t  rhport)
static

Definition at line 286 of file dcd_dwc2.c.

◆ calc_device_grxfsiz()

static TU_ATTR_ALWAYS_INLINE uint16_t calc_device_grxfsiz ( uint16_t  largest_ep_size,
uint8_t  ep_count 
)
inlinestatic

Definition at line 139 of file dcd_dwc2.c.

◆ dcd_connect()

void dcd_connect ( uint8_t  rhport)

Definition at line 498 of file dcd_dwc2.c.

◆ dcd_disconnect()

void dcd_disconnect ( uint8_t  rhport)

Definition at line 515 of file dcd_dwc2.c.

◆ dcd_edpt_clear_stall()

void dcd_edpt_clear_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 665 of file dcd_dwc2.c.

◆ dcd_edpt_close()

void dcd_edpt_close ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 653 of file dcd_dwc2.c.

◆ dcd_edpt_close_all()

void dcd_edpt_close_all ( uint8_t  rhport)

Definition at line 558 of file dcd_dwc2.c.

◆ dcd_edpt_iso_activate()

bool dcd_edpt_iso_activate ( uint8_t  rhport,
tusb_desc_endpoint_t const *  p_endpoint_desc 
)

Definition at line 588 of file dcd_dwc2.c.

◆ dcd_edpt_iso_alloc()

bool dcd_edpt_iso_alloc ( uint8_t  rhport,
uint8_t  ep_addr,
uint16_t  largest_packet_size 
)

Definition at line 583 of file dcd_dwc2.c.

◆ dcd_edpt_open()

bool dcd_edpt_open ( uint8_t  rhport,
tusb_desc_endpoint_t const *  desc_edpt 
)

Definition at line 551 of file dcd_dwc2.c.

◆ dcd_edpt_stall()

void dcd_edpt_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 657 of file dcd_dwc2.c.

◆ dcd_edpt_xfer()

bool dcd_edpt_xfer ( uint8_t  rhport,
uint8_t  ep_addr,
uint8_t *  buffer,
uint16_t  total_bytes 
)

Definition at line 595 of file dcd_dwc2.c.

◆ dcd_edpt_xfer_fifo()

bool dcd_edpt_xfer_fifo ( uint8_t  rhport,
uint8_t  ep_addr,
tu_fifo_t ff,
uint16_t  total_bytes 
)

Definition at line 627 of file dcd_dwc2.c.

◆ dcd_enter_test_mode()

void dcd_enter_test_mode ( uint8_t  rhport,
tusb_feature_test_mode_t  test_selector 
)

Definition at line 1008 of file dcd_dwc2.c.

◆ dcd_init()

bool dcd_init ( uint8_t  rhport,
const tusb_rhport_init_t rh_init 
)

Definition at line 409 of file dcd_dwc2.c.

◆ dcd_int_disable()

void dcd_int_disable ( uint8_t  rhport)

Definition at line 468 of file dcd_dwc2.c.

◆ dcd_int_enable()

void dcd_int_enable ( uint8_t  rhport)

Definition at line 464 of file dcd_dwc2.c.

◆ dcd_int_handler()

void dcd_int_handler ( uint8_t  rhport)

Definition at line 902 of file dcd_dwc2.c.

◆ dcd_remote_wakeup()

void dcd_remote_wakeup ( uint8_t  rhport)

Definition at line 480 of file dcd_dwc2.c.

◆ dcd_set_address()

void dcd_set_address ( uint8_t  rhport,
uint8_t  dev_addr 
)

Definition at line 472 of file dcd_dwc2.c.

◆ dcd_sof_enable()

void dcd_sof_enable ( uint8_t  rhport,
bool  en 
)

Definition at line 533 of file dcd_dwc2.c.

◆ dfifo_alloc()

static bool dfifo_alloc ( uint8_t  rhport,
uint8_t  ep_addr,
uint16_t  packet_size 
)
static

Definition at line 143 of file dcd_dwc2.c.

◆ dfifo_device_init()

static void dfifo_device_init ( uint8_t  rhport)
static

Definition at line 191 of file dcd_dwc2.c.

◆ dma_device_enabled()

static TU_ATTR_ALWAYS_INLINE bool dma_device_enabled ( const dwc2_regs_t dwc2)
inlinestatic

Definition at line 71 of file dcd_dwc2.c.

◆ dma_setup_prepare()

static void dma_setup_prepare ( uint8_t  rhport)
static

Definition at line 77 of file dcd_dwc2.c.

◆ edpt_activate()

static void edpt_activate ( uint8_t  rhport,
tusb_desc_endpoint_t const *  p_endpoint_desc 
)
static

Definition at line 212 of file dcd_dwc2.c.

◆ edpt_disable()

static void edpt_disable ( uint8_t  rhport,
uint8_t  ep_addr,
bool  stall 
)
static

Definition at line 235 of file dcd_dwc2.c.

◆ edpt_schedule_packets()

static void edpt_schedule_packets ( uint8_t  rhport,
uint8_t const  epnum,
uint8_t const  dir,
uint16_t const  num_packets,
uint16_t  total_bytes 
)
static

Definition at line 337 of file dcd_dwc2.c.

◆ handle_epin_irq()

static void handle_epin_irq ( uint8_t  rhport)
static

Definition at line 822 of file dcd_dwc2.c.

◆ handle_epout_irq()

static void handle_epout_irq ( uint8_t  rhport)
static

Definition at line 748 of file dcd_dwc2.c.

◆ handle_rxflvl_irq()

static void handle_rxflvl_irq ( uint8_t  rhport)
static

Definition at line 681 of file dcd_dwc2.c.

◆ TU_ATTR_ALIGNED()

static CFG_TUD_MEM_SECTION TU_ATTR_ALIGNED ( )
static

Definition at line 44 of file dcd_dwc2.c.

Variable Documentation

◆ _allocated_ep_in_count

uint8_t _allocated_ep_in_count
static

Definition at line 62 of file dcd_dwc2.c.

◆ _dfifo_top

uint16_t _dfifo_top
static

Definition at line 59 of file dcd_dwc2.c.

◆ _sof_en

bool _sof_en
static

Definition at line 65 of file dcd_dwc2.c.

◆ ep0_pending

uint16_t ep0_pending[2]
static

Definition at line 58 of file dcd_dwc2.c.

◆ xfer_ctl_t

Definition at line 52 of file dcd_dwc2.c.

◆ xfer_status

xfer_ctl_t xfer_status[DWC2_EP_MAX][2]
static

Definition at line 54 of file dcd_dwc2.c.