usb
Vitis Drivers API Documentation
|
Data Structures | |
struct | XUsb_EpConfig |
The XUsb_EpConfig structure is used to configure endpoints. More... | |
struct | XUsb_DeviceConfig |
The XUsb_DeviceConfig structure contains the configuration information to configure the USB controller for DEVICE mode. More... | |
struct | XUsb_Config |
The XUsb_Config structure contains configuration information for the USB controller. More... | |
struct | XUsb |
The XUsb driver instance data. More... | |
Macros | |
#define | XUSB_DMA_BRR_CTRL 0x40000000 |
DMA bufready ctrl bit. More... | |
#define | XUsb_ReadReg(BaseAddress, RegOffset) XUsb_In32((BaseAddress) + (RegOffset)) |
Read from the specified USB device register. More... | |
#define | XUsb_WriteReg(BaseAddress, RegOffset, RegisterValue) XUsb_Out32((BaseAddress) + (RegOffset), (RegisterValue)) |
Write to the specified USB device register. More... | |
Typedefs | |
typedef void(* | XUsb_EpHandlerFunc )(void *CallBackRef, u8 EpNum, u32 EventType) |
This data type defines the callback function to be used for Endpoint handlers. More... | |
typedef void(* | XUsb_IntrHandlerFunc )(void *CallBackRef, u32 InterruptType) |
This data type defines the callback function to be used for the general interrupt handler. More... | |
Functions | |
int | XUsb_CfgInitialize (XUsb *InstancePtr, XUsb_Config *ConfigPtr, UINTPTR EffectiveAddr) |
This function initializes a XUsb instance/driver. More... | |
int | XUsb_ConfigureDevice (XUsb *InstancePtr, XUsb_DeviceConfig *CfgPtr) |
This function initializes USB End points. More... | |
void | XUsb_Start (XUsb *InstancePtr) |
This function starts the USB Device. More... | |
void | XUsb_Stop (XUsb *InstancePtr) |
This function stops the USB device. More... | |
u32 | XUsb_GetFrameNum (const XUsb *InstancePtr) |
This function returns the current frame number. More... | |
int | XUsb_SetDeviceAddress (XUsb *InstancePtr, u8 Address) |
This function sets the USB device address. More... | |
void | XUsb_SetTestMode (XUsb *InstancePtr, u8 TestMode, u8 *BufPtr) |
This function sets the USB device into a given test mode. More... | |
void | XUsb_DmaReset (XUsb *InstancePtr) |
This function resets the DMA module of the USB device. More... | |
void | XUsb_DmaTransfer (XUsb *InstancePtr, UINTPTR *SrcAddr, UINTPTR *DstAddr, u16 Length) |
This function sets the DMA registers with the given values to initiate a DMA data transfer. More... | |
void | XUsb_ReadErrorCounters (XUsb *InstancePtr, u8 *BitStuffErrors, u8 *PidErrors, u8 *CrcErrors) |
This function reads the USB error counter register and returns the error counters information. More... | |
u8 | XUsb_UlpiPhyReadRegister (XUsb *InstancePtr, u8 RegAddr) |
This function initiates the USB ULPI PHY register read transaction. More... | |
int | XUsb_UlpiPhyWriteRegister (XUsb *InstancePtr, u8 RegAddr, u8 UlpiPhyRegData) |
This function initiates the USB ULPI PHY register write transaction. More... | |
void | XUsb_SieReset (XUsb *InstancePtr) |
This function resets the Serial Interface Engine. More... | |
void | XUsb_EpEnable (const XUsb *InstancePtr, u8 EpNum) |
This function enables the specified endpoint for all operations. More... | |
void | XUsb_EpDisable (const XUsb *InstancePtr, u8 EpNum) |
This function disables the specified endpoint for all operations. More... | |
void | XUsb_EpConfigure (XUsb *InstancePtr, u8 EpNum, XUsb_EpConfig *EpCfgPtr) |
This function configures a specific end point with the given configuration data. More... | |
int | XUsb_EpDataSend (XUsb *InstancePtr, u8 EpNum, u8 *BufferPtr, u32 BufferLen) |
This function copies the transmit data to the end point buffer and enables the buffer for transmission. More... | |
int | XUsb_EpDataRecv (XUsb *InstancePtr, u8 EpNum, u8 *BufferPtr, u32 BufferLen) |
This function copies the received data from end point buffer to the buffer passed and then makes the device ready for receiving data again into the same end point buffer. More... | |
void | XUsb_EpStall (const XUsb *InstancePtr, u8 EpNum) |
This function stalls operations for the specified endpoint. More... | |
void | XUsb_EpUnstall (const XUsb *InstancePtr, u8 EpNum) |
This function unstalls operations for the specified endpoint. More... | |
void | XUsb_EpIsoTransferConfigure (XUsb *InstancePtr, u8 EpNum, u8 NoOfTransfers) |
This function sets the number of isochronous transfers in a microframe for a given endpoint. More... | |
void | XUsb_IntrEnable (XUsb *InstancePtr, u32 Mask) |
This function enables the specified interrupts. More... | |
void | XUsb_IntrDisable (XUsb *InstancePtr, u32 Mask) |
This function disables the specified interrupts. More... | |
void | XUsb_IntrHandler (void *InstancePtr) |
This function is the interrupt handler for the USB driver. More... | |
void | XUsb_IntrSetHandler (XUsb *InstancePtr, void *CallBackFunc, void *CallBackRef) |
This function installs an asynchronous callback function for the general interrupt (interrupts other than the endpoint and error interrupts). More... | |
void | XUsb_EpSetHandler (XUsb *InstancePtr, u8 EpNum, XUsb_EpHandlerFunc *CallBackFunc, void *CallBackRef) |
This function sets the handler for endpoint events. More... | |
void | XUsb_ErrIntrSetHandler (XUsb *InstancePtr, void *CallBackFunc, void *CallBackRef) |
This function installs an asynchronous callback function for the error events. More... | |
void | XUsb_DmaIntrSetHandler (XUsb *InstancePtr, void *CallBackFunc, void *CallBackRef) |
This function installs an asynchronous callback function for the DMA events. More... | |
void | XUsb_UlpiIntrSetHandler (XUsb *InstancePtr, void *CallBackFunc, void *CallBackRef) |
This function installs an asynchronous callback function for the ULPI PHY events. More... | |
XUsb_Config * | XUsb_LookupConfig (u16 DeviceId) |
Looks up the device configuration based on the unique device ID. More... | |
Variables | |
XUsb_Config | XUsb_ConfigTable [XPAR_XUSB_NUM_INSTANCES] |
This table contains the configuration information for each of the USB devices in the system. More... | |
XUsb_Config | XUsb_ConfigTable [] |
This table contains the configuration information for each of the USB devices in the system. More... | |
Endpoint Direction | |
Definitions to be used with Endpoint related function that require a 'Direction' parameter. NOTE: The direction is always defined from the perspective of the HOST! This means that an IN endpoint on the device is used for sending data while the OUT endpoint on the device is used for receiving data. | |
#define | XUSB_EP_DIRECTION_IN 1 |
Endpoint direction IN. More... | |
#define | XUSB_EP_DIRECTION_OUT 0 |
Endpoint direction OUT. More... | |
Speed | |
#define | XUSB_EP_HIGH_SPEED 1 |
High Speed. More... | |
#define | XUSB_EP_FULL_SPEED 0 |
Full Speed. More... | |
USB device specific global configuration constants. | |
#define | XUSB_MAX_ENDPOINTS 8 |
Maximum End Points. More... | |
#define | XUSB_EP_NUMBER_ZERO 0 |
End point Zero. More... | |
#define | XUSB_DEVICEADDR_MAX 127 |
Max device address. More... | |
USB device disconnect state | |
#define | XUSB_DISCONNECTED 0x1 |
Disconnected state. More... | |
#define | XUSB_RESET 0x0 |
Reset State. More... | |
Test Modes (Set Feature) | |
#define | TEST_J 1 |
Chirp J Test. More... | |
#define | TEST_K 2 |
Chirp K Test. More... | |
#define | TEST_SE0_NAK 3 |
Chirp SE0 Test. More... | |
#define | TEST_PKT 4 |
Packet Test. More... | |
Register Map | |
#define | XUSB_EP0_CONFIG_OFFSET 0x0000 |
EP0 Config Reg Offset. More... | |
#define | XUSB_EP1_CONFIG_OFFSET 0x4000 |
EP1 Config Reg Offset. More... | |
#define | XUSB_SETUP_PKT_ADDR_OFFSET 0x0080 |
Setup Packet Address. More... | |
#define | XUSB_EP0_RAMBASE_OFFSET 0x0088 |
EP0 RAM buffer Register. More... | |
#define | XUSB_ADDRESS_OFFSET 0x0100 |
Address Register. More... | |
#define | XUSB_CONTROL_OFFSET 0x0104 |
Control Register. More... | |
#define | XUSB_STATUS_OFFSET 0x0108 |
Status Register. More... | |
#define | XUSB_FRAMENUM_OFFSET 0x010C |
Frame Number Register. More... | |
#define | XUSB_IER_OFFSET 0x0110 |
Interrupt Enable Reg. More... | |
#define | XUSB_BUFFREADY_OFFSET 0x0114 |
Buffer Ready Register. More... | |
#define | XUSB_TESTMODE_OFFSET 0x0118 |
Test Mode Register. More... | |
#define | XUSB_ECR_OFFSET 0x011C |
USB Error Count Reg. More... | |
#define | XUSB_UPAR_OFFSET 0x0120 |
USB ULPI PHY Access Reg. More... | |
#define | XUSB_DMA_RESET_OFFSET 0x0200 |
DMA Soft Reset Register. More... | |
#define | XUSB_DMA_CONTROL_OFFSET 0x0204 |
DMA Control Register. More... | |
#define | XUSB_DMA_DSAR_ADDR_OFFSET 0x0208 |
DMA source Address Reg. More... | |
#define | XUSB_DMA_DSAR_ADDR_OFFSET_LSB 0x0308 |
DMA source Address Reg for LSB. More... | |
#define | XUSB_DMA_DSAR_ADDR_OFFSET_MSB 0x030C |
DMA source Address Reg for MSB. More... | |
#define | XUSB_DMA_DDAR_ADDR_OFFSET 0x020C |
DMA destination Addr Reg. More... | |
#define | XUSB_DMA_DDAR_ADDR_OFFSET_LSB 0x0310 |
DMA destination Addr Reg LSB. More... | |
#define | XUSB_DMA_DDAR_ADDR_OFFSET_MSB 0x0314 |
DMA destination Addr Reg MSB. More... | |
#define | XUSB_DMA_LENGTH_OFFSET 0x0210 |
DMA Length Register. More... | |
#define | XUSB_DMA_STATUS_OFFSET 0x0214 |
DMA Status Register. More... | |
Address Register | |
#define | XUSB_ADDRESS_ADDR_MASK 0x7F |
Address Mask. More... | |
Control Register | |
#define | XUSB_CONTROL_USB_READY_MASK 0x80000000 |
USB ready Mask. More... | |
#define | XUSB_REMOTE_WAKEUP_MASK 0x40000000 |
Remote Wakeup Mask. More... | |
#define | XUSB_CONTROL_SIE_RESET_MASK 0x20000000 |
Soft Reset Mask. More... | |
Status Register and Interrupt Enable Register | |
This register holds the status flags for the USB device. Interrupt Enable Register This register is used to enable interrupt sources for the USB device. Writing a '1' to a bit in this register enables the corresponding Interrupt. Writing a '0' to a bit in this register disables the corresponding Interrupt. Both these registers have the same bit definitions and are only defined once. | |
#define | XUSB_STATUS_GLOBAL_INTR_MASK 0x80000000 |
Global Intr Enable. More... | |
#define | XUSB_STATUS_PHY_ACCESS_MASK 0x40000000 |
PHY access complete. More... | |
#define | XUSB_STATUS_BITSTUFF_ERR_MASK 0x20000000 |
USB Bit stuff error. More... | |
#define | XUSB_STATUS_PID_ERR_MASK 0x10000000 |
USB PID error. More... | |
#define | XUSB_STATUS_CRC_ERR_MASK 0x08000000 |
USB CRC error. More... | |
#define | XUSB_STATUS_DMA_DONE_MASK 0x04000000 |
DMA done. More... | |
#define | XUSB_STATUS_DMA_ERROR_MASK 0x02000000 |
DMA error. More... | |
#define | XUSB_STATUS_RESUME_MASK 0x01000000 |
USB resume Mask. More... | |
#define | XUSB_STATUS_RESET_MASK 0x00800000 |
USB Reset Mask. More... | |
#define | XUSB_STATUS_SUSPEND_MASK 0x00400000 |
USB Suspend Mask. More... | |
#define | XUSB_STATUS_DISCONNECT_MASK 0x00200000 |
USB Disconnect Mask. More... | |
#define | XUSB_STATUS_FIFO_BUFF_RDY_MASK 0x00100000 |
FIFO Buff Ready Mask. More... | |
#define | XUSB_STATUS_FIFO_BUFF_FREE_MASK 0x00080000 |
FIFO Buff Free Mask. More... | |
#define | XUSB_STATUS_SETUP_PACKET_MASK 0x00040000 |
Setup packet received. More... | |
#define | XUSB_STATUS_SOF_PACKET_MASK 0x00020000 |
SOF packet received. More... | |
#define | XUSB_STATUS_HIGH_SPEED_MASK 0x00010000 |
USB Speed Mask. More... | |
#define | XUSB_STATUS_EP7_BUFF2_COMP_MASK 0x00008000 |
EP 7 Buff 2 Processed. More... | |
#define | XUSB_STATUS_EP6_BUFF2_COMP_MASK 0x00004000 |
EP 6 Buff 2 Processed. More... | |
#define | XUSB_STATUS_EP5_BUFF2_COMP_MASK 0x00002000 |
EP 5 Buff 2 Processed. More... | |
#define | XUSB_STATUS_EP4_BUFF2_COMP_MASK 0x00001000 |
EP 4 Buff 2 Processed. More... | |
#define | XUSB_STATUS_EP3_BUFF2_COMP_MASK 0x00000800 |
EP 3 Buff 2 Processed. More... | |
#define | XUSB_STATUS_EP2_BUFF2_COMP_MASK 0x00000400 |
EP 2 Buff 2 Processed. More... | |
#define | XUSB_STATUS_EP1_BUFF2_COMP_MASK 0x00000200 |
EP 1 Buff 2 Processed. More... | |
#define | XUSB_STATUS_EP7_BUFF1_COMP_MASK 0x00000080 |
EP 7 Buff 1 Processed. More... | |
#define | XUSB_STATUS_EP6_BUFF1_COMP_MASK 0x00000040 |
EP 6 Buff 1 Processed. More... | |
#define | XUSB_STATUS_EP5_BUFF1_COMP_MASK 0x00000020 |
EP 5 Buff 1 Processed. More... | |
#define | XUSB_STATUS_EP4_BUFF1_COMP_MASK 0x00000010 |
EP 4 Buff 1 Processed. More... | |
#define | XUSB_STATUS_EP3_BUFF1_COMP_MASK 0x00000008 |
EP 3 Buff 1 Processed. More... | |
#define | XUSB_STATUS_EP2_BUFF1_COMP_MASK 0x00000004 |
EP 2 Buff 1 Processed. More... | |
#define | XUSB_STATUS_EP1_BUFF1_COMP_MASK 0x00000002 |
EP 1 Buff 1 Processed. More... | |
#define | XUSB_STATUS_EP0_BUFF1_COMP_MASK 0x00000001 |
EP 0 Buff 1 Processed. More... | |
#define | XUSB_STATUS_EP_BUFF2_SHIFT 8 |
EP buffer offset. More... | |
Frame Number Register | |
#define | XUSB_FRAMENUM_FRAME_MASK 0x00007FF8 |
Frame Number Mask. More... | |
#define | XUSB_FRAMENUM_MICRO_FRAME_MASK 0x00000007 |
Micro Frame Mask. More... | |
#define | XUSB_FRAMENUM_FRAME_SHIFT 0x3 |
Frame Number Shift. More... | |
Buffer Ready Register | |
#define | XUSB_BUFFREADY_EP7_BUFF2_MASK 0x00008000 |
EP 7 Buff 2 Ready. More... | |
#define | XUSB_BUFFREADY_EP6_BUFF2_MASK 0x00004000 |
EP 6 Buff 2 Ready. More... | |
#define | XUSB_BUFFREADY_EP5_BUFF2_MASK 0x00002000 |
EP 5 Buff 2 Ready. More... | |
#define | XUSB_BUFFREADY_EP4_BUFF2_MASK 0x00001000 |
EP 4 Buff 2 Ready. More... | |
#define | XUSB_BUFFREADY_EP3_BUFF2_MASK 0x00000800 |
EP 3 Buff 2 Ready. More... | |
#define | XUSB_BUFFREADY_EP2_BUFF2_MASK 0x00000400 |
EP 2 Buff 2 Ready. More... | |
#define | XUSB_BUFFREADY_EP1_BUFF2_MASK 0x00000200 |
EP 1 Buff 2 Ready. More... | |
#define | XUSB_BUFFREADY_EP7_BUFF1_MASK 0x00000080 |
EP 7 Buff 1 Ready. More... | |
#define | XUSB_BUFFREADY_EP6_BUFF1_MASK 0x00000040 |
EP 6 Buff 1 Ready. More... | |
#define | XUSB_BUFFREADY_EP5_BUFF1_MASK 0x00000020 |
EP 5 Buff 1 Ready. More... | |
#define | XUSB_BUFFREADY_EP4_BUFF1_MASK 0x00000010 |
EP 4 Buff 1 Ready. More... | |
#define | XUSB_BUFFREADY_EP3_BUFF1_MASK 0x00000008 |
EP 3 Buff 1 Ready. More... | |
#define | XUSB_BUFFREADY_EP2_BUFF1_MASK 0x00000004 |
EP 2 Buff 1 Ready. More... | |
#define | XUSB_BUFFREADY_EP1_BUFF1_MASK 0x00000002 |
EP 1 Buff 1 Ready. More... | |
#define | XUSB_BUFFREADY_EP0_BUFF_MASK 0x00000001 |
EP 0 Buffer Ready. More... | |
#define | XUSB_STATUS_INTR_EVENT_MASK |
#define | XUSB_STATUS_INTR_BUFF_COMP_ALL_MASK |
#define | XUSB_STATUS_DMA_EVENT_MASK |
#define | XUSB_STATUS_ERROR_EVENT_MASK |
#define | XUSB_STATUS_INTR_ALL_MASK 0xFFFFFEFF |
All Interrupts Mask. More... | |
Test Mode Register | |
#define | XUSB_TESTMODE_J_MASK 0x00000001 |
Test Mode J. More... | |
#define | XUSB_TESTMODE_K_MASK 0x00000002 |
Test Mode K. More... | |
#define | XUSB_TESTMODE_SE0_NAK_MASK 0x00000003 |
Test Mode SE0 NAK. More... | |
#define | XUSB_TESTMODE_TEST_PKT_MASK 0x00000004 |
Test Packet Mode. More... | |
Error Counter Register | |
#define | XUSB_ECR_BITSTUFF_ERRCNT_MASK 0xFF000000 |
Bit Stuff error counter. More... | |
#define | XUSB_ECR_PID_ERRCNT_MASK 0x00FF0000 |
PID error counter. More... | |
#define | XUSB_ECR_CRC_ERRCNT_MASK 0x0000FF00 |
CRC error counter. More... | |
#define | XUSB_ECR_BITSTUFF_ERRCNT_SHIFT 24 |
#define | XUSB_ECR_PID_ERRCNT_SHIFT 16 |
#define | XUSB_ECR_CRC_ERRCNT_SHIFT 8 |
ULPI PHY Access Register | |
#define | XUSB_UPAR_REG_DATA_MASK 0x0000FF00 |
PHY Data register. More... | |
#define | XUSB_UPAR_REG_ADDR_MASK 0x0000003F |
PHY Address register. More... | |
#define | XUSB_UPAR_READ_WRITE_MASK 0x00000040 |
PHY Read/Write Transaction selection bit. More... | |
#define | XUSB_UPAR_BUSY_MASK 0x80000000 |
PHY access enable. More... | |
#define | XUSB_UPAR_REG_DATA_SHIFT 8 |
Endpoint Configuration Space offsets | |
#define | XUSB_EP_CFGSTATUS_OFFSET 0x00 |
Endpoint Config Status. More... | |
#define | XUSB_EP_BUF0COUNT_OFFSET 0x08 |
Buffer 0 Count. More... | |
#define | XUSB_EP_BUF1COUNT_OFFSET 0x0C |
Buffer 1 Count. More... | |
Endpoint Configuration Status Register | |
#define | XUSB_EP_CFG_VALID_MASK 0x80000000 |
Endpoint Valid bit. More... | |
#define | XUSB_EP_CFG_STALL_MASK 0x40000000 |
Endpoint Stall bit. More... | |
#define | XUSB_EP_CFG_OUT_IN_MASK 0x20000000 |
Endpoint OUT/IN cfg. More... | |
#define | XUSB_EP_CFG_ISO_MASK 0x10000000 |
Endpoint ISO config. More... | |
#define | XUSB_EP_CFG_DATA_TOGGLE_MASK 0x08000000 |
Endpoint Data toggle. More... | |
#define | XUSB_EP_CFG_BUF_SELECT_MASK 0x04000000 |
Endpoint Buff Select. More... | |
#define | XUSB_EP_CFG_PACKET_SIZE_MASK 0x03ff8000 |
Endpoint Packet Size. More... | |
#define | XUBS_EP_CFG_ISOTRANS_MASK 0x00006000 |
Isochronous Transfer. More... | |
#define | XUSB_EP_CFG_BASE_MASK 0x00001fff |
Endpoint Base Mask. More... | |
#define | XUSB_EP_CFG_VALID_SHIFT 31 |
Endpoint Valid bit Shift. More... | |
#define | XUSB_EP_CFG_STALL_SHIFT 30 |
Endpoint Stall bit Shift. More... | |
#define | XUSB_EP_CFG_OUT_IN_SHIFT 29 |
Endpoint OUT/IN config. More... | |
#define | XUSB_EP_CFG_ISO_SHIFT 28 |
Endpoint ISO config Shft. More... | |
#define | XUSB_EP_CFG_DATA_TOGGLE_SHIFT 27 |
Endpoint Data toggle. More... | |
#define | XUSB_EP_CFG_BUF_SELECT_SHIFT 26 |
Endpoint Buf Select Shft. More... | |
#define | XUSB_EP_CFG_PACKET_SIZE_SHIFT 15 |
Endpoint Pkt Size Shift. More... | |
#define | XUSB_EP_CFG_ISOTRANS_SHIFT 13 |
Endpoint Isotrans Shift. More... | |
DMA Reset/Control and Status register bits | |
#define | XUSB_DMA_RESET_VALUE 0x0000000A |
DMA Reset value. More... | |
#define | XUSB_DMA_WRITE_TO_DPRAM 0 |
DPRAM is the destination address for DMA transfer. More... | |
#define | XUSB_DMA_READ_FROM_DPRAM 0x80000000 |
DPRAM is the source address for DMA transfer. More... | |
#define | XUSB_DMA_DMASR_BUSY 0x80000000 |
DMA busy. More... | |
#define | XUSB_DMA_DMASR_ERROR 0x40000000 |
DMA Error. More... | |
#define | XUSB_DMA_DMACR_DIR_MASK 0x80000000 |
DMA direction. More... | |
HSIC PHY Registers | |
User need not program HSIC PHY registers for normal operation. These are provided to test the PHY access only. | |
#define | XUSB_HSIC_CONTROL_REGISTER 0x28 |
HSIC Control Register. More... | |
#define | XUSB_HSIC_STATUS_REGISTER 0x29 |
HSIC Status Register. More... | |
#define | XUSB_HSIC_STROBE_REGISTER 0x2A |
HSIC Strobe Register. More... | |
#define | XUSB_HSIC_DATA_REGISTER 0x2B |
HSIC Data Register. More... | |
#define | XUSB_HSIC_CR_SOFTRESET_MASK 0x00000001 |
PHY Soft reset mask. More... | |
#define | XUSB_HSIC_CR_CONNECT_MASK 0x00000002 |
PHY issues connect mask. More... | |
#define | XUSB_HSIC_CR_REMOTEWKP_ENABLE_MASK 0x00000004 |
Enable Remote Wake-up signal forwarding to HSIC. More... | |
#define | XUSB_HSIC_SR_LINKSTATUS_MASK 0x00000003 |
Link Status. More... | |
#define | XUSB_HSIC_SR_VBUSSTATE_MASK 0x00000004 |
VBUS State. More... | |
#define | XUSB_HSIC_SR_CONNECT_MASK 0x00000008 |
Connect signaling issued from device to host. More... | |
#define | XUSB_HSIC_SR_CDERR_MASK 0x00000010 |
Carrier Detect Error. More... | |
#define | XUSB_HSIC_SR_FRAMEERR_MASK 0x00000020 |
Frame decoding Error. More... | |
#define | XUSB_HSIC_SR_TXFIFO_UNDERRUN_MASK 0x00000040 |
PHY Transmit FIFO underrun mask. More... | |
#define | XUSB_HSIC_SR_ELFIFO_OVERRUN_MASK 0x00000080 |
Elasticity FIFO overrun mask. More... | |
#define | XUSB_HSIC_STROBE_IDELAY_MASK 0x0000001F |
IDELAY value for HSIC strobe input for receive. More... | |
#define | XUSB_HSIC_STROBE_READY_MASK 0x00000020 |
IDELAY block ready mask. More... | |
#define | XUSB_HSIC_DATA_IDELAY_MASK 0x0000001F |
IDELAY value for HSIC data input for receive. More... | |
#define | XUSB_HSIC_DATA_READY_MASK 0x00000020 |
IDELAY block ready mask. More... | |
#define TEST_J 1 |
Chirp J Test.
Referenced by EP0ProcessInToken(), and XUsb_SetTestMode().
#define TEST_K 2 |
Chirp K Test.
Referenced by XUsb_SetTestMode().
#define TEST_PKT 4 |
Packet Test.
Referenced by XUsb_SetTestMode().
#define TEST_SE0_NAK 3 |
Chirp SE0 Test.
Referenced by XUsb_SetTestMode().
#define XUBS_EP_CFG_ISOTRANS_MASK 0x00006000 |
Isochronous Transfer.
#define XUSB_ADDRESS_ADDR_MASK 0x7F |
Address Mask.
#define XUSB_ADDRESS_OFFSET 0x0100 |
Address Register.
Referenced by XUsb_SetDeviceAddress().
#define XUSB_BUFFREADY_EP0_BUFF_MASK 0x00000001 |
EP 0 Buffer Ready.
Referenced by Ep0IntrHandler().
#define XUSB_BUFFREADY_EP1_BUFF1_MASK 0x00000002 |
EP 1 Buff 1 Ready.
Referenced by Ep1IntrHandler().
#define XUSB_BUFFREADY_EP1_BUFF2_MASK 0x00000200 |
EP 1 Buff 2 Ready.
Referenced by Ep1IntrHandler().
#define XUSB_BUFFREADY_EP2_BUFF1_MASK 0x00000004 |
EP 2 Buff 1 Ready.
Referenced by Ep2IntrHandler().
#define XUSB_BUFFREADY_EP2_BUFF2_MASK 0x00000400 |
EP 2 Buff 2 Ready.
Referenced by Ep2IntrHandler().
#define XUSB_BUFFREADY_EP3_BUFF1_MASK 0x00000008 |
EP 3 Buff 1 Ready.
#define XUSB_BUFFREADY_EP3_BUFF2_MASK 0x00000800 |
EP 3 Buff 2 Ready.
#define XUSB_BUFFREADY_EP4_BUFF1_MASK 0x00000010 |
EP 4 Buff 1 Ready.
#define XUSB_BUFFREADY_EP4_BUFF2_MASK 0x00001000 |
EP 4 Buff 2 Ready.
#define XUSB_BUFFREADY_EP5_BUFF1_MASK 0x00000020 |
EP 5 Buff 1 Ready.
#define XUSB_BUFFREADY_EP5_BUFF2_MASK 0x00002000 |
EP 5 Buff 2 Ready.
#define XUSB_BUFFREADY_EP6_BUFF1_MASK 0x00000040 |
EP 6 Buff 1 Ready.
#define XUSB_BUFFREADY_EP6_BUFF2_MASK 0x00004000 |
EP 6 Buff 2 Ready.
#define XUSB_BUFFREADY_EP7_BUFF1_MASK 0x00000080 |
EP 7 Buff 1 Ready.
#define XUSB_BUFFREADY_EP7_BUFF2_MASK 0x00008000 |
EP 7 Buff 2 Ready.
#define XUSB_BUFFREADY_OFFSET 0x0114 |
Buffer Ready Register.
Referenced by Ep0IntrHandler(), EP0ProcessInToken(), EP0ProcessOutToken(), GetConfiguration(), GetInterface(), GetMaxLUN(), GetStatus(), InitUsbInterface(), LoadEP0(), SetConfiguration(), SetupControlWriteStatusStage(), XUsb_EpConfigure(), XUsb_EpDataRecv(), and XUsb_EpDataSend().
#define XUSB_CONTROL_OFFSET 0x0104 |
Control Register.
Referenced by XUsb_SieReset(), XUsb_Start(), and XUsb_Stop().
#define XUSB_CONTROL_SIE_RESET_MASK 0x20000000 |
Soft Reset Mask.
Referenced by XUsb_SieReset().
#define XUSB_CONTROL_USB_READY_MASK 0x80000000 |
USB ready Mask.
Referenced by XUsb_Start(), and XUsb_Stop().
#define XUSB_DEVICEADDR_MAX 127 |
Max device address.
Referenced by XUsb_SetDeviceAddress().
#define XUSB_DISCONNECTED 0x1 |
Disconnected state.
Referenced by DmaIntrHandler(), ProcessRxCmd(), Read10(), and Write10().
#define XUSB_DMA_BRR_CTRL 0x40000000 |
DMA bufready ctrl bit.
Referenced by XUsb_EpDataRecv(), and XUsb_EpDataSend().
#define XUSB_DMA_CONTROL_OFFSET 0x0204 |
DMA Control Register.
Referenced by XUsb_EpDataRecv(), and XUsb_EpDataSend().
#define XUSB_DMA_DDAR_ADDR_OFFSET 0x020C |
DMA destination Addr Reg.
Referenced by XUsb_DmaTransfer().
#define XUSB_DMA_DDAR_ADDR_OFFSET_LSB 0x0310 |
DMA destination Addr Reg LSB.
Referenced by XUsb_DmaTransfer().
#define XUSB_DMA_DDAR_ADDR_OFFSET_MSB 0x0314 |
DMA destination Addr Reg MSB.
Referenced by XUsb_DmaTransfer().
#define XUSB_DMA_DMACR_DIR_MASK 0x80000000 |
DMA direction.
#define XUSB_DMA_DMASR_BUSY 0x80000000 |
DMA busy.
Referenced by Ep1IntrHandler(), Ep2IntrHandler(), main(), ProcessRxCmd(), Read10(), and Write10().
#define XUSB_DMA_DMASR_ERROR 0x40000000 |
DMA Error.
#define XUSB_DMA_DSAR_ADDR_OFFSET 0x0208 |
DMA source Address Reg.
Referenced by XUsb_DmaTransfer().
#define XUSB_DMA_DSAR_ADDR_OFFSET_LSB 0x0308 |
DMA source Address Reg for LSB.
Referenced by XUsb_DmaTransfer().
#define XUSB_DMA_DSAR_ADDR_OFFSET_MSB 0x030C |
DMA source Address Reg for MSB.
Referenced by XUsb_DmaTransfer().
#define XUSB_DMA_LENGTH_OFFSET 0x0210 |
DMA Length Register.
Referenced by XUsb_DmaTransfer().
#define XUSB_DMA_READ_FROM_DPRAM 0x80000000 |
DPRAM is the source address for DMA transfer.
Referenced by XUsb_EpDataRecv().
#define XUSB_DMA_RESET_OFFSET 0x0200 |
DMA Soft Reset Register.
Referenced by XUsb_DmaReset().
#define XUSB_DMA_RESET_VALUE 0x0000000A |
DMA Reset value.
Referenced by XUsb_DmaReset().
#define XUSB_DMA_STATUS_OFFSET 0x0214 |
DMA Status Register.
Referenced by Ep1IntrHandler(), Ep2IntrHandler(), main(), ProcessRxCmd(), Read10(), and Write10().
#define XUSB_DMA_WRITE_TO_DPRAM 0 |
DPRAM is the destination address for DMA transfer.
#define XUSB_ECR_BITSTUFF_ERRCNT_MASK 0xFF000000 |
Bit Stuff error counter.
Referenced by XUsb_ReadErrorCounters().
#define XUSB_ECR_CRC_ERRCNT_MASK 0x0000FF00 |
CRC error counter.
Referenced by XUsb_ReadErrorCounters().
#define XUSB_ECR_OFFSET 0x011C |
USB Error Count Reg.
Referenced by XUsb_ReadErrorCounters().
#define XUSB_ECR_PID_ERRCNT_MASK 0x00FF0000 |
PID error counter.
Referenced by XUsb_ReadErrorCounters().
#define XUSB_EP0_CONFIG_OFFSET 0x0000 |
EP0 Config Reg Offset.
Referenced by XUsb_CfgInitialize().
#define XUSB_EP0_RAMBASE_OFFSET 0x0088 |
EP0 RAM buffer Register.
#define XUSB_EP1_CONFIG_OFFSET 0x4000 |
EP1 Config Reg Offset.
#define XUSB_EP_BUF0COUNT_OFFSET 0x08 |
Buffer 0 Count.
Referenced by EP0ProcessInToken(), EP0ProcessOutToken(), Ep1IntrHandler(), GetConfiguration(), GetInterface(), GetMaxLUN(), GetStatus(), LoadEP0(), SetupControlWriteStatusStage(), XUsb_EpConfigure(), and XUsb_EpDataSend().
#define XUSB_EP_BUF1COUNT_OFFSET 0x0C |
Buffer 1 Count.
Referenced by Ep1IntrHandler(), XUsb_EpConfigure(), and XUsb_EpDataSend().
#define XUSB_EP_CFG_BASE_MASK 0x00001fff |
Endpoint Base Mask.
#define XUSB_EP_CFG_BUF_SELECT_MASK 0x04000000 |
Endpoint Buff Select.
#define XUSB_EP_CFG_BUF_SELECT_SHIFT 26 |
Endpoint Buf Select Shft.
#define XUSB_EP_CFG_DATA_TOGGLE_MASK 0x08000000 |
Endpoint Data toggle.
Referenced by Ep0IntrHandler(), EP0ProcessInToken(), SetClearFeature(), and SetupControlWriteStatusStage().
#define XUSB_EP_CFG_DATA_TOGGLE_SHIFT 27 |
Endpoint Data toggle.
#define XUSB_EP_CFG_ISO_MASK 0x10000000 |
Endpoint ISO config.
#define XUSB_EP_CFG_ISO_SHIFT 28 |
Endpoint ISO config Shft.
Referenced by XUsb_EpConfigure().
#define XUSB_EP_CFG_ISOTRANS_SHIFT 13 |
Endpoint Isotrans Shift.
Referenced by XUsb_EpIsoTransferConfigure().
#define XUSB_EP_CFG_OUT_IN_MASK 0x20000000 |
Endpoint OUT/IN cfg.
#define XUSB_EP_CFG_OUT_IN_SHIFT 29 |
Endpoint OUT/IN config.
Referenced by XUsb_EpConfigure().
#define XUSB_EP_CFG_PACKET_SIZE_MASK 0x03ff8000 |
Endpoint Packet Size.
#define XUSB_EP_CFG_PACKET_SIZE_SHIFT 15 |
Endpoint Pkt Size Shift.
Referenced by XUsb_EpConfigure().
#define XUSB_EP_CFG_STALL_MASK 0x40000000 |
Endpoint Stall bit.
Referenced by GetStatus(), XUsb_EpStall(), and XUsb_EpUnstall().
#define XUSB_EP_CFG_STALL_SHIFT 30 |
Endpoint Stall bit Shift.
Referenced by GetStatus().
#define XUSB_EP_CFG_VALID_MASK 0x80000000 |
Endpoint Valid bit.
Referenced by XUsb_EpDisable(), and XUsb_EpEnable().
#define XUSB_EP_CFG_VALID_SHIFT 31 |
Endpoint Valid bit Shift.
#define XUSB_EP_CFGSTATUS_OFFSET 0x00 |
Endpoint Config Status.
#define XUSB_EP_DIRECTION_IN 1 |
Endpoint direction IN.
Referenced by InitUsbInterface().
#define XUSB_EP_DIRECTION_OUT 0 |
Endpoint direction OUT.
Referenced by InitUsbInterface(), and SetConfiguration().
#define XUSB_EP_FULL_SPEED 0 |
Full Speed.
Referenced by XUsb_CfgInitialize(), and XUsb_IntrHandler().
#define XUSB_EP_HIGH_SPEED 1 |
High Speed.
Referenced by Ep1IntrHandler(), GetDescriptor(), main(), Read10(), ReadTransfer(), Write10(), WriteTransfer(), and XUsb_IntrHandler().
#define XUSB_EP_NUMBER_ZERO 0 |
End point Zero.
Referenced by XUsb_IntrHandler().
#define XUSB_FRAMENUM_FRAME_MASK 0x00007FF8 |
Frame Number Mask.
#define XUSB_FRAMENUM_FRAME_SHIFT 0x3 |
Frame Number Shift.
#define XUSB_FRAMENUM_MICRO_FRAME_MASK 0x00000007 |
Micro Frame Mask.
#define XUSB_FRAMENUM_OFFSET 0x010C |
Frame Number Register.
Referenced by XUsb_GetFrameNum().
#define XUSB_HSIC_CONTROL_REGISTER 0x28 |
HSIC Control Register.
#define XUSB_HSIC_CR_CONNECT_MASK 0x00000002 |
PHY issues connect mask.
#define XUSB_HSIC_CR_REMOTEWKP_ENABLE_MASK 0x00000004 |
Enable Remote Wake-up signal forwarding to HSIC.
#define XUSB_HSIC_CR_SOFTRESET_MASK 0x00000001 |
PHY Soft reset mask.
#define XUSB_HSIC_DATA_IDELAY_MASK 0x0000001F |
IDELAY value for HSIC data input for receive.
#define XUSB_HSIC_DATA_READY_MASK 0x00000020 |
IDELAY block ready mask.
#define XUSB_HSIC_DATA_REGISTER 0x2B |
HSIC Data Register.
#define XUSB_HSIC_SR_CDERR_MASK 0x00000010 |
Carrier Detect Error.
#define XUSB_HSIC_SR_CONNECT_MASK 0x00000008 |
Connect signaling issued from device to host.
#define XUSB_HSIC_SR_ELFIFO_OVERRUN_MASK 0x00000080 |
Elasticity FIFO overrun mask.
#define XUSB_HSIC_SR_FRAMEERR_MASK 0x00000020 |
Frame decoding Error.
#define XUSB_HSIC_SR_LINKSTATUS_MASK 0x00000003 |
Link Status.
#define XUSB_HSIC_SR_TXFIFO_UNDERRUN_MASK 0x00000040 |
PHY Transmit FIFO underrun mask.
#define XUSB_HSIC_SR_VBUSSTATE_MASK 0x00000004 |
VBUS State.
#define XUSB_HSIC_STATUS_REGISTER 0x29 |
HSIC Status Register.
#define XUSB_HSIC_STROBE_IDELAY_MASK 0x0000001F |
IDELAY value for HSIC strobe input for receive.
#define XUSB_HSIC_STROBE_READY_MASK 0x00000020 |
IDELAY block ready mask.
#define XUSB_HSIC_STROBE_REGISTER 0x2A |
HSIC Strobe Register.
#define XUSB_IER_OFFSET 0x0110 |
Interrupt Enable Reg.
Referenced by XUsb_IntrDisable(), XUsb_IntrEnable(), and XUsb_IntrHandler().
#define XUSB_MAX_ENDPOINTS 8 |
Maximum End Points.
Referenced by XUsb_CfgInitialize(), XUsb_EpConfigure(), XUsb_EpDataRecv(), XUsb_EpDataSend(), XUsb_EpDisable(), XUsb_EpEnable(), XUsb_EpIsoTransferConfigure(), XUsb_EpStall(), and XUsb_EpUnstall().
#define XUsb_ReadReg | ( | BaseAddress, | |
RegOffset | |||
) | XUsb_In32((BaseAddress) + (RegOffset)) |
Read from the specified USB device register.
BaseAddress | contains the base address of the device. |
RegOffset | contains the offset from the 1st register of the device to select the specific register. |
Referenced by Ep0IntrHandler(), EP0ProcessInToken(), EP0ProcessOutToken(), Ep1IntrHandler(), Ep2IntrHandler(), GetStatus(), main(), ProcessRxCmd(), Read10(), SetClearFeature(), SetupControlWriteStatusStage(), Write10(), XUsb_EpDisable(), XUsb_EpEnable(), XUsb_EpIsoTransferConfigure(), XUsb_EpStall(), XUsb_EpUnstall(), XUsb_GetFrameNum(), XUsb_IntrDisable(), XUsb_IntrEnable(), XUsb_IntrHandler(), XUsb_ReadErrorCounters(), XUsb_SieReset(), XUsb_Stop(), XUsb_UlpiPhyReadRegister(), and XUsb_UlpiPhyWriteRegister().
#define XUSB_REMOTE_WAKEUP_MASK 0x40000000 |
Remote Wakeup Mask.
#define XUSB_RESET 0x0 |
Reset State.
Referenced by InitUsbInterface(), and UsbIfIntrHandler().
#define XUSB_SETUP_PKT_ADDR_OFFSET 0x0080 |
Setup Packet Address.
Referenced by Chapter9().
#define XUSB_STATUS_BITSTUFF_ERR_MASK 0x20000000 |
USB Bit stuff error.
#define XUSB_STATUS_CRC_ERR_MASK 0x08000000 |
USB CRC error.
#define XUSB_STATUS_DISCONNECT_MASK 0x00200000 |
USB Disconnect Mask.
Referenced by Ep0IntrHandler(), main(), UsbIfIntrHandler(), UsbKbdExample(), and UsbMouseExample().
#define XUSB_STATUS_DMA_DONE_MASK 0x04000000 |
DMA done.
Referenced by DmaIntrHandler().
#define XUSB_STATUS_DMA_ERROR_MASK 0x02000000 |
DMA error.
Referenced by DmaIntrHandler().
#define XUSB_STATUS_EP0_BUFF1_COMP_MASK 0x00000001 |
EP 0 Buff 1 Processed.
Referenced by main(), UsbKbdExample(), UsbMouseExample(), and XUsb_IntrHandler().
#define XUSB_STATUS_EP1_BUFF1_COMP_MASK 0x00000002 |
EP 1 Buff 1 Processed.
Referenced by main(), UsbKbdExample(), UsbMouseExample(), and XUsb_IntrHandler().
#define XUSB_STATUS_EP1_BUFF2_COMP_MASK 0x00000200 |
EP 1 Buff 2 Processed.
Referenced by main(), UsbKbdExample(), UsbMouseExample(), and XUsb_IntrHandler().
#define XUSB_STATUS_EP2_BUFF1_COMP_MASK 0x00000004 |
EP 2 Buff 1 Processed.
Referenced by main().
#define XUSB_STATUS_EP2_BUFF2_COMP_MASK 0x00000400 |
EP 2 Buff 2 Processed.
Referenced by main().
#define XUSB_STATUS_EP3_BUFF1_COMP_MASK 0x00000008 |
EP 3 Buff 1 Processed.
#define XUSB_STATUS_EP3_BUFF2_COMP_MASK 0x00000800 |
EP 3 Buff 2 Processed.
#define XUSB_STATUS_EP4_BUFF1_COMP_MASK 0x00000010 |
EP 4 Buff 1 Processed.
#define XUSB_STATUS_EP4_BUFF2_COMP_MASK 0x00001000 |
EP 4 Buff 2 Processed.
#define XUSB_STATUS_EP5_BUFF1_COMP_MASK 0x00000020 |
EP 5 Buff 1 Processed.
#define XUSB_STATUS_EP5_BUFF2_COMP_MASK 0x00002000 |
EP 5 Buff 2 Processed.
#define XUSB_STATUS_EP6_BUFF1_COMP_MASK 0x00000040 |
EP 6 Buff 1 Processed.
#define XUSB_STATUS_EP6_BUFF2_COMP_MASK 0x00004000 |
EP 6 Buff 2 Processed.
#define XUSB_STATUS_EP7_BUFF1_COMP_MASK 0x00000080 |
EP 7 Buff 1 Processed.
#define XUSB_STATUS_EP7_BUFF2_COMP_MASK 0x00008000 |
EP 7 Buff 2 Processed.
#define XUSB_STATUS_EP_BUFF2_SHIFT 8 |
EP buffer offset.
Referenced by InitUsbInterface(), SetConfiguration(), XUsb_EpConfigure(), XUsb_EpDataRecv(), and XUsb_EpDataSend().
#define XUSB_STATUS_FIFO_BUFF_FREE_MASK 0x00080000 |
FIFO Buff Free Mask.
Referenced by Ep0IntrHandler(), main(), UsbKbdExample(), and UsbMouseExample().
#define XUSB_STATUS_FIFO_BUFF_RDY_MASK 0x00100000 |
FIFO Buff Ready Mask.
Referenced by Ep0IntrHandler(), main(), UsbKbdExample(), and UsbMouseExample().
#define XUSB_STATUS_GLOBAL_INTR_MASK 0x80000000 |
Global Intr Enable.
Referenced by main(), UsbKbdExample(), and UsbMouseExample().
#define XUSB_STATUS_HIGH_SPEED_MASK 0x00010000 |
USB Speed Mask.
Referenced by XUsb_IntrHandler().
#define XUSB_STATUS_INTR_ALL_MASK 0xFFFFFEFF |
All Interrupts Mask.
Referenced by XUsb_IntrDisable(), and XUsb_IntrEnable().
#define XUSB_STATUS_OFFSET 0x0108 |
Status Register.
Referenced by Ep2IntrHandler(), main(), and XUsb_IntrHandler().
#define XUSB_STATUS_PHY_ACCESS_MASK 0x40000000 |
PHY access complete.
Referenced by main(), UsbIfPhyIntrHandler(), and XUsb_IntrHandler().
#define XUSB_STATUS_PID_ERR_MASK 0x10000000 |
USB PID error.
#define XUSB_STATUS_RESET_MASK 0x00800000 |
USB Reset Mask.
Referenced by Ep0IntrHandler(), main(), UsbIfIntrHandler(), UsbKbdExample(), and UsbMouseExample().
#define XUSB_STATUS_RESUME_MASK 0x01000000 |
USB resume Mask.
#define XUSB_STATUS_SETUP_PACKET_MASK 0x00040000 |
Setup packet received.
Referenced by Ep0IntrHandler().
#define XUSB_STATUS_SOF_PACKET_MASK 0x00020000 |
SOF packet received.
#define XUSB_STATUS_SUSPEND_MASK 0x00400000 |
USB Suspend Mask.
Referenced by Ep0IntrHandler(), main(), UsbIfIntrHandler(), UsbKbdExample(), and UsbMouseExample().
#define XUSB_TESTMODE_J_MASK 0x00000001 |
Test Mode J.
#define XUSB_TESTMODE_K_MASK 0x00000002 |
Test Mode K.
#define XUSB_TESTMODE_OFFSET 0x0118 |
Test Mode Register.
Referenced by XUsb_SetTestMode().
#define XUSB_TESTMODE_SE0_NAK_MASK 0x00000003 |
Test Mode SE0 NAK.
#define XUSB_TESTMODE_TEST_PKT_MASK 0x00000004 |
Test Packet Mode.
#define XUSB_UPAR_BUSY_MASK 0x80000000 |
PHY access enable.
Referenced by XUsb_UlpiPhyReadRegister(), and XUsb_UlpiPhyWriteRegister().
#define XUSB_UPAR_OFFSET 0x0120 |
USB ULPI PHY Access Reg.
Referenced by XUsb_UlpiPhyReadRegister(), and XUsb_UlpiPhyWriteRegister().
#define XUSB_UPAR_READ_WRITE_MASK 0x00000040 |
PHY Read/Write Transaction selection bit.
Referenced by XUsb_UlpiPhyWriteRegister().
#define XUSB_UPAR_REG_ADDR_MASK 0x0000003F |
PHY Address register.
#define XUSB_UPAR_REG_DATA_MASK 0x0000FF00 |
PHY Data register.
Referenced by XUsb_UlpiPhyReadRegister().
#define XUsb_WriteReg | ( | BaseAddress, | |
RegOffset, | |||
RegisterValue | |||
) | XUsb_Out32((BaseAddress) + (RegOffset), (RegisterValue)) |
Write to the specified USB device register.
BaseAddress | contains the base address of the device. |
RegOffset | contains the offset from the 1st register of the device to select the specific register. |
RegisterValue | is the value to be written to the register. |
Referenced by Ep0IntrHandler(), EP0ProcessInToken(), EP0ProcessOutToken(), GetConfiguration(), GetInterface(), GetMaxLUN(), GetStatus(), InitUsbInterface(), LoadEP0(), SetClearFeature(), SetConfiguration(), SetupControlWriteStatusStage(), UsbIfIntrHandler(), XUsb_DmaReset(), XUsb_DmaTransfer(), XUsb_EpConfigure(), XUsb_EpDataRecv(), XUsb_EpDataSend(), XUsb_EpDisable(), XUsb_EpEnable(), XUsb_EpIsoTransferConfigure(), XUsb_EpStall(), XUsb_EpUnstall(), XUsb_IntrDisable(), XUsb_IntrEnable(), XUsb_SetDeviceAddress(), XUsb_SetTestMode(), XUsb_SieReset(), XUsb_Start(), XUsb_Stop(), XUsb_UlpiPhyReadRegister(), and XUsb_UlpiPhyWriteRegister().
typedef void(* XUsb_EpHandlerFunc)(void *CallBackRef, u8 EpNum, u32 EventType) |
This data type defines the callback function to be used for Endpoint handlers.
CallBackRef | is the Callback reference passed in by the upper layer when setting the handler, and is passed back to the upper layer when the handler is called. |
EpNum | is the endpoint that caused the event. |
EventType | is the type of the event that occurred on that endpoint. |
typedef void(* XUsb_IntrHandlerFunc)(void *CallBackRef, u32 InterruptType) |
This data type defines the callback function to be used for the general interrupt handler.
CallBackRef | is the Callback reference passed in by the upper layer when setting the handler, and is passed back to the upper layer when the handler is called. |
InterruptType | is the type of the event that caused the interrupt. |
int XUsb_CfgInitialize | ( | XUsb * | InstancePtr, |
XUsb_Config * | ConfigPtr, | ||
UINTPTR | EffectiveAddr | ||
) |
This function initializes a XUsb instance/driver.
Setup / Initialize and DMA functions.
The initialization entails:
InstancePtr | is a pointer to the XUsb instance of the USB device. |
ConfigPtr | is a pointer to a XUsb_Config configuration structure. This structure will contain the requested configuration for the device. Typically, this is a local structure and the content of which will be copied into the configuration structure within XUsb. |
EffectiveAddr | is the device base address in the virtual memory address space. If the address translation is not used then the physical address is passed. Unexpected errors may occur if the address mapping is changed after this function is invoked. |
Implemented in the file xusb.c
References XUsb_Config::AddrWidth, XUsb_Config::BaseAddress, XUsb::Config, XUsb_DeviceConfig::CurrentSpeed, XUsb::DeviceConfig, XUsb_Config::DeviceId, XUsb_Config::DmaEnabled, XUsb::EndPointOffset, XUsb::HandlerFunc, XUsb::IsReady, XUsb_DeviceConfig::NumEndpoints, XUSB_EP0_CONFIG_OFFSET, XUSB_EP_FULL_SPEED, and XUSB_MAX_ENDPOINTS.
Referenced by main(), UsbKbdExample(), and UsbMouseExample().
int XUsb_ConfigureDevice | ( | XUsb * | InstancePtr, |
XUsb_DeviceConfig * | CfgPtr | ||
) |
This function initializes USB End points.
InstancePtr | is a pointer to the XUsb instance. |
CfgPtr | is pointer to a XUsb_Config configuration structure. This structure will contain the requested configuration for the device. Typically, this is a local structure and the content of which will be copied into the configuration structure within XUsb. |
References XUsb_EpConfig::Buffer0Count, XUsb_EpConfig::Buffer0Ready, XUsb_EpConfig::Buffer1Count, XUsb_EpConfig::Buffer1Ready, XUsb_EpConfig::CurBufNum, XUsb::DeviceConfig, XUsb_DeviceConfig::Ep, XUsb_EpConfig::EpType, XUsb_DeviceConfig::NumEndpoints, XUsb_EpConfig::OutIn, XUsb_EpConfig::RamBase, XUsb_EpConfig::Size, and XUsb_EpConfigure().
Referenced by InitUsbInterface().
void XUsb_DmaIntrSetHandler | ( | XUsb * | InstancePtr, |
void * | CallBackFunc, | ||
void * | CallBackRef | ||
) |
This function installs an asynchronous callback function for the DMA events.
InstancePtr | is a pointer to the XUsb instance. |
CallBackFunc | is the address of the callback function. |
CallBackRef | is a user data item that will be passed to the callback function when it is invoked. |
References XUsb::IsReady.
Referenced by main().
void XUsb_DmaReset | ( | XUsb * | InstancePtr | ) |
This function resets the DMA module of the USB device.
InstancePtr | is a pointer to the XUsb instance. |
References XUsb_Config::BaseAddress, XUsb::Config, XUSB_DMA_RESET_OFFSET, XUSB_DMA_RESET_VALUE, and XUsb_WriteReg.
void XUsb_DmaTransfer | ( | XUsb * | InstancePtr, |
UINTPTR * | SrcAddr, | ||
UINTPTR * | DstAddr, | ||
u16 | Length | ||
) |
This function sets the DMA registers with the given values to initiate a DMA data transfer.
This function is called by the XUsb_EpDataSend and XUsb_EpDataRecv functions.
InstancePtr | is a pointer to the XUsb instance. |
SrcAddr | is the source address from where the data is to be read. |
DstAddr | is the destination address to where the data is to be written. |
Length | is the amount of data that can be transferred. The maximum data transfer can be 1024. |
References XUsb_Config::AddrWidth, XUsb_Config::BaseAddress, XUsb::Config, XUSB_DMA_DDAR_ADDR_OFFSET, XUSB_DMA_DDAR_ADDR_OFFSET_LSB, XUSB_DMA_DDAR_ADDR_OFFSET_MSB, XUSB_DMA_DSAR_ADDR_OFFSET, XUSB_DMA_DSAR_ADDR_OFFSET_LSB, XUSB_DMA_DSAR_ADDR_OFFSET_MSB, XUSB_DMA_LENGTH_OFFSET, and XUsb_WriteReg.
Referenced by XUsb_EpDataRecv(), and XUsb_EpDataSend().
void XUsb_EpConfigure | ( | XUsb * | InstancePtr, |
u8 | EpNum, | ||
XUsb_EpConfig * | EpCfgPtr | ||
) |
This function configures a specific end point with the given configuration data.
InstancePtr | is a pointer to the XUsb instance. |
EpNum | is the endpoint number which has to be configured. |
EpCfgPtr | is a pointer to the endpoint configuration structure. |
References XUsb_Config::BaseAddress, XUsb_EpConfig::Buffer0Count, XUsb_EpConfig::Buffer0Ready, XUsb_EpConfig::Buffer1Count, XUsb_EpConfig::Buffer1Ready, XUsb::Config, XUsb::EndPointOffset, XUsb_EpConfig::EpType, XUsb_EpConfig::OutIn, XUsb_EpConfig::RamBase, XUsb_EpConfig::Size, XUSB_BUFFREADY_OFFSET, XUSB_EP_BUF0COUNT_OFFSET, XUSB_EP_BUF1COUNT_OFFSET, XUSB_EP_CFG_ISO_SHIFT, XUSB_EP_CFG_OUT_IN_SHIFT, XUSB_EP_CFG_PACKET_SIZE_SHIFT, XUSB_MAX_ENDPOINTS, XUSB_STATUS_EP_BUFF2_SHIFT, and XUsb_WriteReg.
Referenced by XUsb_ConfigureDevice().
int XUsb_EpDataRecv | ( | XUsb * | InstancePtr, |
u8 | EpNum, | ||
u8 * | BufferPtr, | ||
u32 | BufferLen | ||
) |
This function copies the received data from end point buffer to the buffer passed and then makes the device ready for receiving data again into the same end point buffer.
InstancePtr | is a pointer to the XUsb instance. |
EpNum | is the endpoint number. |
BufferPtr | is a pointer to buffer where data is to be copied. |
BufferLen | is the number of data bytes to be received. |
References XUsb_Config::BaseAddress, XUsb_EpConfig::Buffer0Ready, XUsb_EpConfig::Buffer1Ready, XUsb::Config, XUsb_EpConfig::CurBufNum, XUsb::DeviceConfig, XUsb_Config::DmaEnabled, XUsb_DeviceConfig::Ep, XUsb::IsReady, XUSB_BUFFREADY_OFFSET, XUSB_DMA_BRR_CTRL, XUSB_DMA_CONTROL_OFFSET, XUSB_DMA_READ_FROM_DPRAM, XUsb_DmaTransfer(), XUSB_MAX_ENDPOINTS, XUSB_STATUS_EP_BUFF2_SHIFT, and XUsb_WriteReg.
Referenced by Ep2IntrHandler(), main(), Write10(), and WriteTransfer().
int XUsb_EpDataSend | ( | XUsb * | InstancePtr, |
u8 | EpNum, | ||
u8 * | BufferPtr, | ||
u32 | BufferLen | ||
) |
This function copies the transmit data to the end point buffer and enables the buffer for transmission.
InstancePtr | is a pointer to the XUsb instance. |
EpNum | is the endpoint number. |
BufferPtr | is a pointer to buffer containing the data to be sent. |
BufferLen | is the number of data bytes to be sent. |
References XUsb_Config::BaseAddress, XUsb_EpConfig::Buffer0Ready, XUsb_EpConfig::Buffer1Ready, XUsb::Config, XUsb_EpConfig::CurBufNum, XUsb::DeviceConfig, XUsb_Config::DmaEnabled, XUsb::EndPointOffset, XUsb_DeviceConfig::Ep, XUsb::IsReady, XUSB_BUFFREADY_OFFSET, XUSB_DMA_BRR_CTRL, XUSB_DMA_CONTROL_OFFSET, XUsb_DmaTransfer(), XUSB_EP_BUF0COUNT_OFFSET, XUSB_EP_BUF1COUNT_OFFSET, XUSB_MAX_ENDPOINTS, XUSB_STATUS_EP_BUFF2_SHIFT, and XUsb_WriteReg.
Referenced by DmaIntrHandler(), Ep1IntrHandler(), Ep2IntrHandler(), GpioIsr(), main(), ProcessRxCmd(), Read10(), ReadTransfer(), and WriteTransfer().
void XUsb_EpDisable | ( | const XUsb * | InstancePtr, |
u8 | EpNum | ||
) |
This function disables the specified endpoint for all operations.
InstancePtr | is a pointer to the XUsb instance. |
EpNum | is the endpoint number which has to be disabled for operations. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::EndPointOffset, XUsb::IsReady, XUSB_EP_CFG_VALID_MASK, XUSB_MAX_ENDPOINTS, XUsb_ReadReg, and XUsb_WriteReg.
void XUsb_EpEnable | ( | const XUsb * | InstancePtr, |
u8 | EpNum | ||
) |
This function enables the specified endpoint for all operations.
InstancePtr | is a pointer to the XUsb instance. |
EpNum | is the endpoint number which has to be enabled for operations. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::EndPointOffset, XUsb::IsReady, XUSB_EP_CFG_VALID_MASK, XUSB_MAX_ENDPOINTS, XUsb_ReadReg, and XUsb_WriteReg.
Referenced by InitUsbInterface().
void XUsb_EpIsoTransferConfigure | ( | XUsb * | InstancePtr, |
u8 | EpNum, | ||
u8 | NoOfTransfers | ||
) |
This function sets the number of isochronous transfers in a microframe for a given endpoint.
InstancePtr | is a pointer to the XUsb instance. |
EpNum | is the endpoint number. |
NoOfTransfers | is the number of transfers in a microframe. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::EndPointOffset, XUsb::IsReady, XUSB_EP_CFG_ISOTRANS_SHIFT, XUSB_MAX_ENDPOINTS, XUsb_ReadReg, and XUsb_WriteReg.
void XUsb_EpSetHandler | ( | XUsb * | InstancePtr, |
u8 | EpNum, | ||
XUsb_EpHandlerFunc * | CallBackFunc, | ||
void * | CallBackRef | ||
) |
This function sets the handler for endpoint events.
InstancePtr | is a Pointer to the XUsb instance. |
EpNum | is the Number of the endpoint. |
CallBackFunc | is the address of the callback function. It can be NULL if the user wants to disable the handler entry. |
CallBackRef | is a user data item that will be passed to the callback function when it is invoked. This can be NULL. |
References XUsb::DeviceConfig, XUsb_DeviceConfig::Ep, XUsb_EpConfig::HandlerFunc, and XUsb_EpConfig::HandlerRef.
Referenced by main(), UsbKbdExample(), and UsbMouseExample().
void XUsb_EpStall | ( | const XUsb * | InstancePtr, |
u8 | EpNum | ||
) |
This function stalls operations for the specified endpoint.
InstancePtr | is a pointer to the XUsb instance. |
EpNum | is the endpoint number which has to be stalled for operations. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::EndPointOffset, XUsb::IsReady, XUSB_EP_CFG_STALL_MASK, XUSB_MAX_ENDPOINTS, XUsb_ReadReg, and XUsb_WriteReg.
Referenced by Ep0IntrHandler(), ExecuteCommand(), GetDescriptor(), GetInterface(), GetStatus(), SetClearFeature(), SetConfiguration(), SetDescriptor(), and SetInterface().
void XUsb_EpUnstall | ( | const XUsb * | InstancePtr, |
u8 | EpNum | ||
) |
This function unstalls operations for the specified endpoint.
InstancePtr | is a pointer to the XUsb instance. |
EpNum | is the endpoint number for which the unstall operations are to be carried out. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::EndPointOffset, XUsb::IsReady, XUSB_EP_CFG_STALL_MASK, XUSB_MAX_ENDPOINTS, XUsb_ReadReg, and XUsb_WriteReg.
Referenced by SetClearFeature().
void XUsb_ErrIntrSetHandler | ( | XUsb * | InstancePtr, |
void * | CallBackFunc, | ||
void * | CallBackRef | ||
) |
This function installs an asynchronous callback function for the error events.
InstancePtr | is a pointer to the XUsb instance. |
CallBackFunc | is the address of the callback function. |
CallBackRef | is a user data item that will be passed to the callback function when it is invoked. |
References XUsb::IsReady.
u32 XUsb_GetFrameNum | ( | const XUsb * | InstancePtr | ) |
This function returns the current frame number.
InstancePtr | is a pointer to the XUsb instance. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::IsReady, XUSB_FRAMENUM_OFFSET, and XUsb_ReadReg.
void XUsb_IntrDisable | ( | XUsb * | InstancePtr, |
u32 | Mask | ||
) |
This function disables the specified interrupts.
InstancePtr | is a pointer to the XUsb instance. |
Mask | is the bit-mask of the interrupts to be disabled. Bit positions of 1 will be enabled. Bit positions of 0 will keep the previous setting. This mask is formed by OR'ing XUSB_STATUS_*_MASK bits defined in xusb_l.h. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::IsReady, XUSB_IER_OFFSET, XUsb_ReadReg, XUSB_STATUS_INTR_ALL_MASK, and XUsb_WriteReg.
Referenced by UsbIfIntrHandler().
void XUsb_IntrEnable | ( | XUsb * | InstancePtr, |
u32 | Mask | ||
) |
This function enables the specified interrupts.
InstancePtr | is a pointer to the XUsb instance. |
Mask | is the bit-mask of the interrupts to be enabled. Bit positions of 1 will be enabled. Bit positions of 0 will keep the previous setting. This mask is formed by OR'ing XUSB_STATUS_*_MASK bits defined in xusb_l.h. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::IsReady, XUSB_IER_OFFSET, XUsb_ReadReg, XUSB_STATUS_INTR_ALL_MASK, and XUsb_WriteReg.
Referenced by Ep0IntrHandler(), main(), UsbIfIntrHandler(), UsbKbdExample(), and UsbMouseExample().
void XUsb_IntrHandler | ( | void * | InstancePtr | ) |
This function is the interrupt handler for the USB driver.
This function is the first-level interrupt handler for the USB core. All USB interrupts will be handled here. Depending on the type of the interrupt, second level interrupt handler may be called. Second level interrupt handlers will be registered by the user using the XUsb_IntrSetHandler() and/or XUsb_EpSetHandler() functions.
This handler reads the interrupt status from the Interrupt Status Register, determines the source of the interrupts, calls the corresponding callbacks and finally clears the interrupts.
The interrupt from the USB driver has to be connected to the interrupt controller and the handler has to be registered with the interrupt system.
Applications using this driver are responsible for providing the callbacks to handle interrupts and installing the callbacks using XUsb_SetHandler() during the initialization phase.
InstancePtr | is a pointer to the XUsb instance that just interrupted. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb_DeviceConfig::CurrentSpeed, XUsb::DeviceConfig, XUsb_Config::DmaEnabled, XUsb_DeviceConfig::Ep, XUsb_EpConfig::HandlerFunc, XUsb::HandlerFunc, XUsb_EpConfig::HandlerRef, XUsb_DeviceConfig::NumEndpoints, XUSB_EP_FULL_SPEED, XUSB_EP_HIGH_SPEED, XUSB_EP_NUMBER_ZERO, XUSB_IER_OFFSET, XUsb_ReadReg, XUSB_STATUS_EP0_BUFF1_COMP_MASK, XUSB_STATUS_EP1_BUFF1_COMP_MASK, XUSB_STATUS_EP1_BUFF2_COMP_MASK, XUSB_STATUS_HIGH_SPEED_MASK, XUSB_STATUS_OFFSET, and XUSB_STATUS_PHY_ACCESS_MASK.
Referenced by main(), UsbKbdExample(), and UsbMouseExample().
void XUsb_IntrSetHandler | ( | XUsb * | InstancePtr, |
void * | CallBackFunc, | ||
void * | CallBackRef | ||
) |
This function installs an asynchronous callback function for the general interrupt (interrupts other than the endpoint and error interrupts).
InstancePtr | is a pointer to the XUsb instance. |
CallBackFunc | is the address of the callback function. |
CallBackRef | is a user data item that will be passed to the callback function when it is invoked. |
References XUsb::HandlerFunc, and XUsb::IsReady.
Referenced by main(), UsbKbdExample(), and UsbMouseExample().
XUsb_Config * XUsb_LookupConfig | ( | u16 | DeviceId | ) |
Looks up the device configuration based on the unique device ID.
A table contains the configuration info for each device in the system.
DeviceId | contains the ID of the device for which the device configuration pointer is to be returned. |
Referenced by main(), UsbKbdExample(), and UsbMouseExample().
void XUsb_ReadErrorCounters | ( | XUsb * | InstancePtr, |
u8 * | BitStuffErrors, | ||
u8 * | PidErrors, | ||
u8 * | CrcErrors | ||
) |
This function reads the USB error counter register and returns the error counters information.
InstancePtr | is a pointer to the XUsb instance. |
BitStuffErrors | is a pointer to the 8 bit bitstuff error counter. |
PidErrors | is a pointer to the 8 bit pid error counter. |
CrcErrors | is a pointer to the 8 bit crc error counter. |
References XUsb_Config::BaseAddress, XUsb::Config, XUSB_ECR_BITSTUFF_ERRCNT_MASK, XUSB_ECR_CRC_ERRCNT_MASK, XUSB_ECR_OFFSET, XUSB_ECR_PID_ERRCNT_MASK, and XUsb_ReadReg.
int XUsb_SetDeviceAddress | ( | XUsb * | InstancePtr, |
u8 | Address | ||
) |
This function sets the USB device address.
InstancePtr | is a pointer to the XUsb instance. |
Address | is the device address to be set. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::IsReady, XUSB_ADDRESS_OFFSET, XUSB_DEVICEADDR_MAX, and XUsb_WriteReg.
Referenced by EP0ProcessInToken(), main(), UsbIfIntrHandler(), UsbKbdExample(), and UsbMouseExample().
void XUsb_SetTestMode | ( | XUsb * | InstancePtr, |
u8 | TestMode, | ||
u8 * | BufPtr | ||
) |
This function sets the USB device into a given test mode.
InstancePtr | is a pointer to the XUsb instance. |
TestMode | is the type of test to be performed. |
BufPtr | is a pointer to the buffer containing the test packet. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::IsReady, TEST_J, TEST_K, TEST_PKT, TEST_SE0_NAK, XUsb_Start(), XUsb_Stop(), XUSB_TESTMODE_OFFSET, and XUsb_WriteReg.
Referenced by EP0ProcessInToken().
void XUsb_SieReset | ( | XUsb * | InstancePtr | ) |
This function resets the Serial Interface Engine.
InstancePtr | is a pointer to the XUsb instance. |
References XUsb_Config::BaseAddress, XUsb::Config, XUSB_CONTROL_OFFSET, XUSB_CONTROL_SIE_RESET_MASK, XUsb_ReadReg, and XUsb_WriteReg.
void XUsb_Start | ( | XUsb * | InstancePtr | ) |
This function starts the USB Device.
InstancePtr | is a pointer to the XUsb instance. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::IsReady, XUSB_CONTROL_OFFSET, XUSB_CONTROL_USB_READY_MASK, and XUsb_WriteReg.
Referenced by main(), UsbIfIntrHandler(), UsbKbdExample(), UsbMouseExample(), and XUsb_SetTestMode().
void XUsb_Stop | ( | XUsb * | InstancePtr | ) |
This function stops the USB device.
InstancePtr | is a pointer to the XUsb instance. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb::IsReady, XUSB_CONTROL_OFFSET, XUSB_CONTROL_USB_READY_MASK, XUsb_ReadReg, and XUsb_WriteReg.
Referenced by UsbIfIntrHandler(), and XUsb_SetTestMode().
void XUsb_UlpiIntrSetHandler | ( | XUsb * | InstancePtr, |
void * | CallBackFunc, | ||
void * | CallBackRef | ||
) |
This function installs an asynchronous callback function for the ULPI PHY events.
InstancePtr | is a pointer to the XUsb instance. |
CallBackFunc | is the address of the callback function. |
CallBackRef | is a user data item that will be passed to the callback function when it is invoked. |
References XUsb::IsReady.
Referenced by main().
u8 XUsb_UlpiPhyReadRegister | ( | XUsb * | InstancePtr, |
u8 | RegAddr | ||
) |
This function initiates the USB ULPI PHY register read transaction.
This function returns the busy status if the earlier transaction is still in progress and returns the PHY register data upon successful read transaction.
InstancePtr | is a pointer to the XUsb instance. |
RegAddr | is the address of the PHY register. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb_ReadReg, XUSB_UPAR_BUSY_MASK, XUSB_UPAR_OFFSET, XUSB_UPAR_REG_DATA_MASK, and XUsb_WriteReg.
Referenced by main().
int XUsb_UlpiPhyWriteRegister | ( | XUsb * | InstancePtr, |
u8 | RegAddr, | ||
u8 | UlpiPhyRegData | ||
) |
This function initiates the USB ULPI PHY register write transaction.
This function returns the busy status if the earlier transaction is still in progress and returns a success upon successful write transaction initiation.
InstancePtr | is a pointer to the XUsb instance. |
RegAddr | is the address of the PHY register. counter. |
UlpiPhyRegData | is the data to be written to PHY register. |
References XUsb_Config::BaseAddress, XUsb::Config, XUsb_ReadReg, XUSB_UPAR_BUSY_MASK, XUSB_UPAR_OFFSET, XUSB_UPAR_READ_WRITE_MASK, and XUsb_WriteReg.
Referenced by main().
XUsb_Config XUsb_ConfigTable[] |
This table contains the configuration information for each of the USB devices in the system.
XUsb_Config XUsb_ConfigTable[XPAR_XUSB_NUM_INSTANCES] |
This table contains the configuration information for each of the USB devices in the system.