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

Go to the source code of this file.

Enumerations

enum  { SIE_CTRL_BASE }
 

Functions

static struct hw_endpointget_dev_ep (uint8_t dev_addr, uint8_t ep_addr)
 
static TU_ATTR_ALWAYS_INLINE uint8_t dev_speed (void)
 
static TU_ATTR_ALWAYS_INLINE bool need_pre (uint8_t dev_addr)
 
static void __tusb_irq_path_func() hw_xfer_complete (struct hw_endpoint *ep, xfer_result_t xfer_result)
 
static void __tusb_irq_path_func() _handle_buff_status_bit (uint bit, struct hw_endpoint *ep)
 
static void __tusb_irq_path_func() hw_handle_buff_status (void)
 
static void __tusb_irq_path_func() hw_trans_complete (void)
 
static void __tusb_irq_path_func() hcd_rp2040_irq (void)
 
void __tusb_irq_path_func() hcd_int_handler (uint8_t rhport, bool in_isr)
 
static struct hw_endpoint_next_free_interrupt_ep (void)
 
static struct hw_endpoint_hw_endpoint_allocate (uint8_t transfer_type)
 
static void _hw_endpoint_init (struct hw_endpoint *ep, uint8_t dev_addr, uint8_t ep_addr, uint16_t wMaxPacketSize, uint8_t transfer_type, uint8_t bmInterval)
 
bool hcd_init (uint8_t rhport, const tusb_rhport_init_t *rh_init)
 
bool hcd_deinit (uint8_t rhport)
 
void hcd_port_reset (uint8_t rhport)
 
void hcd_port_reset_end (uint8_t rhport)
 
bool hcd_port_connect_status (uint8_t rhport)
 
tusb_speed_t hcd_port_speed_get (uint8_t rhport)
 
void hcd_device_close (uint8_t rhport, uint8_t dev_addr)
 
uint32_t hcd_frame_number (uint8_t rhport)
 
void hcd_int_enable (uint8_t rhport)
 
void hcd_int_disable (uint8_t rhport)
 
bool hcd_edpt_open (uint8_t rhport, uint8_t dev_addr, tusb_desc_endpoint_t const *ep_desc)
 
bool hcd_edpt_xfer (uint8_t rhport, uint8_t dev_addr, uint8_t ep_addr, uint8_t *buffer, uint16_t buflen)
 
bool hcd_edpt_abort_xfer (uint8_t rhport, uint8_t dev_addr, uint8_t ep_addr)
 
bool hcd_setup_send (uint8_t rhport, uint8_t dev_addr, uint8_t const setup_packet[8])
 
bool hcd_edpt_clear_stall (uint8_t rhport, uint8_t dev_addr, uint8_t ep_addr)
 

Variables

static struct hw_endpoint ep_pool [1+PICO_USB_HOST_INTERRUPT_ENDPOINTS]
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
SIE_CTRL_BASE 

Definition at line 60 of file hcd_rp2040.c.

Function Documentation

◆ _handle_buff_status_bit()

static void __tusb_irq_path_func() _handle_buff_status_bit ( uint  bit,
struct hw_endpoint ep 
)
static

Definition at line 101 of file hcd_rp2040.c.

◆ _hw_endpoint_allocate()

static struct hw_endpoint * _hw_endpoint_allocate ( uint8_t  transfer_type)
static

Definition at line 277 of file hcd_rp2040.c.

◆ _hw_endpoint_init()

static void _hw_endpoint_init ( struct hw_endpoint ep,
uint8_t  dev_addr,
uint8_t  ep_addr,
uint16_t  wMaxPacketSize,
uint8_t  transfer_type,
uint8_t  bmInterval 
)
static

Definition at line 307 of file hcd_rp2040.c.

◆ _next_free_interrupt_ep()

static struct hw_endpoint * _next_free_interrupt_ep ( void  )
static

Definition at line 261 of file hcd_rp2040.c.

◆ dev_speed()

static TU_ATTR_ALWAYS_INLINE uint8_t dev_speed ( void  )
inlinestatic

Definition at line 79 of file hcd_rp2040.c.

◆ get_dev_ep()

static struct hw_endpoint * get_dev_ep ( uint8_t  dev_addr,
uint8_t  ep_addr 
)
static

