tinyusb  0.4
Click here to lend your support to tinyusb donation and make a donation at pledgie.com
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages

EHCI driver. All documents sources mentioned here (eg section 3.5) is referring to EHCI Specs unless state otherwise. More...

Data Structures

union  ehci_link_t
 Link pointer. More...
 
struct  ehci_qtd_t
 Queue Element Transfer Descriptor (section 3.5) More...
 
struct  ehci_qhd_t
 Queue Head (section 3.6) More...
 
struct  ehci_itd_t
 Highspeed Isochronous Transfer Descriptor (section 3.3) More...
 
struct  ehci_sitd_t
 Split (Full-Speed) Isochronous Transfer Descriptor. More...
 
struct  ehci_registers_t
 
struct  ehci_data_t
 
enum  { EHCI_MAX_ITD = 4, EHCI_MAX_SITD = 16 }
 
enum  ehci_queue_element_type_ { EHCI_QUEUE_ELEMENT_ITD = 0, EHCI_QUEUE_ELEMENT_QHD, EHCI_QUEUE_ELEMENT_SITD, EHCI_QUEUE_ELEMENT_FSTN }
 
enum  tusb_pid_ { EHCI_PID_OUT = 0, EHCI_PID_IN, EHCI_PID_SETUP }
 EHCI PID.
 
enum  ehci_interrupt_mask_ {
  EHCI_INT_MASK_USB = BIT_(0), EHCI_INT_MASK_ERROR = BIT_(1), EHCI_INT_MASK_PORT_CHANGE = BIT_(2), EHCI_INT_MASK_FRAMELIST_ROLLOVER = BIT_(3),
  EHCI_INT_MASK_PCI_HOST_SYSTEM_ERROR = BIT_(4), EHCI_INT_MASK_ASYNC_ADVANCE = BIT_(5), EHCI_INT_MASK_NXP_SOF = BIT_(7), EHCI_INT_MASK_NXP_ASYNC = BIT_(18),
  EHCI_INT_MASK_NXP_PERIODIC = BIT_(19), EHCI_INT_MASK_ALL
}
 
enum  ehci_usbcmd_pos_ {
  EHCI_USBCMD_POS_RUN_STOP = 0, EHCI_USBCMD_POS_FRAMELIST_SZIE = 2, EHCI_USBCMD_POS_PERIOD_ENABLE = 4, EHCI_USBCMD_POS_ASYNC_ENABLE = 5,
  EHCI_USBCMD_POS_NXP_FRAMELIST_SIZE_MSB = 15, EHCI_USBCMD_POS_INTERRUPT_THRESHOLD = 16
}
 
enum  ehci_portsc_change_mask_ { EHCI_PORTSC_MASK_CONNECT_STATUS_CHANGE = BIT_(1), EHCI_PORTSC_MASK_PORT_ENABLE_CHAGNE = BIT_(3), EHCI_PORTSC_MASK_OVER_CURRENT_CHANGE = BIT_(5), EHCI_PORTSC_MASK_ALL }
 
 STATIC_ASSERT (EHCI_CFG_FRAMELIST_SIZE_BITS<=7,"incorrect value")
 
 STATIC_ASSERT (sizeof(ehci_qtd_t)==32,"size is not correct")
 
 STATIC_ASSERT (sizeof(ehci_qhd_t)==64,"size is not correct")
 
 STATIC_ASSERT (sizeof(ehci_itd_t)==64,"size is not correct")
 
 STATIC_ASSERT (sizeof(ehci_sitd_t)==32,"size is not correct")
 
#define HOST_HCD_XFER_INTERRUPT
 
#define EHCI_PERIODIC_LIST   (defined HOST_HCD_XFER_INTERRUPT || defined HOST_HCD_XFER_ISOCHRONOUS)
 
#define EHCI_CFG_FRAMELIST_SIZE_BITS   7
 
#define EHCI_FRAMELIST_SIZE   (1024 >> EHCI_CFG_FRAMELIST_SIZE_BITS)
 

Detailed Description

EHCI driver. All documents sources mentioned here (eg section 3.5) is referring to EHCI Specs unless state otherwise.

Enumeration Type Documentation

Enumerator
EHCI_QUEUE_ELEMENT_ITD 

0

EHCI_QUEUE_ELEMENT_QHD 

1

EHCI_QUEUE_ELEMENT_SITD 

2

EHCI_QUEUE_ELEMENT_FSTN 

3

Definition at line 89 of file ehci.h.