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

Data Structures

struct  dcd_dma_descriptor_t
 

Enumerations

enum  {
  DEV_INT_FRAME_MASK = BIT_(0), DEV_INT_ENDPOINT_FAST_MASK = BIT_(1), DEV_INT_ENDPOINT_SLOW_MASK = BIT_(2), DEV_INT_DEVICE_STATUS_MASK = BIT_(3),
  DEV_INT_COMMAND_CODE_EMPTY_MASK = BIT_(4), DEV_INT_COMMAND_DATA_FULL_MASK = BIT_(5), DEV_INT_RX_ENDPOINT_PACKET_MASK = BIT_(6), DEV_INT_TX_ENDPOINT_PACKET_MASK = BIT_(7),
  DEV_INT_ENDPOINT_REALIZED_MASK = BIT_(8), DEV_INT_ERROR_MASK = BIT_(9)
}
 
enum  { DMA_INT_END_OF_XFER_MASK = BIT_(0), DMA_INT_NEW_DD_REQUEST_MASK = BIT_(1), DMA_INT_ERROR_MASK = BIT_(2) }
 
enum  { USBCTRL_READ_ENABLE_MASK = BIT_(0), USBCTRL_WRITE_ENABLE_MASK = BIT_(1) }
 
enum  { USBRXPLEN_PACKET_LENGTH_MASK = (BIT_(10)-1), USBRXPLEN_DATA_VALID_MASK = BIT_(10), USBRXPLEN_PACKET_READY_MASK = BIT_(11) }
 
enum  sie_cmdphase_t { SIE_CMDPHASE_WRITE = 1, SIE_CMDPHASE_READ = 2, SIE_CMDPHASE_COMMAND = 5 }
 
enum  {
  SIE_CMDCODE_SET_ADDRESS = 0xd0, SIE_CMDCODE_CONFIGURE_DEVICE = 0xd8, SIE_CMDCODE_SET_MODE = 0xf3, SIE_CMDCODE_READ_FRAME_NUMBER = 0xf5,
  SIE_CMDCODE_READ_TEST_REGISTER = 0xfd, SIE_CMDCODE_DEVICE_STATUS = 0xfe, SIE_CMDCODE_GET_ERROR = 0xff, SIE_CMDCODE_READ_ERROR_STATUS = 0xfb,
  SIE_CMDCODE_ENDPOINT_SELECT = 0x00, SIE_CMDCODE_ENDPOINT_SELECT_CLEAR_INTERRUPT = 0x40, SIE_CMDCODE_ENDPOINT_SET_STATUS = 0x40, SIE_CMDCODE_BUFFER_CLEAR = 0xf2,
  SIE_CMDCODE_BUFFER_VALIDATE = 0xfa
}
 
enum  {
  SIE_DEV_STATUS_CONNECT_STATUS_MASK = BIT_(0), SIE_DEV_STATUS_CONNECT_CHANGE_MASK = BIT_(1), SIE_DEV_STATUS_SUSPEND_MASK = BIT_(2), SIE_DEV_STATUS_SUSPEND_CHANGE_MASK = BIT_(3),
  SIE_DEV_STATUS_RESET_MASK = BIT_(4)
}
 
enum  {
  SIE_SELECT_ENDPOINT_FULL_EMPTY_MASK = BIT_(0), SIE_SELECT_ENDPOINT_STALL_MASK = BIT_(1), SIE_SELECT_ENDPOINT_SETUP_RECEIVED_MASK = BIT_(2), SIE_SELECT_ENDPOINT_PACKET_OVERWRITTEN_MASK = BIT_(3),
  SIE_SELECT_ENDPOINT_NAK_MASK = BIT_(4), SIE_SELECT_ENDPOINT_BUFFER1_FULL_MASK = BIT_(5), SIE_SELECT_ENDPOINT_BUFFER2_FULL_MASK = BIT_(6)
}
 
enum  sie_endpoint_set_status_mask_t { SIE_SET_ENDPOINT_STALLED_MASK = BIT_(0), SIE_SET_ENDPOINT_DISABLED_MASK = BIT_(5), SIE_SET_ENDPOINT_RATE_FEEDBACK_MASK = BIT_(6), SIE_SET_ENDPOINT_CONDITION_STALLED_MASK = BIT_(7) }
 
enum  {
  DD_STATUS_NOT_SERVICED = 0, DD_STATUS_BEING_SERVICED, DD_STATUS_NORMAL, DD_STATUS_DATA_UNDERUN,
  DD_STATUS_DATA_OVERRUN, DD_STATUS_SYSTEM_ERROR
}
 

Functions

 STATIC_ASSERT (sizeof(dcd_dma_descriptor_t)==16,"size is not correct")
 
static void sie_cmd_code (sie_cmdphase_t phase, uint8_t code_data) ATTR_ALWAYS_INLINE
 
static void sie_write (uint8_t cmd_code, uint8_t data_len, uint8_t data) ATTR_ALWAYS_INLINE
 
static uint32_t sie_read (uint8_t cmd_code, uint8_t data_len) ATTR_ALWAYS_INLINE
 

Detailed Description