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

Go to the source code of this file.

Classes

struct  xfer_ctl_t
 

Enumerations

enum  ep_enum {
  PERIPH_EP0 = 0 , PERIPH_EP1 = 1 , PERIPH_EP2 = 2 , PERIPH_EP3 = 3 ,
  PERIPH_EP4 = 4 , PERIPH_EP5 = 5 , PERIPH_MAX_EP , PERIPH_EP0 = 0 ,
  PERIPH_EP1 = 1 , PERIPH_EP2 = 2 , PERIPH_EP3 = 3 , PERIPH_EP4 = 4 ,
  PERIPH_EP5 = 5 , PERIPH_EP6 = 6 , PERIPH_EP7 = 7 , PERIPH_MAX_EP ,
  PERIPH_EPA = 0 , PERIPH_EPB = 1 , PERIPH_EPC = 2 , PERIPH_EPD = 3 ,
  PERIPH_EPE = 4 , PERIPH_EPF = 5 , PERIPH_EPG = 6 , PERIPH_EPH = 7 ,
  PERIPH_EPI = 8 , PERIPH_EPJ = 9 , PERIPH_EPK = 10 , PERIPH_EPL = 11 ,
  PERIPH_MAX_EP
}
 

Functions

static void usb_attach (void)
 
static void usb_detach (void)
 
static void usb_control_send_zlp (void)
 
static USBD_EP_T * ep_entry (uint8_t ep_addr, bool add)
 
static void dcd_userEP_in_xfer (struct xfer_ctl_t *xfer, USBD_EP_T *ep)
 
static void bus_reset (void)
 
static void service_dma (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)
 
bool dcd_edpt_open (uint8_t rhport, tusb_desc_endpoint_t const *p_endpoint_desc)
 
void dcd_edpt_close_all (uint8_t rhport)
 
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_stall (uint8_t rhport, uint8_t ep_addr)
 
void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr)
 
void dcd_int_handler (uint8_t rhport)
 
void dcd_disconnect (uint8_t rhport)
 
void dcd_connect (uint8_t rhport)
 
void dcd_sof_enable (uint8_t rhport, bool en)
 

Variables

static const uint8_t epcfg_eptype_table []
 
static const uint8_t eprspctl_eptype_table []
 
static volatile uint8_t assigned_address
 
static uint32_t bufseg_addr
 
static struct xfer_ctl_t xfer_table [PERIPH_MAX_EP]
 
struct {
   uint8_t *   data_ptr
 
   uint16_t   in_remaining_bytes
 
