Open FFBoard
Open source force feedback firmware
dcd_nuc120.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_memcpy (uint8_t *dest, uint8_t *src, uint16_t size)
 
static void usb_control_send_zlp (void)
 
static uint8_t decode_ep_addr (USBD_EP_T *ep)
 
static USBD_EP_T * ep_entry (uint8_t ep_addr, bool add)
 
static void dcd_in_xfer (struct xfer_ctl_t *xfer, USBD_EP_T *ep)
 
static void bus_reset (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 volatile uint8_t assigned_address
 
static uint32_t bufseg_addr
 
static bool active_ep0_xfer
 
static struct xfer_ctl_t xfer_table [PERIPH_MAX_EP]
 
static const uint32_t enabled_irqs = USBD_INTSTS_FLDET_STS_Msk | USBD_INTSTS_BUS_STS_Msk | USBD_INTSTS_SETUP_Msk | USBD_INTSTS_USB_STS_Msk
 

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 55 of file dcd_nuc120.c.

Function Documentation

◆ bus_reset()

static void bus_reset ( void  )
static

Definition at line 167 of file dcd_nuc120.c.

◆ dcd_connect()

void dcd_connect ( uint8_t  rhport)

Definition at line 496 of file dcd_nuc120.c.

◆ dcd_disconnect()

void dcd_disconnect ( uint8_t  rhport)

Definition at line 490 of file dcd_nuc120.c.

◆ dcd_edpt_clear_stall()

void dcd_edpt_clear_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 352 of file dcd_nuc120.c.

◆ dcd_edpt_close_all()

void dcd_edpt_close_all ( uint8_t  rhport)

Definition at line 278 of file dcd_nuc120.c.

◆ dcd_edpt_open()

bool dcd_edpt_open ( uint8_t  rhport,
tusb_desc_endpoint_t const *  p_endpoint_desc 
)

Definition at line 247 of file dcd_nuc120.c.

◆ dcd_edpt_stall()

void dcd_edpt_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 345 of file dcd_nuc120.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 284 of file dcd_nuc120.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 316 of file dcd_nuc120.c.

◆ dcd_in_xfer()

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

Definition at line 147 of file dcd_nuc120.c.

◆ dcd_init()

bool dcd_init ( uint8_t  rhport,
const tusb_rhport_init_t rh_init 
)

Definition at line 204 of file dcd_nuc120.c.

◆ dcd_int_disable()

void dcd_int_disable ( uint8_t  rhport)

Definition at line 228 of file dcd_nuc120.c.

◆ dcd_int_enable()

void dcd_int_enable ( uint8_t  rhport)

Definition at line 222 of file dcd_nuc120.c.

◆ dcd_int_handler()

void dcd_int_handler ( uint8_t  rhport)

Definition at line 359 of file dcd_nuc120.c.

◆ dcd_remote_wakeup()

void dcd_remote_wakeup ( uint8_t  rhport)

Definition at line 241 of file dcd_nuc120.c.

◆ dcd_set_address()

void dcd_set_address ( uint8_t  rhport,
uint8_t  dev_addr 
)

Definition at line 234 of file dcd_nuc120.c.

◆ dcd_sof_enable()

void dcd_sof_enable ( uint8_t  rhport,
bool  en 
)

Definition at line 502 of file dcd_nuc120.c.

◆ decode_ep_addr()

static uint8_t decode_ep_addr ( USBD_EP_T *  ep)
static

Definition at line 114 of file dcd_nuc120.c.

◆ ep_entry()

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

Definition at line 123 of file dcd_nuc120.c.

◆ usb_attach()

static void usb_attach ( void  )
static

Definition at line 92 of file dcd_nuc120.c.

◆ usb_control_send_zlp()

static void usb_control_send_zlp ( void  )
static

Definition at line 107 of file dcd_nuc120.c.

◆ usb_detach()

static void usb_detach ( void  )
static

Definition at line 97 of file dcd_nuc120.c.

◆ usb_memcpy()

static void usb_memcpy ( uint8_t *  dest,
uint8_t *  src,
uint16_t  size 
)
inlinestatic

Definition at line 102 of file dcd_nuc120.c.

Variable Documentation

◆ active_ep0_xfer

bool active_ep0_xfer
static

Definition at line 73 of file dcd_nuc120.c.

◆ assigned_address

volatile uint8_t assigned_address
static

Definition at line 67 of file dcd_nuc120.c.

◆ bufseg_addr

uint32_t bufseg_addr
static

Definition at line 70 of file dcd_nuc120.c.

◆ enabled_irqs

const uint32_t enabled_irqs = USBD_INTSTS_FLDET_STS_Msk | USBD_INTSTS_BUS_STS_Msk | USBD_INTSTS_SETUP_Msk | USBD_INTSTS_USB_STS_Msk
static

Definition at line 198 of file dcd_nuc120.c.

◆ xfer_table

struct xfer_ctl_t xfer_table[PERIPH_MAX_EP]
static