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

Go to the source code of this file.

Classes

struct  xfer_ctl_t
 

Enumerations

enum  ep0_stage_t {
  EP0_STAGE_NONE , EP0_STAGE_SETUP_IN_DATA , EP0_STAGE_SETUP_OUT_NO_DATA , EP0_STAGE_SETUP_OUT_DATA ,
  EP0_STAGE_DATA_IN , EP0_STAGE_DATA_IN_LAST_PACKET_FILLED , EP0_STAGE_DATA_IN_SENT , EP0_STAGE_DATA_OUT ,
  EP0_STAGE_DATA_OUT_COMPLETE , EP0_STAGE_STATUS_IN , EP0_STAGE_ADDRESS_CHANGE
}
 

Functions

static void ep0_set_stage (ep0_stage_t stage)
 
static ep0_stage_t ep0_get_stage (void)
 
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)
 
static TU_ATTR_ALWAYS_INLINE bool is_in_isr (void)
 
static void epn_rx_configure (uint8_t endpoint, uint16_t endpointSize, uint16_t fifoAddress, uint8_t fifoSize, uint32_t transferType)
 
static void epn_tx_configure (uint8_t endpoint, uint16_t endpointSize, uint16_t fifoAddress, uint8_t fifoSize, uint32_t transferType)
 
static void tx_fifo_write (uint8_t endpoint, uint8_t const *buffer, size_t count)
 
static int rx_fifo_read (uint8_t epnum, uint8_t *buffer)
 
static void xfer_complete (xfer_ctl_t *xfer, uint8_t result, bool in_isr)
 
static void ep0_fill_tx (xfer_ctl_t *xfer_in)
 
static void epn_fill_tx (xfer_ctl_t *xfer_in, uint8_t epnum)
 
static bool ep0_xfer (xfer_ctl_t *xfer, int dir)
 
bool dcd_edpt_open (uint8_t rhport, tusb_desc_endpoint_t const *desc_edpt)
 
void dcd_edpt_close_all (uint8_t rhport)
 
void dcd_edpt_close (uint8_t rhport, uint8_t ep_addr)
 
bool dcd_edpt_xfer (uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t total_bytes)
 
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 ep0_handle_rx (void)
 
static void epn_handle_rx_int (uint8_t epnum)
 
static void epn_handle_tx_int (uint8_t epnum)
 
static void ep0_handle_int (void)
 
void dcd_int_handler (uint8_t rhport)
 

Variables

struct {
   uint16_t   fifo_addr_top
 
   ep0_stage_t   ep0_stage
 
   uint8_t   dev_addr
 