   uint16_t   total_bytes
 
ctrl_in_xfer
 
static volatile struct xfer_ctl_tcurrent_dma_xfer
 
static const uint32_t enabled_irqs
 

Enumeration Type Documentation

◆ ep_enum

enum ep_enum
Enumerator
PERIPH_EP0 
PERIPH_EP1 
PERIPH_EP2 
PERIPH_EP3 
PERIPH_EP4 
PERIPH_EP5 
PERIPH_MAX_EP 
PERIPH_EP0 
PERIPH_EP1 
PERIPH_EP2 
PERIPH_EP3 
PERIPH_EP4 
PERIPH_EP5 
PERIPH_EP6 
PERIPH_EP7 
PERIPH_MAX_EP 
PERIPH_EPA 
PERIPH_EPB 
PERIPH_EPC 
PERIPH_EPD 
PERIPH_EPE 
PERIPH_EPF 
PERIPH_EPG 
PERIPH_EPH 
PERIPH_EPI 
PERIPH_EPJ 
PERIPH_EPK 
PERIPH_EPL 
PERIPH_MAX_EP 

Definition at line 54 of file dcd_nuc505.c.

Function Documentation

◆ bus_reset()

static void bus_reset ( void  )
static

Definition at line 211 of file dcd_nuc505.c.

◆ dcd_connect()

void dcd_connect ( uint8_t  rhport)

Definition at line 719 of file dcd_nuc505.c.

◆ dcd_disconnect()

void dcd_disconnect ( uint8_t  rhport)

Definition at line 713 of file dcd_nuc505.c.

◆ dcd_edpt_clear_stall()

void dcd_edpt_clear_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 474 of file dcd_nuc505.c.

◆ dcd_edpt_close_all()

void dcd_edpt_close_all ( uint8_t  rhport)

Definition at line 360 of file dcd_nuc505.c.

◆ dcd_edpt_open()

bool dcd_edpt_open ( uint8_t  rhport,
tusb_desc_endpoint_t const *  p_endpoint_desc 
)

Definition at line 323 of file dcd_nuc505.c.

◆ dcd_edpt_stall()

void dcd_edpt_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 458 of file dcd_nuc505.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 366 of file dcd_nuc505.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 427 of file dcd_nuc505.c.

◆ dcd_init()

bool dcd_init ( uint8_t  rhport,
const tusb_rhport_init_t rh_init 
)

Definition at line 282 of file dcd_nuc505.c.

◆ dcd_int_disable()

void dcd_int_disable ( uint8_t  rhport)

Definition at line 304 of file dcd_nuc505.c.

◆ dcd_int_enable()

void dcd_int_enable ( uint8_t  rhport)

Definition at line 298 of file dcd_nuc505.c.

◆ dcd_int_handler()

void dcd_int_handler ( uint8_t  rhport)

Definition at line 486 of file dcd_nuc505.c.

◆ dcd_remote_wakeup()

void dcd_remote_wakeup ( uint8_t  rhport)

Definition at line 317 of file dcd_nuc505.c.

◆ dcd_set_address()

void dcd_set_address ( uint8_t  rhport,
uint8_t  dev_addr 
)

Definition at line 310 of file dcd_nuc505.c.

◆ dcd_sof_enable()

void dcd_sof_enable ( uint8_t  rhport,
bool  en 
)

Definition at line 725 of file dcd_nuc505.c.

◆ dcd_userEP_in_xfer()

static void dcd_userEP_in_xfer ( struct xfer_ctl_t xfer,
USBD_EP_T *  ep 
)
static

Definition at line 167 of file dcd_nuc505.c.

◆ ep_entry()

static USBD_EP_T * ep_entry ( uint8_t  ep_addr,
bool  add 
)
static

Definition at line 141 of file dcd_nuc505.c.

◆ service_dma()

static void service_dma ( void  )
static

Definition at line 239 of file dcd_nuc505.c.

◆ usb_attach()

static void usb_attach ( void  )
static

Definition at line 123 of file dcd_nuc505.c.

◆ usb_control_send_zlp()

static void usb_control_send_zlp ( void  )
static

Definition at line 133 of file dcd_nuc505.c.

◆ usb_detach()

static void usb_detach ( void  )
static

Definition at line 128 of file dcd_nuc505.c.

Variable Documentation

◆ assigned_address

volatile uint8_t assigned_address
static

Definition at line 88 of file dcd_nuc505.c.

◆ bufseg_addr

uint32_t bufseg_addr
static

Definition at line 91 of file dcd_nuc505.c.

◆ 

struct { ... } ctrl_in_xfer

◆ current_dma_xfer

volatile struct xfer_ctl_t* current_dma_xfer
static

Definition at line 116 of file dcd_nuc505.c.

◆ data_ptr

uint8_t* data_ptr

Definition at line 111 of file dcd_nuc505.c.

◆ enabled_irqs

const uint32_t enabled_irqs
static
Initial value:
= USBD_GINTEN_USBIEN_Msk | \
USBD_GINTEN_EPAIEN_Msk | USBD_GINTEN_EPBIEN_Msk | USBD_GINTEN_EPCIEN_Msk | USBD_GINTEN_EPDIEN_Msk | USBD_GINTEN_EPEIEN_Msk | USBD_GINTEN_EPFIEN_Msk | \
USBD_GINTEN_EPGIEN_Msk | USBD_GINTEN_EPHIEN_Msk | USBD_GINTEN_EPIIEN_Msk | USBD_GINTEN_EPJIEN_Msk | USBD_GINTEN_EPKIEN_Msk | USBD_GINTEN_EPLIEN_Msk | \
USBD_GINTEN_CEPIEN_Msk

Definition at line 273 of file dcd_nuc505.c.

◆ epcfg_eptype_table

const uint8_t epcfg_eptype_table[]
static
Initial value:
=
{
[TUSB_XFER_ISOCHRONOUS] = 3 << USBD_EPCFG_EPTYPE_Pos,
[TUSB_XFER_BULK] = 1 << USBD_EPCFG_EPTYPE_Pos,
[TUSB_XFER_INTERRUPT] = 2 << USBD_EPCFG_EPTYPE_Pos,
}
@ TUSB_XFER_CONTROL
Definition: tusb_types.h:59
@ TUSB_XFER_ISOCHRONOUS
Definition: tusb_types.h:60
@ TUSB_XFER_INTERRUPT
Definition: tusb_types.h:62
@ TUSB_XFER_BULK
Definition: tusb_types.h:61

Definition at line 71 of file dcd_nuc505.c.

◆ eprspctl_eptype_table

const uint8_t eprspctl_eptype_table[]
static
Initial value:
=
{
[TUSB_XFER_ISOCHRONOUS] = 2 << USBD_EPRSPCTL_MODE_Pos,
[TUSB_XFER_BULK] = 0 << USBD_EPRSPCTL_MODE_Pos,
[TUSB_XFER_INTERRUPT] = 1 << USBD_EPRSPCTL_MODE_Pos,
}

Definition at line 79 of file dcd_nuc505.c.

◆ in_remaining_bytes

uint16_t in_remaining_bytes

Definition at line 112 of file dcd_nuc505.c.

◆ total_bytes

uint16_t total_bytes

Definition at line 113 of file dcd_nuc505.c.

◆ xfer_table

struct xfer_ctl_t xfer_table[PERIPH_MAX_EP]
static