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

Go to the source code of this file.

Functions

static TU_ATTR_ALWAYS_INLINE struct hw_endpointhw_endpoint_get_by_num (uint8_t num, tusb_dir_t dir)
 
static TU_ATTR_ALWAYS_INLINE struct hw_endpointhw_endpoint_get_by_addr (uint8_t ep_addr)
 
static void _hw_endpoint_alloc (struct hw_endpoint *ep, uint8_t transfer_type)
 
static void _hw_endpoint_close (struct hw_endpoint *ep)
 
static void hw_endpoint_close (uint8_t ep_addr)
 
static void hw_endpoint_init (uint8_t ep_addr, uint16_t wMaxPacketSize, uint8_t transfer_type)
 
static void hw_endpoint_xfer (uint8_t ep_addr, uint8_t *buffer, uint16_t total_bytes)
 
static void __tusb_irq_path_func() hw_handle_buff_status (void)
 
static TU_ATTR_ALWAYS_INLINE void reset_ep0 (void)
 
static void __tusb_irq_path_func() reset_non_control_endpoints (void)
 
static void __tusb_irq_path_func() dcd_rp2040_irq (void)
 
bool dcd_init (uint8_t rhport, const tusb_rhport_init_t *rh_init)
 
bool dcd_deinit (uint8_t rhport)
 
void dcd_int_enable (__unused uint8_t rhport)
 
void dcd_int_disable (__unused uint8_t rhport)
 
void dcd_set_address (__unused uint8_t rhport, __unused uint8_t dev_addr)
 
void dcd_remote_wakeup (__unused uint8_t rhport)
 
void dcd_disconnect (__unused uint8_t rhport)
 
void dcd_connect (__unused uint8_t rhport)
 
void dcd_sof_enable (uint8_t rhport, bool en)
 
void dcd_edpt0_status_complete (uint8_t rhport, tusb_control_request_t const *request)
 
bool dcd_edpt_open (__unused uint8_t rhport, tusb_desc_endpoint_t const *desc_edpt)
 
void dcd_edpt_close_all (uint8_t rhport)
 
