Intel® IXP400 Software

Access-Layer Components: USB Access (ixUSB) API

22.4ixUSB API Interfaces

Table 59. API interfaces Available for Access Layer

API

Description

 

 

ixUSBDriverInit

Initialize driver and USB Device Controller.

 

 

ixUSBDeviceEnable

Enable or disable the device.

 

 

ixUSBEndpointStall

Enable or disable endpoint stall.

 

 

ixUSBEndpointClear

Free all Rx/Tx buffers associated with an endpoint.

 

 

ixUSBSignalResume

Trigger signal resuming on the bus.

 

 

ixUSBFrameCounterGet

Retrieve the 11-bit frame counter.

 

 

ixUSBReceiveCallbackRegister

Register a data-receive callback.

 

 

ixUSBSetupCallbackRegister

Register a setup-receive callback.

 

 

ixUSBBufferSubmit

Submit a buffer for transmit.

 

 

ixUSBBufferCancel

Cancel a buffer previously submitted for transmitting.

 

 

ixUSBEventCallbackRegister

Register an event callback.

 

 

ixUSBIsEndpointStalled

Retrieve an endpoint's stall status.

 

 

ixUSBStatisticsShow

Display device state and statistics.

 

 

ixUSBErrorStringGet

Convert an error code into a human-readable string error message.

 

 

ixUSBEndpointInfoShow

Display endpoint information table.

 

 

The ixUSB API components operate within a callback architecture. Initial device setup and configuration is controlled through the callback registered during the ixUSBSetupCallbackRegister function. Data reception occurs through the callback registered during the ixUSBReceiveCallbackRegister function. Special events are signalled to the callback registered during the ixUSBEventCallbackRegister function.

Prior to using any other ixUSB API, the ixUSB client must initialize the controller with the ixUSBDriverInit API call. After this call the driver is in a disabled state. The call to ixUSBDeviceEnable allows data, setup, and configuration transmissions to flow.

22.4.1ixUSB Setup Requests

The UDC’s control, status, and data registers are used only to control and monitor the transmit and receive FIFOs for endpoints 1 - 15. All other UDC configuration and status reporting are controlled by the host, via the USB, using device requests that are sent as control transactions to endpoint 0. Each data packet of a setup stage to endpoint 0 is 8 bytes long and specifies:

Data transfer direction

Host to device

Device to host

April 2005

IXP400 Software Version 2.0

Programmer’s Guide

302

Document Number: 252539, Revision: 007

 

Page 302
Image 302
Intel IXP400 manual IxUSB API Interfaces, IxUSB Setup Requests, API interfaces Available for Access Layer