usbps: xusbps_ch9.h File Reference

| usbps Xilinx SDK Drivers API Documentation

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

Functions
xusbps_ch9.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
    1.04a nm   03/04/13 Fixed CR# 704022. Implemented TEST_MODE Feature.
    2.1   kpc  04/28/14 Added macros specific to cache operations

## Macros
Request types
#define | XUSBPS_REQ_TYPE_MASK 0x60
| Mask for request opcode. More...
#define | XUSBPS_CMD_STDREQ 0x00
#define | XUSBPS_CMD_CLASSREQ 0x20
#define | XUSBPS_CMD_VENDREQ 0x40
#define | XUSBPS_REQ_REPLY_LEN 1024
| Max size of reply buffer. More...
Request Values
#define | XUSBPS_REQ_GET_STATUS 0x00
#define | XUSBPS_REQ_CLEAR_FEATURE 0x01
#define | XUSBPS_REQ_SET_FEATURE 0x03
#define | XUSBPS_REQ_SET_ADDRESS 0x05
#define | XUSBPS_REQ_GET_DESCRIPTOR 0x06
#define | XUSBPS_REQ_SET_DESCRIPTOR 0x07
#define | XUSBPS_REQ_GET_CONFIGURATION 0x08
#define | XUSBPS_REQ_SET_CONFIGURATION 0x09
#define | XUSBPS_REQ_GET_INTERFACE 0x0a
#define | XUSBPS_REQ_SET_INTERFACE 0x0b
#define | XUSBPS_REQ_SYNC_FRAME 0x0c
Feature Selectors
#define | XUSBPS_ENDPOINT_HALT 0x00
#define | XUSBPS_DEVICE_REMOTE_WAKEUP 0x01
#define | XUSBPS_TEST_MODE 0x02
Descriptor Types
#define | XUSBPS_TYPE_DEVICE_DESC 0x01
#define | XUSBPS_TYPE_CONFIG_DESC 0x02
#define | XUSBPS_TYPE_STRING_DESC 0x03
#define | XUSBPS_TYPE_IF_CFG_DESC 0x04
#define | XUSBPS_TYPE_ENDPOINT_CFG_DESC 0x05
#define | XUSBPS_TYPE_DEVICE_QUALIFIER 0x06
#define | XUSBPS_TYPE_HID_DESC 0x21
#define | XUSBPS_TYPE_REPORT_DESC 0x22
USB Device States
#define | XUSBPS_DEVICE_ATTACHED 0x00
#define | XUSBPS_DEVICE_POWERED 0x01
#define | XUSBPS_DEVICE_DEFAULT 0x02
#define | XUSBPS_DEVICE_ADDRESSED 0x03
#define | XUSBPS_DEVICE_CONFIGURED 0x04
#define | XUSBPS_DEVICE_SUSPENDED 0x05
Status type
#define | XUSBPS_STATUS_MASK 0x3
#define | XUSBPS_STATUS_DEVICE 0x0
#define | XUSBPS_STATUS_INTERFACE 0x1
#define | XUSBPS_STATUS_ENDPOINT 0x2
EP Types
#define | XUSBPS_EP_CONTROL 0
#define | XUSBPS_EP_ISOCHRONOUS 1
#define | XUSBPS_EP_BULK 2
#define | XUSBPS_EP_INTERRUPT 3
Device Classes
#define | XUSBPS_CLASS_HID 0x03
#define | XUSBPS_CLASS_STORAGE 0x08
#define | XUSBPS_CLASS_VENDOR 0xFF
Test Mode Selectors
#define | XUSBPS_TEST_J 0x01
#define | XUSBPS_TEST_K 0x02
#define | XUSBPS_TEST_SE0_NAK 0x03
#define | XUSBPS_TEST_PACKET 0x04
#define | XUSBPS_TEST_FORCE_ENABLE 0x05

## Functions
int | XUsbPs_Ch9HandleSetupPacket (XUsbPs *InstancePtr, XUsbPs_SetupData *SetupData)
| This function handles a Setup Data packet from the host. More...

## Macro Definition Documentation

#define XUSBPS_REQ_REPLY_LEN 1024

Max size of reply buffer.

#define XUSBPS_REQ_TYPE_MASK 0x60

Mask for request opcode.

Referenced by XUsbPs_Ch9HandleSetupPacket().

## Function Documentation

int XUsbPs_Ch9HandleSetupPacket | ( | XUsbPs * | InstancePtr,
|  | XUsbPs_SetupData * | SetupData
| ) |  |

This function handles a Setup Data packet from the host.

Parameters

  InstancePtr | is a pointer to XUsbPs instance of the controller.
  SetupData | is the structure containing the setup request.

Returns
  - XST_SUCCESS if the function is successful.
  - XST_FAILURE if an Error occurred.

Note
  None.

References XUsbPs_SetupData::bmRequestType, XUsbPs_SetupData::bRequest, XUsbPs_ClassReq(), XUSBPS_EP_DIRECTION_IN, XUSBPS_EP_DIRECTION_OUT, XUsbPs_EpStall, and XUSBPS_REQ_TYPE_MASK.