2.2.4 Library Interface

This section describes the Application Programming Interface (API) functions of the USB Device Layer Library.

Refer to each section for a detailed description.

a) System Interaction Functions

Name Description
USB_DEVICE_Initialize Creates and initializes an instance of the USB device layer.
USB_DEVICE_Deinitialize De-initializes the specified instance of the USB device layer.
USB_DEVICE_Status Provides the current status of the USB device layer.
USB_DEVICE_Tasks USB Device layer calls all other function driver tasks in this function. It also generates and forwards events to its clients.

b) Client Core Functions

Name Description
USB_DEVICE_Open Opens the specified USB device layer instance and returns a handle to it.
USB_DEVICE_Close Closes an opened handle to an instance of the USB device layer.
USB_DEVICE_ClientStatusGet Returns the client specific status.
USB_DEVICE_EventHandlerSet USB Device Layer Event Handler Callback Function set function.

c) Device Power State Management Functions

Name Description
USB_DEVICE_PowerStateSet Sets power state of the device.
USB_DEVICE_RemoteWakeupStatusGet Gets the "Remote wake-up" status of the device.
USB_DEVICE_IsSuspended Returns true if the device is in a suspended state.
USB_DEVICE_RemoteWakeupStart This function will start the resume signaling.
USB_DEVICE_RemoteWakeupStartTimed This function will start a self timed Remote Wake-up.
USB_DEVICE_RemoteWakeupStop This function will stop the resume signaling.

d) Device Management Functions

Name Description
USB_DEVICE_StateGet Returns the current state of the USB device.
USB_DEVICE_Attach This function will attach the device to the USB.
USB_DEVICE_Detach This function will detach the device from the USB.
USB_DEVICE_ActiveConfigurationGet Informs the client of the current USB device configuration set by the USB host.
USB_DEVICE_ActiveSpeedGet Informs the client of the current operation speed of the USB bus.

e) Endpoint Management Functions

Name Description
USB_DEVICE_EndpointIsStalled This function returns the stall status of the specified endpoint and direction.
USB_DEVICE_EndpointStall This function stalls an endpoint in the specified direction.
USB_DEVICE_EndpointStallClear This function clears the stall on an endpoint in the specified direction.
USB_DEVICE_EndpointDisable Disables a device endpoint.
USB_DEVICE_EndpointEnable Enables a device endpoint.
USB_DEVICE_EndpointIsEnabled Returns true if the endpoint is enabled.
USB_DEVICE_EndpointRead Reads data received from host on the requested endpoint.
USB_DEVICE_EndpointTransferCancel This function cancels a transfer scheduled on an endpoint.
USB_DEVICE_EndpointWrite This function requests a data write to a USB Device Endpoint.

f) Control Transfer Functions

Name Description
USB_DEVICE_ControlReceive Receives data stage of the control transfer from host to device.
USB_DEVICE_ControlSend Sends data stage of the control transfer from device to host.
USB_DEVICE_ControlStatus Initiates status stage of the control transfer.

g) Data Types and Constants

Name Description
USB_DEVICE_EVENT USB Device Layer Events.
USB_DEVICE_HANDLE Data type for USB device handle.
USB_DEVICE_CONTROL_STATUS USB Device Layer Control Transfer Status Stage flags.
USB_DEVICE_CONTROL_TRANSFER_RESULT Enumerated data type identifying results of a control transfer.
USB_DEVICE_INIT USB Device Initialization Structure.
USB_DEVICE_POWER_STATE Enumerated data type that identifies if the device is self powered or bus powered.
USB_DEVICE_REMOTE_WAKEUP_STATUS Enumerated data type that identifies if the remote wakeup status of the device.
USB_DEVICE_HANDLE_INVALID Constant that defines the value of an Invalid Device Handle.
USB_DEVICE_INDEX_0 USB device layer index definitions.
USB_DEVICE_INDEX_1 This is macro USB_DEVICE_INDEX_1.
USB_DEVICE_INDEX_2 This is macro USB_DEVICE_INDEX_2.
USB_DEVICE_INDEX_3 This is macro USB_DEVICE_INDEX_3.
USB_DEVICE_INDEX_4 This is macro USB_DEVICE_INDEX_4.
USB_DEVICE_INDEX_5 This is macro USB_DEVICE_INDEX_5.
USB_DEVICE_CLIENT_STATUS Enumerated data type that identifies the USB Device Layer Client Status.
USB_DEVICE_CONFIGURATION_DESCRIPTORS_TABLE Pointer to an array that contains pointer to configuration descriptors.
USB_DEVICE_EVENT_DATA_CONFIGURED USB Device Set Configuration Event Data type.
USB_DEVICE_EVENT_HANDLER USB Device Layer Event Handler Function Pointer Type.
USB_DEVICE_EVENT_RESPONSE Device Layer Event Handler function return type.
USB_DEVICE_FUNCTION_REGISTRATION_TABLE USB Device Function Registration Structure.
USB_DEVICE_MASTER_DESCRIPTOR USB Device Master Descriptor Structure.
USB_DEVICE_STRING_DESCRIPTORS_TABLE Pointer to an array that contains pointer to string descriptors.
USB_DEVICE_EVENT_RESPONSE_NONE Device Layer Event Handler Function Response Type.
USB_DEVICE_EVENT_DATA_ENDPOINT_READ_COMPLETE USB Device Layer Endpoint Read and Write Complete Event Data type.
USB_DEVICE_EVENT_DATA_ENDPOINT_WRITE_COMPLETE USB Device Layer Endpoint Read and Write Complete Event Data type.
USB_DEVICE_EVENT_DATA_SOF USB Device Start Of Frame Event Data Type.
USB_DEVICE_EVENT_DATA_SYNCH_FRAME USB Device Synch Frame Event Data type.
USB_DEVICE_RESULT USB Device Layer Results Enumeration.
USB_DEVICE_TRANSFER_FLAGS Enumerated data type that identifies the USB Device Layer Transfer Flags.
USB_DEVICE_TRANSFER_HANDLE Data type for USB Device Endpoint Data Transfer Handle.
USB_DEVICE_MICROSOFT_OS_DESCRIPTOR_SUPPORT_ENABLE Specifies if the USB Device stack should support Microsoft OS Descriptor.