usbpsu
Vitis Drivers API Documentation
xusbpsu.h File Reference

Data Structures

struct  XUsbPsu_EvtBuffer
 struct XUsbPsu_EvtBuffer - Software Event buffer representation Software Event buffer representation More...
 
struct  XUsbPsu_Trb
 struct XUsbPsu_Trb - Transfer Request Block - Hardware format More...
 
struct  XUsbPsu_EpParams
 struct XUsbPsu_EpParams - Endpoint Parameters More...
 
struct  __attribute__
 struct SetupPacket - USB Standard Control Request More...
 
struct  XUsbPsu_Ep
 struct XUsbPsu_Ep - Endpoint representation Endpoint representation More...
 
struct  XUsbPsu_Config
 struct XUsbPsu_Config - Configuration information for the USB More...
 
struct  Usb_DevData
 struct Usb_DevData - Application device data Application Data More...
 
struct  XUsbPsu
 USB Device Controller representation USB Device Controller representation. More...
 
struct  XUsbPsu_Event_Type
 struct XUsbPsu_Event_Type - Device Endpoint Events type More...
 
struct  XUsbPsu_Event_Epevt
 struct XUsbPsu_event_depvt - Device Endpoint Events More...
 
struct  XUsbPsu_Event_Devt
 struct XUsbPsu_event_devt - Device Events More...
 
struct  XUsbPsu_Event_Gevt
 struct XUsbPsu_event_gevt - Other Core Events More...
 
union  XUsbPsu_Event
 union XUsbPsu_event - representation of Event Buffer contents More...
 

Macros

#define XUSBPSU_H
 by using protection macros More...
 
#define XUSBPSU_EP_DIR_IN   1U
 Direction IN. More...
 
#define XUSBPSU_EP_DIR_OUT   0U
 Direction OUT. More...
 
#define XUSBPSU_USB_DIR_OUT   0U
 Direction to device. More...
 
#define XUSBPSU_USB_DIR_IN   0x80U
 Direction to host. More...
 
#define XUSBPSU_ENDPOINT_XFERTYPE_MASK   0x03
 Transfer type mask. More...
 
#define XUSBPSU_ENDPOINT_XFER_CONTROL   0U
 Control EP. More...
 
#define XUSBPSU_ENDPOINT_XFER_ISOC   1U
 ISO EP. More...
 
#define XUSBPSU_ENDPOINT_XFER_BULK   2U
 Bulk EP. More...
 
#define XUSBPSU_ENDPOINT_XFER_INT   3U
 Interrupt EP. More...
 
#define XUSBPSU_ENDPOINT_MAX_ADJUSTABLE   0x80
 Max EP. More...
 
#define XUSBPSU_TEST_J   1U
 Test Mode J. More...
 
#define XUSBPSU_TEST_K   2U
 Test Mode K. More...
 
#define XUSBPSU_TEST_SE0_NAK   3U
 Test Mode SE0_NAK. More...
 
#define XUSBPSU_TEST_PACKET   4U
 Test Mode TEST PACKET. More...
 
#define XUSBPSU_TEST_FORCE_ENABLE   5U
 Test Mode FORCE ENABLE. More...
 
#define XUSBPSU_STATE_ATTACHED   0U
 Device State Attach. More...
 
#define XUSBPSU_STATE_POWERED   1U
 Device State Power. More...
 
#define XUSBPSU_STATE_DEFAULT   2U
 Device State Default. More...
 
#define XUSBPSU_STATE_ADDRESS   3U
 Device State Address. More...
 
#define XUSBPSU_STATE_CONFIGURED   4U
 Device State Configure. More...
 
#define XUSBPSU_STATE_SUSPENDED   5U
 Device State Suspend. More...
 
#define XUSBPSU_SPEED_UNKNOWN   0U
 Device Speed Unknown. More...
 
#define XUSBPSU_SPEED_LOW   1U
 Device Speed Low. More...
 
#define XUSBPSU_SPEED_FULL   2U
 Device Speed Full. More...
 
#define XUSBPSU_SPEED_HIGH   3U
 Device Speed High. More...
 
#define XUSBPSU_SPEED_SUPER   4U
 Device Speed Speed. More...
 

Typedefs

typedef XUsbPsu_Config Usb_Config
 typedef configuration structure More...
 

Enumerations

