| usbps Vitis Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

Functions
xusbps_ch9_storage.h File Reference

## Overview

This file contains definitions used in the chapter 9 code.

    MODIFICATION HISTORY:

    Ver   Who  Date     Changes

    1.00a wgr  10/10/10 First release
    2.5      pm   02/20/20 Added SetConfigurationApp and SetInterfaceHandler API

## Functions
u32 | XUsbPs_Ch9SetupDevDescReply (u8 *BufPtr, u32 BufLen)
| This function returns the device descriptor for the device. More...
u32 | XUsbPs_Ch9SetupCfgDescReply (u8 *BufPtr, u32 BufLen)
| This function returns the configuration descriptor for the device. More...
u32 | XUsbPs_Ch9SetupStrDescReply (u8 *BufPtr, u32 BufLen, u8 Index)
| This function returns a string descriptor for the given index. More...
void | XUsbPs_SetConfiguration (XUsbPs *InstancePtr, int ConfigIdx)
| Changes State of Core to USB configured State. More...
void | XUsbPs_SetConfigurationApp (XUsbPs *InstancePtr, XUsbPs_SetupData *SetupData)
| This function is called by Chapter9 handler when SET_CONFIGURATION command is received from Host. More...
void | XUsbPs_SetInterfaceHandler (XUsbPs *InstancePtr, XUsbPs_SetupData *SetupData)
| This function is called by Chapter9 handler when SET_CONFIGURATION command or SET_INTERFACE command is received from Host. More...

## Function Documentation

u32 XUsbPs_Ch9SetupCfgDescReply | ( | u8 * | BufPtr,
|  | u32 | BufLen
| ) |  |

This function returns the configuration descriptor for the device.

Parameters

  InstancePtr | is a pointer to the Usb_DevData instance.
  BufPtr | is the pointer to the buffer that is to be filled with the descriptor.
  BufLen | is the size of the provided buffer.

Returns
  Length of the descriptor in the buffer on success. 0 on error.

Parameters

  BufPtr | is the pointer to the buffer that is to be filled with the descriptor.
  BufLen | is the size of the provided buffer.

Returns
  Length of the descriptor in the buffer on success. 0 on error.

u32 XUsbPs_Ch9SetupDevDescReply | ( | u8 * | BufPtr,
|  | u32 | BufLen
| ) |  |

This function returns the device descriptor for the device.

Parameters

  InstancePtr | is a pointer to the Usb_DevData instance.
  BufPtr | is pointer to the buffer that is to be filled with the descriptor.
  BufLen | is the size of the provided buffer.

Returns
  Length of the descriptor in the buffer on success. 0 on error.

Parameters

  BufPtr | is pointer to the buffer that is to be filled with the descriptor.
  BufLen | is the size of the provided buffer.

Returns
  Length of the descriptor in the buffer on success. 0 on error.

u32 XUsbPs_Ch9SetupStrDescReply | ( | u8 * | BufPtr,
|  | u32 | BufLen,
|  | u8 | Index
| ) |  |

This function returns a string descriptor for the given index.

Parameters

  InstancePtr | is a pointer to the Usb_DevData instance.
  BufPtr | is a pointer to the buffer that is to be filled with the descriptor.
  BufLen | is the size of the provided buffer.
  Index | is the index of the string for which the descriptor is requested.

Returns
  Length of the descriptor in the buffer on success. 0 on error.

Parameters

  BufPtr | is a pointer to the buffer that is to be filled with the descriptor.
  BufLen | is the size of the provided buffer.
  Index | is the index of the string for which the descriptor is requested.

Returns
  Length of the descriptor in the buffer on success. 0 on error.

void XUsbPs_SetConfiguration | ( | XUsbPs * | InstancePtr,
|  | int | ConfigIdx
| ) |  |

Changes State of Core to USB configured State.

Parameters

  InstancePtr | is a pointer to the Usb_DevData instance.
  Ctrl | is a pointer to the Setup packet data.

Returns
  XST_SUCCESS else XST_FAILURE

Note
  None.

Changes State of Core to USB configured State.

Parameters

  InstancePtr | is a pointer to XUsbPs instance of the controller.
  ConfigIdx | is the Index of the desired configuration.

Returns
  None

References XUSBPS_EP_DIRECTION_IN, XUSBPS_EP_DIRECTION_OUT, XUSBPS_EPCR1_OFFSET, XUSBPS_EPCR_RXR_MASK, XUSBPS_EPCR_RXT_BULK_MASK, XUSBPS_EPCR_TXR_MASK, XUSBPS_EPCR_TXT_BULK_MASK, XUsbPs_EpEnable, XUsbPs_EpPrime(), XUsbPs_SetBits, and XUsbPs_SetConfigDone().

void XUsbPs_SetConfigurationApp | ( | XUsbPs * | InstancePtr,
|  | XUsbPs_SetupData * | SetupData
| ) |  |

This function is called by Chapter9 handler when SET_CONFIGURATION command is received from Host.

Parameters

  InstancePtr | is pointer to Usb_DevData instance.
  SetupData | is the setup packet received from Host.

Returns
  - XST_SUCCESS if successful,
  - XST_FAILURE if unsuccessful.

Note
  Non control endpoints must be enabled after SET_CONFIGURATION command since hardware clears all previously enabled endpoints except control endpoints when this command is received.

Parameters

  InstancePtr | is pointer to XUsbPs instance of the controller.
  SetupData | is the setup packet received from Host.

Returns
  - XST_SUCCESS if successful,
  - XST_FAILURE if unsuccessful.

Note
  Non control endpoints must be enabled after SET_CONFIGURATION command since hardware clears all previously enabled endpoints except control endpoints when this command is received.

References XUsbPs_SetupData::wValue, XUSBPS_EP_DIRECTION_IN, XUSBPS_EP_DIRECTION_OUT, XUsbPs_EpDisable, and XUsbPs_SetConfigDone().

void XUsbPs_SetInterfaceHandler | ( | XUsbPs * | InstancePtr,
|  | XUsbPs_SetupData * | SetupData
| ) |  |

This function is called by Chapter9 handler when SET_CONFIGURATION command or SET_INTERFACE command is received from Host.

Parameters

  InstancePtr | is pointer to Usb_DevData instance.
  SetupData | is the setup packet received from Host.

Note
  Non control endpoints must be enabled after SET_INTERFACE command since hardware clears all previously enabled endpoints except control endpoints when this command is received.

Parameters

  InstancePtr | is pointer to XUsbPs instance of the controller.
  SetupData | is the setup packet received from Host.

Note

References XUsbPs_SetupData::wIndex, XUsbPs_SetupData::wValue, XUSBPS_EP_DIRECTION_IN, XUSBPS_EP_DIRECTION_OUT, and XUsbPs_EpDisable.