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

Go to the source code of this file.

Classes

struct  xfer_td_t
 

Enumerations

enum  { MAX_PACKET_SIZE = 64 , EDPT_END_ALL_MASK }
 
enum  { EP_ISO_NUM = 8 , EP_CBI_COUNT = 8 }
 

Functions

static TU_ATTR_ALWAYS_INLINE bool is_in_isr (void)
 
static void start_dma (volatile uint32_t *reg_startep)
 
static void edpt_dma_start (volatile uint32_t *reg_startep)
 
static void edpt_dma_end (void)
 
static xfer_td_tget_td (uint8_t epnum, uint8_t dir)
 
static void xact_out_dma (uint8_t epnum)
 
static void xact_out_dma_wrapper (void *epnum)
 
static void xact_in_dma (uint8_t epnum)
 
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_disconnect (uint8_t rhport)
 
void dcd_connect (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)
 
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)
 
void bus_reset (void)
 
void dcd_int_handler (uint8_t rhport)
 
static TU_ATTR_ALWAYS_INLINE bool is_sd_existed (void)
 
static TU_ATTR_ALWAYS_INLINE bool is_sd_enabled (void)
 
static bool hfclk_running (void)
 
static void hfclk_enable (void)
 
static void hfclk_disable (void)
 
void tusb_hal_nrf_power_event (uint32_t event)
 

Variables

struct {
   xfer_td_t   xfer [EP_CBI_COUNT+1][2]
 
   atomic_flag   dma_running
 
   bool   sof_enabled
 
_dcd
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MAX_PACKET_SIZE 
EDPT_END_ALL_MASK 

Definition at line 83 of file dcd_nrf5x.c.

◆ anonymous enum

anonymous enum
Enumerator
EP_ISO_NUM 
EP_CBI_COUNT 

Definition at line 92 of file dcd_nrf5x.c.

Function Documentation

◆ bus_reset()

void bus_reset ( void  )

Definition at line 533 of file dcd_nrf5x.c.

◆ dcd_connect()

void dcd_connect ( uint8_t  rhport)

Definition at line 284 of file dcd_nrf5x.c.

◆ dcd_disconnect()

void dcd_disconnect ( uint8_t  rhport)

Definition at line 274 of file dcd_nrf5x.c.

◆ dcd_edpt_clear_stall()

void dcd_edpt_clear_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 507 of file dcd_nrf5x.c.

◆ dcd_edpt_close()

void dcd_edpt_close ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 392 of file dcd_nrf5x.c.

◆ dcd_edpt_close_all()

void dcd_edpt_close_all ( uint8_t  rhport)

Definition at line 362 of file dcd_nrf5x.c.

◆ dcd_edpt_open()

bool dcd_edpt_open ( uint8_t  rhport,
tusb_desc_endpoint_t const *  desc_edpt 
)

Definition at line 303 of file dcd_nrf5x.c.

◆ dcd_edpt_stall()

void dcd_edpt_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 482 of file dcd_nrf5x.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 429 of file dcd_nrf5x.c.

◆ dcd_init()

bool dcd_init ( uint8_t  rhport,
const tusb_rhport_init_t rh_init 
)

Definition at line 233 of file dcd_nrf5x.c.

◆ dcd_int_disable()

void dcd_int_disable ( uint8_t  rhport)

Definition at line 245 of file dcd_nrf5x.c.

◆ dcd_int_enable()

void dcd_int_enable ( uint8_t  rhport)

Definition at line 240 of file dcd_nrf5x.c.

◆ dcd_int_handler()

void dcd_int_handler ( uint8_t  rhport)

Definition at line 561 of file dcd_nrf5x.c.

◆ dcd_remote_wakeup()

void dcd_remote_wakeup ( uint8_t  rhport)

Definition at line 265 of file dcd_nrf5x.c.

◆ dcd_set_address()

void dcd_set_address ( uint8_t  rhport,
uint8_t  dev_addr 
)

Definition at line 250 of file dcd_nrf5x.c.

◆ dcd_sof_enable()

void dcd_sof_enable ( uint8_t  rhport,
bool  en 
)

Definition at line 289 of file dcd_nrf5x.c.

◆ edpt_dma_end()

static void edpt_dma_end ( void  )
static

Definition at line 160 of file dcd_nrf5x.c.

◆ edpt_dma_start()

static void edpt_dma_start ( volatile uint32_t *  reg_startep)
static

Definition at line 151 of file dcd_nrf5x.c.

◆ get_td()

static xfer_td_t * get_td ( uint8_t  epnum,
uint8_t  dir 
)
inlinestatic

Definition at line 165 of file dcd_nrf5x.c.

◆ hfclk_disable()

static void hfclk_disable ( void  )
static

Definition at line 873 of file dcd_nrf5x.c.

◆ hfclk_enable()

static void hfclk_enable ( void  )
static

Definition at line 847 of file dcd_nrf5x.c.

◆ hfclk_running()

static bool hfclk_running ( void  )
static

Definition at line 831 of file dcd_nrf5x.c.

◆ is_in_isr()

static TU_ATTR_ALWAYS_INLINE bool is_in_isr ( void  )
inlinestatic

Definition at line 133 of file dcd_nrf5x.c.

◆ is_sd_enabled()

static TU_ATTR_ALWAYS_INLINE bool is_sd_enabled ( void  )
inlinestatic

Definition at line 823 of file dcd_nrf5x.c.

◆ is_sd_existed()

static TU_ATTR_ALWAYS_INLINE bool is_sd_existed ( void  )
inlinestatic

Definition at line 818 of file dcd_nrf5x.c.

◆ start_dma()

static void start_dma ( volatile uint32_t *  reg_startep)
static

Definition at line 138 of file dcd_nrf5x.c.

◆ tusb_hal_nrf_power_event()

void tusb_hal_nrf_power_event ( uint32_t  event)

Definition at line 904 of file dcd_nrf5x.c.

◆ xact_in_dma()

static void xact_in_dma ( uint8_t  epnum)
static

Definition at line 218 of file dcd_nrf5x.c.

◆ xact_out_dma()

static void xact_out_dma ( uint8_t  epnum)
static

Definition at line 177 of file dcd_nrf5x.c.

◆ xact_out_dma_wrapper()

static void xact_out_dma_wrapper ( void *  epnum)
static

Definition at line 172 of file dcd_nrf5x.c.

Variable Documentation

◆ 

struct { ... } _dcd

◆ dma_running

atomic_flag dma_running

Definition at line 122 of file dcd_nrf5x.c.

◆ sof_enabled

bool sof_enabled

Definition at line 125 of file dcd_nrf5x.c.

◆ xfer

xfer_td_t xfer[EP_CBI_COUNT+1][2]

Definition at line 119 of file dcd_nrf5x.c.