usbpsu
Vitis Drivers API Documentation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
xusbpsu.h File Reference
#include "xil_types.h"
#include "xil_assert.h"
#include "xstatus.h"
#include "xusbpsu_hw.h"
#include "xusbpsu_endpoint.h"
#include "xil_io.h"
#include "xil_util.h"
#include "xil_cache.h"

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 Transfer Request Block - Hardware format More...
 
struct  XUsbPsu_EpParams
 struct XUsbPsu_EpParams - Endpoint Parameters Endpoint Parameters More...
 
struct  SetupPacket
 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 Device Endpoint Events type More...
 
struct  XUsbPsu_Event_Epevt
 struct XUsbPsu_event_depvt - Device Endpoint Events Device Endpoint Events More...
 
struct  XUsbPsu_Event_Devt
 struct XUsbPsu_event_devt - Device Events Device Events More...
 
struct  XUsbPsu_Event_Gevt
 struct XUsbPsu_event_gevt - Other Core Events Core events More...
 
union  XUsbPsu_Event
 union XUsbPsu_event - representation of Event Buffer contents Representation of Event Buffers 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

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 the device disconnects from the host. More...
 
s32 XUsbPsu_SetU1SleepTimeout (struct XUsbPsu *InstancePtr, u8 Timeout)
 Sets U1 sleep timeout. More...
 
s32 XUsbPsu_SetU2SleepTimeout (struct XUsbPsu *InstancePtr, u8 Timeout)
 Sets U2 sleep timeout. More...
 
s32 XUsbPsu_AcceptU1U2Sleep (struct XUsbPsu *InstancePtr)
 Enable Accept U1 and U2 sleep enable. More...
 
s32 XUsbPsu_U1SleepEnable (struct XUsbPsu *InstancePtr)
 Enables U1 enable sleep. More...
 
s32 XUsbPsu_U2SleepEnable (struct XUsbPsu *InstancePtr)
 Enables U2 enable sleep. More...
 
s32 XUsbPsu_U1SleepDisable (struct XUsbPsu *InstancePtr)
 Enables U1 disable sleep. More...
 
s32 XUsbPsu_U2SleepDisable (struct XUsbPsu *InstancePtr)
 Enables 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 the 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 whether it is 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 the 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 (u32 BaseAddress)
 Looks up the device configuration based on the unique device ID/BaseAddress. More...
 

Variables

XUsbPsu_Config XUsbPsu_ConfigTable []
 Configuration table. More...