   xfer_ctl_t   xfer_status [EP_MAX][2]
 
_dcd
 
static tusb_desc_endpoint_t const ep0OUT_desc
 
static tusb_desc_endpoint_t const ep0IN_desc
 

Enumeration Type Documentation

◆ ep0_stage_t

Enumerator
EP0_STAGE_NONE 
EP0_STAGE_SETUP_IN_DATA 
EP0_STAGE_SETUP_OUT_NO_DATA 
EP0_STAGE_SETUP_OUT_DATA 
EP0_STAGE_DATA_IN 
EP0_STAGE_DATA_IN_LAST_PACKET_FILLED 
EP0_STAGE_DATA_IN_SENT 
EP0_STAGE_DATA_OUT 
EP0_STAGE_DATA_OUT_COMPLETE 
EP0_STAGE_STATUS_IN 
EP0_STAGE_ADDRESS_CHANGE 

Definition at line 45 of file dcd_pic32mz.c.

Function Documentation

◆ dcd_connect()

void dcd_connect ( uint8_t  rhport)

Definition at line 175 of file dcd_pic32mz.c.

◆ dcd_disconnect()

void dcd_disconnect ( uint8_t  rhport)

Definition at line 183 of file dcd_pic32mz.c.

◆ dcd_edpt_clear_stall()

void dcd_edpt_clear_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 504 of file dcd_pic32mz.c.

◆ dcd_edpt_close()

void dcd_edpt_close ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 447 of file dcd_pic32mz.c.

◆ dcd_edpt_close_all()

void dcd_edpt_close_all ( uint8_t  rhport)

Definition at line 435 of file dcd_pic32mz.c.

◆ dcd_edpt_open()

bool dcd_edpt_open ( uint8_t  rhport,
tusb_desc_endpoint_t const *  desc_edpt 
)

Definition at line 406 of file dcd_pic32mz.c.

◆ dcd_edpt_stall()

void dcd_edpt_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 481 of file dcd_pic32mz.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 453 of file dcd_pic32mz.c.

◆ dcd_init()

bool dcd_init ( uint8_t  rhport,
const tusb_rhport_init_t rh_init 
)

Definition at line 123 of file dcd_pic32mz.c.

◆ dcd_int_disable()

void dcd_int_disable ( uint8_t  rhport)

Definition at line 142 of file dcd_pic32mz.c.

◆ dcd_int_enable()

void dcd_int_enable ( uint8_t  rhport)

Definition at line 135 of file dcd_pic32mz.c.

◆ dcd_int_handler()

void dcd_int_handler ( uint8_t  rhport)

Definition at line 700 of file dcd_pic32mz.c.

◆ dcd_remote_wakeup()

void dcd_remote_wakeup ( uint8_t  rhport)

Definition at line 160 of file dcd_pic32mz.c.

◆ dcd_set_address()

void dcd_set_address ( uint8_t  rhport,
uint8_t  dev_addr 
)

Definition at line 149 of file dcd_pic32mz.c.

◆ dcd_sof_enable()

void dcd_sof_enable ( uint8_t  rhport,
bool  en 
)

Definition at line 190 of file dcd_pic32mz.c.

◆ ep0_fill_tx()

static void ep0_fill_tx ( xfer_ctl_t xfer_in)
static

Definition at line 301 of file dcd_pic32mz.c.

◆ ep0_get_stage()

static ep0_stage_t ep0_get_stage ( void  )
static

Definition at line 115 of file dcd_pic32mz.c.

◆ ep0_handle_int()

static void ep0_handle_int ( void  )
static

Definition at line 607 of file dcd_pic32mz.c.

◆ ep0_handle_rx()

static void ep0_handle_rx ( void  )
static

Definition at line 533 of file dcd_pic32mz.c.

◆ ep0_set_stage()

static void ep0_set_stage ( ep0_stage_t  stage)
static

Definition at line 110 of file dcd_pic32mz.c.

◆ ep0_xfer()

static bool ep0_xfer ( xfer_ctl_t xfer,
int  dir 
)
static

Definition at line 362 of file dcd_pic32mz.c.

◆ epn_fill_tx()

static void epn_fill_tx ( xfer_ctl_t xfer_in,
uint8_t  epnum 
)
static

Definition at line 351 of file dcd_pic32mz.c.

◆ epn_handle_rx_int()

static void epn_handle_rx_int ( uint8_t  epnum)
static

Definition at line 554 of file dcd_pic32mz.c.

◆ epn_handle_tx_int()

static void epn_handle_tx_int ( uint8_t  epnum)
static

Definition at line 582 of file dcd_pic32mz.c.

◆ epn_rx_configure()

static void epn_rx_configure ( uint8_t  endpoint,
uint16_t  endpointSize,
uint16_t  fifoAddress,
uint8_t  fifoSize,
uint32_t  transferType 
)
static

Definition at line 203 of file dcd_pic32mz.c.

◆ epn_tx_configure()

static void epn_tx_configure ( uint8_t  endpoint,
uint16_t  endpointSize,
uint16_t  fifoAddress,
uint8_t  fifoSize,
uint32_t  transferType 
)
static

Definition at line 235 of file dcd_pic32mz.c.

◆ is_in_isr()

static TU_ATTR_ALWAYS_INLINE bool is_in_isr ( void  )
inlinestatic

Definition at line 198 of file dcd_pic32mz.c.

◆ rx_fifo_read()

static int rx_fifo_read ( uint8_t  epnum,
uint8_t *  buffer 
)
static

Definition at line 278 of file dcd_pic32mz.c.

◆ tx_fifo_write()

static void tx_fifo_write ( uint8_t  endpoint,
uint8_t const *  buffer,
size_t  count 
)
static

Definition at line 265 of file dcd_pic32mz.c.

◆ xfer_complete()

static void xfer_complete ( xfer_ctl_t xfer,
uint8_t  result,
bool  in_isr 
)
static

Definition at line 296 of file dcd_pic32mz.c.

Variable Documentation

◆ 

struct { ... } _dcd

◆ dev_addr

uint8_t dev_addr

Definition at line 81 of file dcd_pic32mz.c.

◆ ep0_stage

ep0_stage_t ep0_stage

Definition at line 79 of file dcd_pic32mz.c.

◆ ep0IN_desc

tusb_desc_endpoint_t const ep0IN_desc
static
Initial value:
=
{
.bLength = sizeof(tusb_desc_endpoint_t),
.bDescriptorType = TUSB_DESC_ENDPOINT,
.bEndpointAddress = 0x80,
.bmAttributes = { .xfer = TUSB_XFER_CONTROL },
.wMaxPacketSize = CFG_TUD_ENDPOINT0_SIZE,
.bInterval = 0
}
@ TUSB_XFER_CONTROL
Definition: tusb_types.h:59
struct TU_ATTR_PACKED tusb_desc_endpoint_t
USB Endpoint Descriptor.
@ TUSB_DESC_ENDPOINT
Definition: tusb_types.h:97

Definition at line 97 of file dcd_pic32mz.c.

◆ ep0OUT_desc

tusb_desc_endpoint_t const ep0OUT_desc
static
Initial value:
=
{
.bLength = sizeof(tusb_desc_endpoint_t),
.bDescriptorType = TUSB_DESC_ENDPOINT,
.bEndpointAddress = 0x00,
.bmAttributes = { .xfer = TUSB_XFER_CONTROL },
.wMaxPacketSize = CFG_TUD_ENDPOINT0_SIZE,
.bInterval = 0
}

Definition at line 86 of file dcd_pic32mz.c.

◆ fifo_addr_top

uint16_t fifo_addr_top

Definition at line 77 of file dcd_pic32mz.c.

◆ xfer_status

xfer_ctl_t xfer_status[EP_MAX][2]

Definition at line 82 of file dcd_pic32mz.c.