bool dcd_edpt_xfer (__unused 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 dcd_edpt_close (uint8_t rhport, uint8_t ep_addr)
 
void __tusb_irq_path_func() dcd_int_handler (uint8_t rhport)
 

Variables

static uint8_t * next_buffer_ptr
 
static struct hw_endpoint hw_endpoints [USB_MAX_ENDPOINTS][2]
 
static bool _sof_enable = false
 

Function Documentation

◆ _hw_endpoint_alloc()

static void _hw_endpoint_alloc ( struct hw_endpoint ep,
uint8_t  transfer_type 
)
static

Definition at line 69 of file dcd_rp2040.c.

◆ _hw_endpoint_close()

static void _hw_endpoint_close ( struct hw_endpoint ep)
static

Definition at line 93 of file dcd_rp2040.c.

◆ dcd_connect()

void dcd_connect ( __unused uint8_t  rhport)

Definition at line 460 of file dcd_rp2040.c.

◆ dcd_deinit()

bool dcd_deinit ( uint8_t  rhport)

Definition at line 412 of file dcd_rp2040.c.

◆ dcd_disconnect()

void dcd_disconnect ( __unused uint8_t  rhport)

Definition at line 454 of file dcd_rp2040.c.

◆ dcd_edpt0_status_complete()

void dcd_edpt0_status_complete ( uint8_t  rhport,
tusb_control_request_t const *  request 
)

Definition at line 486 of file dcd_rp2040.c.

◆ dcd_edpt_clear_stall()

void dcd_edpt_clear_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 531 of file dcd_rp2040.c.

◆ dcd_edpt_close()

void dcd_edpt_close ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 543 of file dcd_rp2040.c.

◆ dcd_edpt_close_all()

void dcd_edpt_close_all ( uint8_t  rhport)

Definition at line 502 of file dcd_rp2040.c.

◆ dcd_edpt_open()

bool dcd_edpt_open ( __unused uint8_t  rhport,
tusb_desc_endpoint_t const *  desc_edpt 
)

Definition at line 496 of file dcd_rp2040.c.

◆ dcd_edpt_stall()

void dcd_edpt_stall ( uint8_t  rhport,
uint8_t  ep_addr 
)

Definition at line 515 of file dcd_rp2040.c.

◆ dcd_edpt_xfer()

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

Definition at line 509 of file dcd_rp2040.c.

◆ dcd_init()

bool dcd_init ( uint8_t  rhport,
const tusb_rhport_init_t rh_init 
)

Definition at line 372 of file dcd_rp2040.c.

◆ dcd_int_disable()

void dcd_int_disable ( __unused uint8_t  rhport)

Definition at line 430 of file dcd_rp2040.c.

◆ dcd_int_enable()

void dcd_int_enable ( __unused uint8_t  rhport)

Definition at line 425 of file dcd_rp2040.c.

◆ dcd_int_handler()

void __tusb_irq_path_func() dcd_int_handler ( uint8_t  rhport)

Definition at line 549 of file dcd_rp2040.c.

◆ dcd_remote_wakeup()

void dcd_remote_wakeup ( __unused uint8_t  rhport)

Definition at line 443 of file dcd_rp2040.c.

◆ dcd_rp2040_irq()

static void __tusb_irq_path_func() dcd_rp2040_irq ( void  )
static

Definition at line 236 of file dcd_rp2040.c.

◆ dcd_set_address()

void dcd_set_address ( __unused uint8_t  rhport,
__unused uint8_t  dev_addr 
)

Definition at line 435 of file dcd_rp2040.c.

◆ dcd_sof_enable()

void dcd_sof_enable ( uint8_t  rhport,
bool  en 
)

Definition at line 465 of file dcd_rp2040.c.

◆ hw_endpoint_close()

static void hw_endpoint_close ( uint8_t  ep_addr)
static

Definition at line 116 of file dcd_rp2040.c.

◆ hw_endpoint_get_by_addr()

static TU_ATTR_ALWAYS_INLINE struct hw_endpoint * hw_endpoint_get_by_addr ( uint8_t  ep_addr)
inlinestatic

Definition at line 63 of file dcd_rp2040.c.

◆ hw_endpoint_get_by_num()

static TU_ATTR_ALWAYS_INLINE struct hw_endpoint * hw_endpoint_get_by_num ( uint8_t  num,
tusb_dir_t  dir 
)
inlinestatic

Definition at line 59 of file dcd_rp2040.c.

◆ hw_endpoint_init()

static void hw_endpoint_init ( uint8_t  ep_addr,
uint16_t  wMaxPacketSize,
uint8_t  transfer_type 
)
static

Definition at line 121 of file dcd_rp2040.c.

◆ hw_endpoint_xfer()

static void hw_endpoint_xfer ( uint8_t  ep_addr,
uint8_t *  buffer,
uint16_t  total_bytes 
)
static

Definition at line 165 of file dcd_rp2040.c.

◆ hw_handle_buff_status()

static void __tusb_irq_path_func() hw_handle_buff_status ( void  )
static

Definition at line 170 of file dcd_rp2040.c.

◆ reset_ep0()

static TU_ATTR_ALWAYS_INLINE void reset_ep0 ( void  )
inlinestatic

Definition at line 195 of file dcd_rp2040.c.

◆ reset_non_control_endpoints()

static void __tusb_irq_path_func() reset_non_control_endpoints ( void  )
static

Definition at line 222 of file dcd_rp2040.c.

Variable Documentation

◆ _sof_enable

bool _sof_enable = false
static

Definition at line 57 of file dcd_rp2040.c.

◆ hw_endpoints

struct hw_endpoint hw_endpoints[USB_MAX_ENDPOINTS][2]
static

Definition at line 54 of file dcd_rp2040.c.

◆ next_buffer_ptr

uint8_t* next_buffer_ptr
static

Definition at line 51 of file dcd_rp2040.c.