enum  XusbPsuLinkState {
  XUSBPSU_LINK_STATE_U0 = 0x00U, XUSBPSU_LINK_STATE_U1 = 0x01U, XUSBPSU_LINK_STATE_U2 = 0x02U, XUSBPSU_LINK_STATE_U3 = 0x03U,
  XUSBPSU_LINK_STATE_SS_DIS = 0x04U, XUSBPSU_LINK_STATE_RX_DET = 0x05U, XUSBPSU_LINK_STATE_SS_INACT = 0x06U, XUSBPSU_LINK_STATE_POLL = 0x07U,
  XUSBPSU_LINK_STATE_RECOV = 0x08U, XUSBPSU_LINK_STATE_HRESET = 0x09U, XUSBPSU_LINK_STATE_CMPLY = 0x0AU, XUSBPSU_LINK_STATE_LPBK = 0x0BU,
  XUSBPSU_LINK_STATE_RESET = 0x0EU, XUSBPSU_LINK_STATE_RESUME = 0x0FU
}
 
enum  XusbPsuLinkStateChange {
  XUSBPSU_LINK_STATE_CHANGE_U0 = 0x00U, XUSBPSU_LINK_STATE_CHANGE_SS_DIS = 0x04U, XUSBPSU_LINK_STATE_CHANGE_RX_DET = 0x05U, XUSBPSU_LINK_STATE_CHANGE_SS_INACT = 0x06U,
  XUSBPSU_LINK_STATE_CHANGE_RECOV = 0x08U, XUSBPSU_LINK_STATE_CHANGE_CMPLY = 0x0AU
}
 

Functions

struct XUsbPsu_Trb __attribute__ ((packed))
 Transfer Request Block - Hardware format. More...
 
s32 XUsbPsu_CfgInitialize (struct XUsbPsu *InstancePtr, XUsbPsu_Config *ConfigPtr, u32 BaseAddress)
 This function does the following: More...
 
s32 XUsbPsu_Start (struct XUsbPsu *InstancePtr)
 Starts the controller so that Host can detect this device. More...
 
s32 XUsbPsu_Stop (struct XUsbPsu *InstancePtr)
 Stops the controller so that Device disconnects from Host. More...
 
s32 XUsbPsu_SetU1SleepTimeout (struct XUsbPsu *InstancePtr, u8 Timeout)
 Set U1 sleep timeout. More...
 
s32 XUsbPsu_SetU2SleepTimeout (struct XUsbPsu *InstancePtr, u8 Timeout)
 Set U2 sleep timeout. More...
 
s32 XUsbPsu_AcceptU1U2Sleep (struct XUsbPsu *InstancePtr)
 Enable Accept U1 and U2 sleep enable. More...
 
s32 XUsbPsu_U1SleepEnable (struct XUsbPsu *InstancePtr)
 Enable U1 enable sleep. More...
 
s32 XUsbPsu_U2SleepEnable (struct XUsbPsu *InstancePtr)
 Enable U2 enable sleep. More...
 
s32 XUsbPsu_U1SleepDisable (struct XUsbPsu *InstancePtr)
 Enable U1 disable sleep. More...
 
s32 XUsbPsu_U2SleepDisable (struct XUsbPsu *InstancePtr)
 Enable U2 disable sleep. More...
 
s32 XUsbPsu_IsSuperSpeed (struct XUsbPsu *InstancePtr)
 Checks if the current speed is Super Speed or not. More...
 
s32 XUsbPsu_EpEnable (struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, u16 Maxsize, u8 Type, u8 Restore)
 Enables Endpoint for sending/receiving data. More...
 
s32 XUsbPsu_EpDisable (struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir)
 Disables Endpoint. More...
 
void XUsbPsu_ClearStalls (struct XUsbPsu *InstancePtr)
 Clears Stall on all endpoints. More...
 
s32 XUsbPsu_EpBufferSend (struct XUsbPsu *InstancePtr, u8 UsbEp, u8 *BufferPtr, u32 BufferLen)
 Initiates DMA to send data on endpoint to Host. More...
 
s32 XUsbPsu_EpBufferRecv (struct XUsbPsu *InstancePtr, u8 UsbEp, u8 *BufferPtr, u32 Length)
 Initiates DMA to receive data on Endpoint from Host. More...
 
void XUsbPsu_EpSetStall (struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir)
 Stalls an Endpoint. More...
 
void XUsbPsu_EpClearStall (struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir)
 Clears Stall on an Endpoint. More...
 
void XUsbPsu_SetEpHandler (struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir, void(*Handler)(void *, u32, u32))
 Sets an user handler to be called after data is sent/received by an Endpoint. More...
 