Definition at line 65 of file hcd_rp2040.c.

◆ hcd_deinit()

bool hcd_deinit ( uint8_t  rhport)

Definition at line 412 of file hcd_rp2040.c.

◆ hcd_device_close()

void hcd_device_close ( uint8_t  rhport,
uint8_t  dev_addr 
)

Definition at line 462 of file hcd_rp2040.c.

◆ hcd_edpt_abort_xfer()

bool hcd_edpt_abort_xfer ( uint8_t  rhport,
uint8_t  dev_addr,
uint8_t  ep_addr 
)

Definition at line 587 of file hcd_rp2040.c.

◆ hcd_edpt_clear_stall()

bool hcd_edpt_clear_stall ( uint8_t  rhport,
uint8_t  dev_addr,
uint8_t  ep_addr 
)

Definition at line 636 of file hcd_rp2040.c.

◆ hcd_edpt_open()

bool hcd_edpt_open ( uint8_t  rhport,
uint8_t  dev_addr,
tusb_desc_endpoint_t const *  ep_desc 
)

Definition at line 513 of file hcd_rp2040.c.

◆ hcd_edpt_xfer()

bool hcd_edpt_xfer ( uint8_t  rhport,
uint8_t  dev_addr,
uint8_t  ep_addr,
uint8_t *  buffer,
uint16_t  buflen 
)

Definition at line 533 of file hcd_rp2040.c.

◆ hcd_frame_number()

uint32_t hcd_frame_number ( uint8_t  rhport)

Definition at line 488 of file hcd_rp2040.c.

◆ hcd_init()

bool hcd_init ( uint8_t  rhport,
const tusb_rhport_init_t rh_init 
)

Definition at line 378 of file hcd_rp2040.c.

◆ hcd_int_disable()

void hcd_int_disable ( uint8_t  rhport)

Definition at line 501 of file hcd_rp2040.c.

◆ hcd_int_enable()

void hcd_int_enable ( uint8_t  rhport)

Definition at line 494 of file hcd_rp2040.c.

◆ hcd_int_handler()

void __tusb_irq_path_func() hcd_int_handler ( uint8_t  rhport,
bool  in_isr 
)

Definition at line 255 of file hcd_rp2040.c.

◆ hcd_port_connect_status()

bool hcd_port_connect_status ( uint8_t  rhport)

Definition at line 435 of file hcd_rp2040.c.

◆ hcd_port_reset()

void hcd_port_reset ( uint8_t  rhport)

Definition at line 422 of file hcd_rp2040.c.

◆ hcd_port_reset_end()

void hcd_port_reset_end ( uint8_t  rhport)

Definition at line 430 of file hcd_rp2040.c.

◆ hcd_port_speed_get()

tusb_speed_t hcd_port_speed_get ( uint8_t  rhport)

Definition at line 443 of file hcd_rp2040.c.

◆ hcd_rp2040_irq()

static void __tusb_irq_path_func() hcd_rp2040_irq ( void  )
static

Definition at line 185 of file hcd_rp2040.c.

◆ hcd_setup_send()

bool hcd_setup_send ( uint8_t  rhport,
uint8_t  dev_addr,
uint8_t const  setup_packet[8] 
)

Definition at line 595 of file hcd_rp2040.c.

◆ hw_handle_buff_status()

static void __tusb_irq_path_func() hw_handle_buff_status ( void  )
static

Definition at line 113 of file hcd_rp2040.c.

◆ hw_trans_complete()

static void __tusb_irq_path_func() hw_trans_complete ( void  )
static

Definition at line 167 of file hcd_rp2040.c.

◆ hw_xfer_complete()

static void __tusb_irq_path_func() hw_xfer_complete ( struct hw_endpoint ep,
xfer_result_t  xfer_result 
)
static

Definition at line 91 of file hcd_rp2040.c.

◆ need_pre()

static TU_ATTR_ALWAYS_INLINE bool need_pre ( uint8_t  dev_addr)
inlinestatic

Definition at line 84 of file hcd_rp2040.c.

Variable Documentation

◆ ep_pool

struct hw_endpoint ep_pool[1+PICO_USB_HOST_INTERRUPT_ENDPOINTS]
static

Definition at line 56 of file hcd_rp2040.c.