s32 XUsbPsu_IsEpStalled (struct XUsbPsu *InstancePtr, u8 Epnum, u8 Dir)
 Returns status of endpoint - Stalled or not. More...
 
void XUsbPsu_StopTransfer (struct XUsbPsu *InstancePtr, u8 UsbEpNum, u8 Dir, u8 Force)
 Stops transfer on Endpoint. More...
 
void XUsbPsu_IntrHandler (void *XUsbPsuInstancePtr)
 Main Interrupt Handler. More...
 
void XUsbPsu_EnableIntr (struct XUsbPsu *InstancePtr, u32 Mask)
 Enables an interrupt in Event Enable RegValister. More...
 
void XUsbPsu_DisableIntr (struct XUsbPsu *InstancePtr, u32 Mask)
 Disables an interrupt in Event Enable RegValister. More...
 
s32 XUsbPsu_SetDeviceAddress (struct XUsbPsu *InstancePtr, u16 Addr)
 Sets Device Address of the Core. More...
 
void XUsbPsu_Idle (struct XUsbPsu *InstancePtr)
 This function puts the controller into idle state by stopping the transfers for all endpoints, stopping the usb core and clearing the event buffers. More...
 
void XUsbPsu_SetSpeed (struct XUsbPsu *InstancePtr, u32 Speed)
 Sets speed of the Core for connecting to Host. More...
 
void XUsbPsu_Sleep (u32 USeconds)
 API for Sleep routine. More...
 
void XUsbPsu_Ep0StallRestart (struct XUsbPsu *InstancePtr)
 Stalls Control Endpoint and restarts to receive Setup packet. More...
 
XUsbPsu_ConfigXUsbPsu_LookupConfig (u16 DeviceId)
 Lookup the device configuration based on the unique device ID. More...
 

Variables

u32 BufferPtrLow
 Data buffer pointer to low 32 bits. More...
 
u32 BufferPtrHigh
 Data buffer pointer to high 32-bits. More...
 
u32 Size
 Buffer Size. More...
 
u32 Ctrl
 Transfer Request Block Control parameter. More...
 
struct XUsbPsu_EpParams __attribute__
 Endpoint Parameters. More...
 
u32 Is_DevEvt
 Device specific event. More...
 
u32 Type
 Event types. More...
 
u32 Reserved8_31
 Reserved, not used. More...
 
u32 Is_EpEvt
 indicates this is an endpoint event More...
 
u32 Epnumber
 number of the endpoint More...
 
u32 Endpoint_Event
 endpoint event More...
 
u32 Reserved11_10
 Reserved, not used. More...
 
u32 Status
 Indicates the status of the event. More...
 
u32 Parameters
 Parameters of the current event. More...
 
u32 Device_Event
 device event More...
 
u32 Reserved15_12
 Reserved, not used. More...
 
u32 Event_Info
 Information about this event. More...
 
u32 Reserved31_25
 Reserved, not used. More...
 
u32 Is_GlobalEvt
 non-endpoint event (not used) More...
 
u32 Phy_Port_Number
 Phy_Port_Number:4. More...
 
u32 Reserved31_12
 reserved31_12 More...
 
XUsbPsu_Config XUsbPsu_ConfigTable []
 Configuration table. More...
 

Variable Documentation

u32 BufferPtrHigh

Data buffer pointer to high 32-bits.

u32 BufferPtrLow

Data buffer pointer to low 32 bits.

u32 Ctrl

Transfer Request Block Control parameter.

Referenced by XUsbPsu_Ep0XferComplete().

u32 Device_Event

device event

it's (0x03) Carkit or (0x04) I2C event

u32 Endpoint_Event

endpoint event

u32 Epnumber

number of the endpoint

u32 Event_Info

Information about this event.

u32 Is_DevEvt

Device specific event.

non-endpoint event

u32 Is_EpEvt

indicates this is an endpoint event

u32 Is_GlobalEvt

non-endpoint event (not used)

u32 Parameters

Parameters of the current event.

u32 Phy_Port_Number

Phy_Port_Number:4.

u32 Reserved11_10

Reserved, not used.

u32 Reserved15_12

Reserved, not used.

u32 Reserved31_12

reserved31_12

u32 Reserved31_25

Reserved, not used.

u32 Reserved8_31

Reserved, not used.

u32 Type

Event types.

type of device event

Referenced by XUsbPsu_Ep0StartStatus(), and XUsbPsu_EpEnable().