summaryrefslogtreecommitdiff
path: root/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasusb.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/westbridge/astoria/include/linux/westbridge/cyasusb.h')
-rw-r--r--drivers/staging/westbridge/astoria/include/linux/westbridge/cyasusb.h1862
1 files changed, 0 insertions, 1862 deletions
diff --git a/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasusb.h b/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasusb.h
deleted file mode 100644
index e3ba9ca4c75f..000000000000
--- a/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasusb.h
+++ /dev/null
@@ -1,1862 +0,0 @@
-/* Cypress West Bridge API header file (cyasusb.h)
-## ===========================
-## Copyright (C) 2010 Cypress Semiconductor
-##
-## This program is free software; you can redistribute it and/or
-## modify it under the terms of the GNU General Public License
-## as published by the Free Software Foundation; either version 2
-## of the License, or (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 51 Franklin Street
-## Fifth Floor, Boston, MA 02110-1301, USA.
-## ===========================
-*/
-
-#ifndef _INCLUDED_CYASUSB_H_
-#define _INCLUDED_CYASUSB_H_
-
-#include "cyasmisc.h"
-
-#include "cyas_cplus_start.h"
-
-/*@@Enumeration Model
- Summary
- The USB enumeration process is the process of communicating
- to the USB host information
- about the capabilities of the connected device. This
- process is completed by servicing
- requests for various types of descriptors. In the software
- APIs described below, this
- process is controlled in one of two ways.
-
- Description
- There are advantages to either type of enumeration
- and this is why both models are supported.
- P Port processor based enumeraton gives the P port
- processor maximum control and flexibility
- for providing USB configuration information. However,
- this does require (near) real time data
- responses from the P port processor during the enumeration
- process. West Bridge based enumeration
- requires no real time information from the P port processor,
- ensuring the fastest possible
- enumeration times.
-
- * P Port Based Enumeration *
- The first method for handling USB enumeration is for the
- processor client to handle all
- endpoint zero requests for descriptors. This mode is
- configured by indicating to the API
- that the processor wants to handle all endpoint zero
- requests. This is done by setting
- bit 0 in the end_point_mask to a 1. The processor uses
- CyAsUsbReadDataAsync() to read the request and
- CyAsUsbWriteDataAsync() to write the response.
-
- * West Bridge Based Enumeration *
- The second method for handling USB enumeration is the
- configuration information method.
- Before enabling a connection from the West Bridge device
- to the USB connector, the P Port
- processor sends information about the USB configuration to
- West Bridge through the configuration
- APIs. This information is stored within the West Bridge
- device. When a USB cable is attached,
- the West Bridge device then handles all descriptor requests
- based on the stored information.
- Note that this method of enumeration only supports a single
- USB configuration.
-
- In either model of enumeration, the processor client is
- responsible for ensuring that
- the system meets USB Chapter 9 compliance requirements. This
- can be done by providing spec
- compliant descriptors, and handling any setup packets that
- are sent to the client
- appropriately.
-
- Mass storage class compliance will be ensured by the West
- Bridge firmware when the mass
- storage functionality is enabled.
-*/
-
-/*@@Endpoint Configuration
- Summary
- The West Bridge device has one 64-byte control endpoint, one
- 64-byte low bandwidth endpoint, four bulk
- endpoints dedicated for mass storage usage, and up to ten
- bulk/interrupt/isochronous
- endpoints that can be used for USB-to-Processor communication.
-
- Description
- The four storage endpoints (Endpoints 2, 4, 6 and 8) are
- reserved for accessing storage
- devices attached to West Bridge and are not available for use
- by the processor. These are
- used implicitly when using the storage API to read/write to
- the storage media.
-
- Endpoint 0 is the standard USB control pipe used for all
- enumeration activity. Though
- the endpoint buffer is not directly accessible from the
- processor, read/write activity
- can be performed on this endpoint through the API layers.
- This endpoint is always
- configured as a bi-directional control endpoint.
-
- Endpoint 1 is a 64-byte endpoint that can be used for low
- bandwidth bulk/interrupt
- activity. The physical buffer is not accessible from the
- processor, but can be read/written
- through the API. As the data coming to this endpoint is
- being handled through the
- software layers, there can be loss of data if a read call
- is not waiting when an OUT
- packet arrives.
-
- Endpoints 3, 5, 7, 9, 10, 11, 12, 13, 14 and 15 are ten
- configurable endpoints
- mapped to parts of a total 4 KB FIFO buffer space on the
- West Bridge device. This 4 KB
- physical buffer space is divided into up to four endpoints
- called PEP1, PEP2, PEP3 and PEP4
- in this software document. There are multiple configurations
- in which this buffer space
- can be used, and the size and number of buffers available to
- each physical endpoint
- vary between these configurations. See the West Bridge PDD
- for details on the buffer
- orientation corresponding to each configuration.
-
- * Note *
- PEPs 1, 2, 3 and 4 are called Physical EP 3, 5, 7 and 9 in the
- West Bridge PDD. The
- sequential number scheme is used in the software to disambiguate
- these from the logical
- endpoint numbers, and also for convenience of array indexing.
-*/
-
-#if !defined(__doxygen__)
-
-
-#endif
-
-/* Summary
- This constants defines the maximum size of a USB descriptor
- when referenced via the CyAsUsbSetDescriptor or
- CyAsUsbGetDescriptor functions.
-
- See Also
- * CyAsUsbSetDescriptor
- * CyAsUsbGetDescriptor
-*/
-#define CY_AS_MAX_USB_DESCRIPTOR_SIZE (128)
-
-/***************************************
- * West Bridge Types
- ***************************************/
-
-
-/* Summary
- This data structure is the data passed via the evdata paramater
- on a usb event callback for the inquiry request.
-
- Description
- When a SCSI inquiry request arrives via the USB connection and
- the P Port has asked
- to receive inquiry requests, this request is forwarded to the
- client via the USB
- callback. This callback is called twice, once before the
- inquiry data is forwarded
- to the host (CyAsEventUsbInquiryBefore) and once after the
- inquiry has been sent to the
- USB host (CyAsEventUsbInquiryAfter). The evdata parameter
- is a pointer to this data
- structure.
-
- *CyAsEventUsbInquiryBefore*
- If the client just wishes to see the inquiry request and
- associated data, then a simple
- return from the callback will forward the inquiry response
- to the USB host. If the
- client wishes to change the data returned to the USB host,
- the updated parameter must
- be set to CyTrue and the memory area address by the data
- parameter should be updated.
- The data pointer can be changed to point to a new memory
- area and the length field
- changed to change the amount of data returned from the
- inquiry request. Note that the
- data area pointed to by the data parameter must remain
- valid and the contents must
- remain consistent until after the CyAsEventUsbInquiryAfter
- event has occurred. THE LENGTH
- MUST BE LESS THAN 192 BYTES OR THE CUSTOM INQUIRY RESPONSE
- WILL NOT BE RETURNED. If the
- length is too long, the default inquiry response will be
- returned.
-
- *CyAsEventUsbInquiryAfter*
- If the client needs to free any data, this event signals that
- the data associated with the inquiry is no longer needed.
-
- See Also
- * CyAsUsbEventCallback
- * CyAsUsbRegisterCallback
-*/
-typedef struct cy_as_usb_inquiry_data {
- /* The bus for the event */
- cy_as_bus_number_t bus;
- /* The device the event */
- uint32_t device;
- /* The EVPD bit from the SCSI INQUIRY request */
- uint8_t evpd;
- /* The codepage in the inquiry request */
- uint8_t codepage;
- /* This bool must be set to CyTrue indicate that the inquiry
- data was changed */
- cy_bool updated;
- /* The length of the data */
- uint16_t length;
- /* The inquiry data */
- void *data;
-} cy_as_usb_inquiry_data;
-
-
-/* Summary
- This data structure is the data passed via the evdata
- parameter on a usb event
- callback for the unknown mass storage request.
-
- Description
- When a SCSI request is made that the mass storage
- firmware in West Bridge does not
- know how to process, this request is passed to the
- processor for handling via
- the usb callback. This data structure is used to
- pass the request and the
- associated response. The user may set the status
- to indicate the status of the
- request. The status value is the bCSWStatus value
- from the USB mass storage
- Command Status Wrapper (0 = command passed, 1 =
- command failed). If the status
- is set to command failed (1), the sense information
- should be set as well. For
- more information about sense information, see the
- USB mass storage specification
- as well as the SCSI specifications for block devices.
- By default the status is
- initialized to 1 (failure) with a sense information
- of 05h/20h/00h which
- indicates INVALID COMMAND.
-*/
-typedef struct cy_as_usb_unknown_command_data {
- /* The bus for the event */
- cy_as_bus_number_t bus;
- /* The device for the event */
- uint32_t device;
-
- uint16_t reqlen;
- /* The request */
- void *request;
-
- /* The returned status value for the command */
- uint8_t status;
- /* If status is failed, the sense key */
- uint8_t key;
- /* If status is failed, the additional sense code */
- uint8_t asc;
- /* If status if failed, the additional sense code qualifier */
- uint8_t ascq;
-} cy_as_usb_unknown_command_data;
-
-
-/* Summary
- This data structure is the data passed via the evdata
- paramater on a usb event callback for the start/stop request.
-
- Description
- When a SCSI start stop request arrives via the USB connection
- and the P Port has asked
-
- See Also
- * CyAsUsbEventCallback
- * CyAsUsbRegisterCallback
-*/
-typedef struct cy_as_usb_start_stop_data {
- /* The bus for the event */
- cy_as_bus_number_t bus;
- /* The device for the event */
- uint32_t device;
- /* CyTrue means start request, CyFalse means stop request */
- cy_bool start;
- /* CyTrue means LoEj bit set, otherwise false */
- cy_bool loej;
-} cy_as_usb_start_stop_data;
-
-/* Summary
- This data type is used to indicate which mass storage devices
- are enumerated.
-
- Description
-
- See Also
- * CyAsUsbEnumControl
- * CyAsUsbSetEnumConfig
-*/
-typedef enum cy_as_usb_mass_storage_enum {
- cy_as_usb_nand_enum = 0x01,
- cy_as_usb_sd_enum = 0x02,
- cy_as_usb_mmc_enum = 0x04,
- cy_as_usb_ce_ata_enum = 0x08
-} cy_as_usb_mass_storage_enum;
-
-/* Summary
- This data type specifies the type of descriptor to transfer
- to the West Bridge device
-
- Description
- During enumeration, if West Bridge is handling enumeration,
- the West Bridge device needs to USB descriptors
- to complete the enumeration. The function CyAsUsbSetDescriptor()
- is used to transfer the descriptors
- to the West Bridge device. This type is an argument to that
- function and specifies which descriptor
- is being transferred.
-
- See Also
- * CyAsUsbSetDescriptor
- * CyAsUsbGetDescriptor
-*/
-typedef enum cy_as_usb_desc_type {
- /* A device descriptor - See USB 2.0 specification Chapter 9 */
- cy_as_usb_desc_device = 1,
- /* A device descriptor qualifier -
- * See USB 2.0 specification Chapter 9 */
- cy_as_usb_desc_device_qual = 2,
- /* A configuration descriptor for FS operation -
- * See USB 2.0 specification Chapter 9 */
- cy_as_usb_desc_f_s_configuration = 3,
- /* A configuration descriptor for HS operation -
- * See USB 2.0 specification Chapter 9 */
- cy_as_usb_desc_h_s_configuration = 4,
- cy_as_usb_desc_string = 5
-} cy_as_usb_desc_type;
-
-/* Summary
- This type specifies the direction of an endpoint
-
- Description
- This type is used when configuring the endpoint hardware
- to specify the direction
- of the endpoint.
-
- See Also
- * CyAsUsbEndPointConfig
- * CyAsUsbSetEndPointConfig
- * CyAsUsbGetEndPointConfig
-*/
-typedef enum cy_as_usb_end_point_dir {
- /* The endpoint direction is IN (West Bridge -> USB Host) */
- cy_as_usb_in = 0,
- /* The endpoint direction is OUT (USB Host -> West Bridge) */
- cy_as_usb_out = 1,
- /* The endpoint direction is IN/OUT (valid only for EP 0 & 1) */
- cy_as_usb_in_out = 2
-} cy_as_usb_end_point_dir;
-
-/* Summary
- This type specifies the type of an endpoint
-
- Description
- This type is used when configuring the endpoint hardware
- to specify the type of endpoint.
-
- See Also
- * CyAsUsbEndPointConfig
- * CyAsUsbSetEndPointConfig
- * CyAsUsbGetEndPointConfig
-*/
-typedef enum cy_as_usb_end_point_type {
- cy_as_usb_control,
- cy_as_usb_iso,
- cy_as_usb_bulk,
- cy_as_usb_int
-} cy_as_usb_end_point_type;
-
-/* Summary
- This type is a structure used to indicate the top level
- configuration of the USB stack
-
- Description
- In order to configure the USB stack, the CyAsUsbSetEnumConfig()
- function is called to indicate
- how mass storage is to be handled, the specific number of
- interfaces to be supported if
- West Bridge is handling enumeration, and the end points of
- specifi interest. This structure
- contains this information.
-
- See Also
- * CyAsUsbSetConfig
- * CyAsUsbGetConfig
- * <LINK Enumeration Model>
-*/
-typedef struct cy_as_usb_enum_control {
- /* Designate which devices on which buses to enumerate */
- cy_bool devices_to_enumerate[CY_AS_MAX_BUSES]
- [CY_AS_MAX_STORAGE_DEVICES];
- /* If true, West Bridge will control enumeration. If this
- * is false the P port controls enumeration. if the P port
- * is controlling enumeration, traffic will be received via
- * endpoint zero. */
- cy_bool antioch_enumeration;
- /* This is the interface # to use for the mass storage
- * interface, if mass storage is enumerated. if mass
- * storage is not enumerated this value should be zero. */
- uint8_t mass_storage_interface;
- /* This is the interface # to use for the MTP interface,
- * if MTP is enumerated. if MTP is not enumerated
- * this value should be zero. */
- uint8_t mtp_interface;
- /* If true, Inquiry, START/STOP, and unknown mass storage
- * requests cause a callback to occur for handling by the
- * baseband processor. */
- cy_bool mass_storage_callbacks;
-} cy_as_usb_enum_control;
-
-
-/* Summary
- This structure is used to configure a single endpoint
-
- Description
- This data structure contains all of the information required
- to configure the West Bridge hardware
- associated with a given endpoint.
-
- See Also
- * CyAsUsbSetEndPointConfig
- * CyAsUsbGetEndPointConfig
-*/
-typedef struct cy_as_usb_end_point_config {
- /* If true, this endpoint is enabled */
- cy_bool enabled;
- /* The direction of this endpoint */
- cy_as_usb_end_point_dir dir;
- /* The type of endpoint */
- cy_as_usb_end_point_type type;
- /* The physical endpoint #, 1, 2, 3, 4 */
- cy_as_end_point_number_t physical;
- /* The size of the endpoint in bytes */
- uint16_t size;
-} cy_as_usb_end_point_config;
-
-/* Summary
- List of partition enumeration combinations that can
- be selected on a partitioned storage device.
-
- Description
- West Bridge firmware supports creating up to two
- partitions on mass storage devices connected to
- West Bridge. When there are two partitions on a device,
- the user can choose which of these partitions should be
- made visible to a USB host through the mass storage
- interface. This enumeration lists the various enumeration
- selections that can be made.
-
- See Also
- * CyAsStorageCreatePPartition
- * CyAsStorageRemovePPartition
- * CyAsUsbSelectMSPartitions
- */
-typedef enum cy_as_usb_m_s_type_t {
- /* Enumerate only partition 0 as CD (autorun) device */
- cy_as_usb_m_s_unit0 = 0,
- /* Enumerate only partition 1 as MS device (default setting) */
- cy_as_usb_m_s_unit1,
- /* Enumerate both units */
- cy_as_usb_m_s_both
-} cy_as_usb_m_s_type_t;
-
-/* Summary
- This type specifies the type of USB event that has occurred
-
- Description
- This type is used in the USB event callback function to
- indicate the type of USB event that has occurred. The callback
- function includes both this reasons for the callback and a data
- parameter associated with the reason. The data parameter is used
- in a reason specific way and is documented below with each reason.
-
- See Also
- * CyAsUsbIoCallback
-*/
-typedef enum cy_as_usb_event {
- /* This event is sent when West Bridge is put into the suspend
- state by the USB host. the data parameter is not used and
- will be zero. */
- cy_as_event_usb_suspend,
- /* This event is sent when West Bridge is taken out of the
- suspend state by the USB host. the data parameter is not
- used and will be zero. */
- cy_as_event_usb_resume,
- /* This event is sent when a USB reset request is received
- by the west bridge device. the data parameter is not used and
- will be zero. */
- cy_as_event_usb_reset,
- /* This event is sent when a USB set configuration request is made.
- the data parameter is a pointer to a uint16_t that contains the
- configuration number. the configuration number may be zero to
- indicate an unconfigure operation. */
- cy_as_event_usb_set_config,
- /* This event is sent when the USB connection changes speed. This is
- generally a transition from full speed to high speed. the parameter
- to this event is a pointer to uint16_t that gives the speed of the
- USB connection. zero indicates full speed, one indicates high speed */
- cy_as_event_usb_speed_change,
- /* This event is sent when a setup packet is received.
- * The data parameter is a pointer to the eight bytes of setup data. */
- cy_as_event_usb_setup_packet,
- /* This event is sent when a status packet is received. The data
- parameter is not used. */
- cy_as_event_usb_status_packet,
- /* This event is sent when mass storage receives an inquiry
- request and we have asked to see these requests. */
- cy_as_event_usb_inquiry_before,
- /* This event is sent when mass storage has finished processing an
- inquiry request and any data associated with the request is no longer
- required. */
- cy_as_event_usb_inquiry_after,
- /* This event is sent when mass storage receives a start/stop
- * request and we have asked to see these requests */
- cy_as_event_usb_start_stop,
- /* This event is sent when a Clear Feature request is received.
- * The data parameter is the endpoint number. */
- cy_as_event_usb_clear_feature,
- /* This event is sent when mass storage receives a request
- * that is not known and we have asked to see these requests */
- cy_as_event_usb_unknown_storage,
- /* This event is sent when the read/write activity on the USB mass
- storage has crossed a pre-set level */
- cy_as_event_usb_m_s_c_progress
-} cy_as_usb_event;
-
-/* Summary
- This type is the type of a callback function that is
- called when a USB event occurs
-
- Description
- At times West Bridge needs to inform the P port processor
- of events that have
- occurred. These events are asynchronous to the thread of
- control on the P
- port processor and as such are generally delivered via a
- callback function that
- is called as part of an interrupt handler. This type
- defines the type of function
- that must be provided as a callback function for USB events.
-
- See Also
- * CyAsUsbEvent
-*/
-typedef void (*cy_as_usb_event_callback)(
- /* Handle to the device to configure */
- cy_as_device_handle handle,
- /* The event type being reported */
- cy_as_usb_event ev,
- /* The data assocaited with the event being reported */
- void *evdata
-);
-
-
-/* Summary
- This type is the callback function called after an
- asynchronous USB read/write operation
-
- Description
- This function type defines a callback function that is
- called at the completion of any
- asynchronous read or write operation.
-
- See Also
- * CyAsUsbReadDataAsync
- * CyAsUsbWriteDataAsync
- * CY_AS_ERROR_CANCELED
-*/
-typedef void (*cy_as_usb_io_callback)(
- /* Handle to the device to configure */
- cy_as_device_handle handle,
- /* The endpoint that has completed an operation */
- cy_as_end_point_number_t ep,
- /* THe amount of data transferred to/from USB */
- uint32_t count,
- /* The data buffer for the operation */
- void *buffer,
- /* The error status of the operation */
- cy_as_return_status_t status
-);
-
-/* Summary
- This type is the callback function called after asynchronous
- API functions have completed.
-
- Description
- When calling API functions from callback routines (interrupt
- handlers usually) the async version of
- these functions must be used. This callback is called when an
- asynchronous API function has completed.
-*/
-typedef void (*cy_as_usb_function_callback)(
- /* Handle to the device to configure */
- cy_as_device_handle handle,
- /* The error status of the operation */
- cy_as_return_status_t status,
- /* A client supplied 32 bit tag */
- uint32_t client
-);
-
-
-/********************************************
- * West Bridge Functions
- ********************************************/
-
-/* Summary
- This function starts the USB stack
-
- Description
- This function initializes the West Bridge USB software
- stack if it has not yet been stared.
- This initializes any required data structures and powers
- up any USB specific portions of
- the West Bridge hardware. If the stack had already been
- started, the USB stack reference count
- is incremented.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Notes
- This function cannot be called from any type of West Bridge
- callback.
-
- Returns
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_SUCCESS - the stack initialized and is ready
- * for use
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
-
- See Also
- * CyAsUsbStop
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_start(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function stops the USB stack
-
- Description
- This function decrements the reference count for
- the USB stack and if this count
- is zero, the USB stack is shut down. The shutdown
- frees all resources associated
- with the USB stack.
-
- * Valid In Asynchronous Callback: NO
-
- Notes
- While all resources associated with the USB stack will
- be freed is a shutdown occurs,
- resources associated with underlying layers of the software
- will not be freed if they
- are shared by the storage stack and the storage stack is active.
- Specifically the DMA manager,
- the interrupt manager, and the West Bridge communications module
- are all shared by both the
- USB stack and the storage stack.
-
- Returns
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
-
- See Also
- * CyAsUsbStart
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_stop(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function registers a callback function to be called when an
- asynchronous USB event occurs
-
- Description
- When asynchronous USB events occur, a callback function can be
- called to alert the calling program. This
- functions allows the calling program to register a callback.
-
- * Valid In Asynchronous Callback: YES
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_register_callback(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The function to call */
- cy_as_usb_event_callback callback
- );
-
-
-/* Summary
- This function connects the West Bridge device D+ and D- signals
- physically to the USB host.
-
- Description
- The West Bridge device has the ability to programmatically
- disconnect the USB pins on the device
- from the USB host. This feature allows for re-enumeration of
- the West Bridge device as a different
- device when necessary. This function connects the D+ and D-
- signal physically to the USB host
- if they have been previously disconnected.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
-
- See Also
- * CyAsUsbDisconnect
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_connect(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function disconnects the West Bridge device D+ and D-
- signals physically from the USB host.
-
- Description
- The West Bridge device has the ability to programmatically
- disconnect the USB pins on the device
- from the USB host. This feature allows for re-enumeration
- of the West Bridge device as a different
- device when necessary. This function disconnects the D+
- and D- signal physically from the USB host
- if they have been previously connected.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
-
- See Also
- * CyAsUsbConnect
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_disconnect(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function configures the USB stack
-
- Description
- This function is used to configure the USB stack. It is
- used to indicate which endpoints are going to
- be used, and how to deal with the mass storage USB device
- within West Bridge.
-
- * Valid In Asynchronous Callback: Yes (if cb supplied)
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
-
- See Also
- * CyAsUsbGetEnumConfig
- * CyAsUsbEnumControl
- */
-EXTERN cy_as_return_status_t
-cy_as_usb_set_enum_config(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The USB configuration information */
- cy_as_usb_enum_control *config_p,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function retreives the current configuration of
- the USB stack
-
- Description
- This function sends a request to West Bridge to retrieve
- the current configuration
-
- * Valid In Asynchronous Callback: Yes (if cb supplied)
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
-
- See Also
- * CyAsUsbSetConfig
- * CyAsUsbConfig
- */
-EXTERN cy_as_return_status_t
-cy_as_usb_get_enum_config(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The return value for USB congifuration information */
- cy_as_usb_enum_control *config_p,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function sets the USB descriptor
-
- Description
- This function is used to set the various descriptors
- assocaited with the USB enumeration
- process. This function should only be called when the
- West Bridge enumeration model is selected.
- Descriptors set using this function can be cleared by
- stopping the USB stack, or by calling
- the CyAsUsbClearDescriptors function.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Notes
- These descriptors are described in the USB 2.0 specification,
- Chapter 9.
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_DESCRIPTOR - the descriptor passed is
- * not valid
- * CY_AS_ERROR_BAD_INDEX - a bad index was given for the type
- * of descriptor given
- * CY_AS_ERROR_BAD_ENUMERATION_MODE - this function cannot be
- * called if the P port processor doing enumeration
-
- See Also
- * CyAsUsbGetDescriptor
- * CyAsUsbClearDescriptors
- * <LINK Enumeration Model>
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_set_descriptor(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The type of descriptor */
- cy_as_usb_desc_type type,
- /* Only valid for string descriptors */
- uint8_t index,
- /* The descriptor to be transferred */
- void *desc_p,
- /* The length of the descriptor in bytes */
- uint16_t length,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function clears all user descriptors stored
- on the West Bridge.
-
- Description
- This function is used to clear all descriptors that
- were previously
- stored on the West Bridge through CyAsUsbSetDescriptor
- calls, and go back
- to the default descriptor setup in the firmware. This
- function should
- only be called when the Antioch enumeration model is
- selected.
-
- * Valid In Asynchronous Callback: Yes (if cb supplied)
- * Nestable: Yes
-
- Returns
- * CY_AS_ERROR_SUCCESS - all descriptors cleared successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_BAD_ENUMERATION_MODE - this function cannot be
- * called if the P port processor is doing enumeration
-
- See Also
- * CyAsUsbSetDescriptor
- * <LINK Enumeration Model>
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_clear_descriptors(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-/* Summary
- This structure contains the descriptor buffer to be
- filled by CyAsUsbGetDescriptor API.
-
- Description
- This data structure the buffer to hold the descriptor
- data, and an in/out parameter ti indicate the
- length of the buffer and descriptor data in bytes.
-
- See Also
- * CyAsUsbGetDescriptor
-*/
-typedef struct cy_as_get_descriptor_data {
- /* The buffer to hold the returned descriptor */
- void *desc_p;
- /* This is an input and output parameter.
- * Before the code this pointer points to a uint32_t
- * that contains the length of the buffer. after
- * the call, this value contains the amount of data
- * actually returned. */
- uint32_t length;
-
-} cy_as_get_descriptor_data;
-
-/* Summary
- This function retreives a given descriptor from the
- West Bridge device
-
- Description
- This function retreives a USB descriptor from the West
- Bridge device. This function should only be called when the
- West Bridge enumeration model is selected.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Notes
- These descriptors are described in the USB 2.0 specification,
- Chapter 9.
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_BAD_INDEX - a bad index was given for the type of
- * descriptor given
- * CY_AS_ERROR_BAD_ENUMERATION_MODE - this function cannot be
- * called if the P port processor doing enumeration
-
- See Also
- * CyAsUsbSetDescriptor
- * <LINK Enumeration Model>
-*/
-
-EXTERN cy_as_return_status_t
-cy_as_usb_get_descriptor(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The type of descriptor */
- cy_as_usb_desc_type type,
- /* Index for string descriptor */
- uint8_t index,
- /* Parameters and return value for the get descriptor call */
- cy_as_get_descriptor_data *data,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function sets the configuration of the physical
- endpoints into one of the twelve supported configuration
-
- Description
- USB endpoints are mapped onto one of four physical
- endpoints in the device. Therefore
- USB endpoints are known as logical endpoints and these
- logical endpoints are mapped to
- one of four physical endpoints. In support of these
- four physical endpoints there is
- four kilo-bytes of buffer spaces that can be used as
- buffers for these physical endpoints.
- This 4K of buffer space can be configured in one of
- twelve ways. This function sets the
- buffer configuration for the physical endpoints.
-
- * Config 1: PEP1 (2 * 512), PEP2 (2 * 512),
- * PEP3 (2 * 512), PEP4 (2 * 512)
- * Config 2: PEP1 (2 * 512), PEP2 (2 * 512),
- * PEP3 (4 * 512), PEP4 (N/A)
- * Config 3: PEP1 (2 * 512), PEP2 (2 * 512),
- * PEP3 (2 * 1024), PEP4(N/A)
- * Config 4: PEP1 (4 * 512), PEP2 (N/A),
- * PEP3 (2 * 512), PEP4 (2 * 512)
- * Config 5: PEP1 (4 * 512), PEP2 (N/A),
- * PEP3 (4 * 512), PEP4 (N/A)
- * Config 6: PEP1 (4 * 512), PEP2 (N/A),
- * PEP3 (2 * 1024), PEP4 (N/A)
- * Config 7: PEP1 (2 * 1024), PEP2 (N/A),
- * PEP3 (2 * 512), PEP4 (2 * 512)
- * Config 8: PEP1 (2 * 1024), PEP2 (N/A),
- * PEP3 (4 * 512), PEP4 (N/A)
- * Config 9: PEP1 (2 * 1024), PEP2 (N/A),
- * PEP3 (2 * 1024), PEP4 (N/A)
- * Config 10: PEP1 (3 * 512), PEP2 (N/A),
- * PEP3 (3 * 512), PEP4 (2 * 512)
- * Config 11: PEP1 (3 * 1024), PEP2 (N/A),
- * PEP3 (N/A), PEP4 (2 * 512)
- * Config 12: PEP1 (4 * 1024), PEP2 (N/A),
- * PEP3 (N/A), PEP4 (N/A)
-
- * Valid In Asynchronous Callback: NO
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_CONFIGURATION - the configuration given
- * is not between 1 and 12
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_set_physical_configuration(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The physical endpoint configuration number */
- uint8_t config
- );
-
-/* Summary
- This function sets the hardware configuration for a given endpoint
-
- Description
- This function sets the hardware configuration for a given endpoint.
- This is the method to set the direction of the endpoint, the type
- of endpoint, the size of the endpoint buffer, and the buffering
- style for the endpoint.
-
- * Valid In Asynchronous Callback: NO
-
- Notes
- Add documentation about endpoint configuration limitations
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint parameter is invalid
- * CY_AS_ERROR_INVALID_CONFIGURATION - the endpoint configuration
- * given is not valid
- * CY_AS_ERROR_ENDPOINT_CONFIG_NOT_SET - the physical endpoint
- * configuration is not set
-
- See Also
- * CyAsUsbGetEndPointConfig
- * CyAsUsbEndPointConfig
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_set_end_point_config(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* The configuration information for the endpoint */
- cy_as_usb_end_point_config *config_p
- );
-
-/* Summary
- This function retreives the hardware configuration for
- a given endpoint
-
- Description
- This function gets the hardware configuration for the given
- endpoint. This include information about the direction of
- the endpoint, the type of endpoint, the size of the endpoint
- buffer, and the buffering style for the endpoint.
-
- * Valid In Asynchronous Callback: NO
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint parameter is
- * invalid
-
- See Also
- * CyAsUsbSetEndPointConfig
- * CyAsUsbEndPointConfig
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_get_end_point_config(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest*/
- cy_as_end_point_number_t ep,
- /* The return value containing the endpoint config
- * information */
- cy_as_usb_end_point_config *config_p
- );
-
-/* Summary
- This function commits the configuration information that
- has previously been set.
-
- Description
- The initialization process involves calling CyAsUsbSetEnumConfig()
- and CyAsUsbSetEndPointConfig(). These
- functions do not actually send the configuration information to
- the West Bridge device. Instead, these
- functions store away the configuration information and this
- CyAsUsbCommitConfig() actually finds the
- best hardware configuration based on the requested endpoint
- configuration and sends this optimal
- confiuration down to the West Bridge device.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - a configuration was found and sent
- * to West Bridge
- * CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - the firmware has not been loaded
- * into West Bridge
- * CY_AS_ERROR_INVALID_CONFIGURATION - the configuration requested
- * is not possible
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
-
- See Also
- * CyAsUsbSetEndPointConfig
- * CyAsUsbSetEnumConfig
-*/
-
-EXTERN cy_as_return_status_t
-cy_as_usb_commit_config(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function reads data from a USB endpoint.
-
- Description
- This function reads data from an OUT. This function blocks
- until the read is complete.
- If this is a packet read, a single received USB packet will
- complete the read. If this
- is not a packet read, this function will block until all of
- the data requested has been
- recevied.
-
- * Valid In Asynchronous Callback: NO
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint parameter is
- * invalid
-
- See Also
- * CyAsUsbReadDataAsync
- * CyAsUsbWriteData
- * CyAsUsbWriteDataAsync
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_read_data(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* If CyTrue, this is a packet read */
- cy_bool pktread,
- /* The amount of data to read */
- uint32_t dsize,
- /* The amount of data read */
- uint32_t *dataread,
- /* The buffer to hold the data read */
- void *data
- );
-
-/* Summary
- This function reads data from a USB endpoint
-
- Description
- This function reads data from an OUT endpoint. This
- function will return immediately and the callback
- provided will be called when the read is complete.
- If this is a packet read, then the callback will be
- called on the next received packet. If this is not a
- packet read, the callback will be called when the
- requested data is received.
-
- * Valid In Asynchronous Callback: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint parameter is
- * invalid
-
- See Also
- * CyAsUsbReadData
- * CyAsUsbWriteData
- * CyAsUsbWriteDataAsync
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_read_data_async(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* If CyTrue, this is a packet read */
- cy_bool pktread,
- /* The amount of data to read */
- uint32_t dsize,
- /* The buffer for storing the data */
- void *data,
- /* The callback function to call when the data is read */
- cy_as_usb_io_callback callback
- );
-
-/* Summary
- This function writes data to a USB endpoint
-
- Description
- This function writes data to an IN endpoint data buffer.
- Multiple USB packets may be sent until all data requeste
- has been sent. This function blocks until all of the data
- has been sent.
-
- * Valid In Asynchronous Callback: NO
-
- Notes
- Calling this function with a dsize of zero will result in
- a zero length packet transmitted to the USB host.
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint parameter is
- * invalid
-
- See Also
- * CyAsUsbReadData
- * CyAsUsbReadDataAsync
- * CyAsUsbWriteDataAsync
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_write_data(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint to write data to */
- cy_as_end_point_number_t ep,
- /* The size of the data to write */
- uint32_t dsize,
- /* The data buffer */
- void *data
- );
-
-/* Summary
- This function writes data to a USB endpoint
-
- Description
- This function writes data to an IN endpoint data buffer.
- This function returns immediately and when the write
- completes, or if an error occurs, the callback function
- is called to indicate completion of the write operation.
-
- * Valid In Asynchronous Callback: YES
-
- Notes
- Calling this function with a dsize of zero will result
- in a zero length packet transmitted to the USB host.
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down successfully
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint parameter is
- * invalid
-
- See Also
- * CyAsUsbReadData
- * CyAsUsbReadDataAsync
- * CyAsUsbWriteData
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_write_data_async(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint to write data to */
- cy_as_end_point_number_t ep,
- /* The size of the data */
- uint32_t dsize,
- /* The buffer containing the data */
- void *data,
- /* If true, send a short packet to terminate data */
- cy_bool spacket,
- /* The callback to call when the data is written */
- cy_as_usb_io_callback callback
- );
-
-/* Summary
- This function aborts an outstanding asynchronous
- operation on a given endpoint
-
- Description
- This function aborts any outstanding operation that is
- pending on the given endpoint.
-
- * Valid In Asynchronous Callback: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - this module was shut down
- * successfully
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not
- * running
- * CY_AS_ERROR_ASYNC_NOT_PENDING - no asynchronous USB
- * operation was pending
-
- See Also
- * CyAsUsbReadData
- * CyAsUsbReadDataAsync
- * CyAsUsbWriteData
- * CyAsUsbWriteDataAsync
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_cancel_async(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep
- );
-
-/* Summary
- This function sets a stall condition on a given endpoint
-
- Description
- This function sets a stall condition on the given endpoint.
- If the callback function is not zero, the function is
- executed asynchronously and the callback is called when
- the function is completed. If the callback function is
- zero, this function executes synchronously and will not
- return until the function has completed.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the function succeeded
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint given was invalid,
- * or was not configured as an OUT endpoint
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_INVALID_HANDLE
- * CY_AS_ERROR_INVALID_IN_CALLBACK (only if no cb supplied)
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsUsbGetStall
- * CyAsUsbClearStall
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_set_stall(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
-);
-
-/* Summary
- This function clears a stall condition on a given endpoint
-
- Description
- This function clears a stall condition on the given endpoint.
- If the callback function is not zero, the function is
- executed asynchronously and the callback is called when the
- function is completed. If the callback function is zero, this
- function executes synchronously and will not return until the
- function has completed.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the function succeeded
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint given was invalid,
- * or was not configured as an OUT endpoint
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_INVALID_HANDLE
- * CY_AS_ERROR_INVALID_IN_CALLBACK (only if no cb supplied)
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsUsbGetStall
- * CyAsUsbSetStall
-*/
-
-EXTERN cy_as_return_status_t
-cy_as_usb_clear_stall(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-
-/* Summary
- This function returns the stall status for a given endpoint
-
- Description
- This function returns the stall status for a given endpoint
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the function succeeded
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint given was invalid,
- * or was not configured as an OUT endpoint
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_INVALID_HANDLE
- * CY_AS_ERROR_INVALID_IN_CALLBACK
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsUsbGetStall
- * CyAsUsbSetStall
- * CyAsUsbClearStall
-*/
-
-EXTERN cy_as_return_status_t
-cy_as_usb_get_stall(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* The return value for the stall state */
- cy_bool *stall_p,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function sets a NAK condition on a given endpoint
-
- Description
- This function sets a NAK condition on the given endpoint.
- If the callback function is not zero, the function is
- executed asynchronously and the callback is called when
- the function is completed. If the callback function is
- zero, this function executes synchronously and will not
- return until the function has completed.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the function succeeded
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint given was
- * invalid, or was not configured as an OUT endpoint
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_INVALID_HANDLE
- * CY_AS_ERROR_INVALID_IN_CALLBACK (only if no cb supplied)
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsUsbGetNak
- * CyAsUsbClearNak
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_set_nak(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
-);
-
-/* Summary
- This function clears a NAK condition on a given endpoint
-
- Description
- This function clears a NAK condition on the given endpoint.
- If the callback function is not zero, the function is
- executed asynchronously and the callback is called when the
- function is completed. If the callback function is zero,
- this function executes synchronously and will not return
- until the function has completed.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the function succeeded
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint given was invalid,
- * or was not configured as an OUT endpoint
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_INVALID_HANDLE
- * CY_AS_ERROR_INVALID_IN_CALLBACK (only if no cb supplied)
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsUsbGetNak
- * CyAsUsbSetNak
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_clear_nak(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function returns the NAK status for a given endpoint
-
- Description
- This function returns the NAK status for a given endpoint
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the function succeeded
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_INVALID_ENDPOINT - the endpoint given was invalid,
- * or was not configured as an OUT endpoint
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_INVALID_HANDLE
- * CY_AS_ERROR_INVALID_IN_CALLBACK
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsUsbSetNak
- * CyAsUsbClearNak
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_get_nak(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The endpoint of interest */
- cy_as_end_point_number_t ep,
- /* The return value for the stall state */
- cy_bool *nak_p,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
-);
-
-/* Summary
- This function triggers a USB remote wakeup from the Processor
- API
-
- Description
- When there is a Suspend condition on the USB bus, this function
- programmatically takes the USB bus out of thi suspend state.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the function succeeded
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_INVALID_HANDLE
- * CY_AS_ERROR_INVALID_IN_CALLBACK
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
- * CY_AS_ERROR_NOT_IN_SUSPEND
-
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_signal_remote_wakeup(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- This function sets the threshold levels for mass storage progress
- reports from the West Bridge.
-
- Description
- The West Bridge firmware can be configured to track the amount of
- read/write activity on the mass storage device, and send progress
- reports when the activity level has crossed a threshold level.
- This function sets the threshold levels for the progress reports.
- Set wr_sectors and rd_sectors to 0, if the progress reports are to
- be turned off.
-
- * Valid In Asynchronous Callback: Yes (if cb supplied)
- * Nestable: Yes
-
- Returns
- * CY_AS_ERROR_SUCCESS - the function succeeded
- * CY_AS_ERROR_NOT_RUNNING - the USB stack is not running
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_INVALID_HANDLE - Bad handle
- * CY_AS_ERROR_INVALID_IN_CALLBACK - Synchronous call made
- * while in callback
- * CY_AS_ERROR_OUT_OF_MEMORY - Failed allocating memory for
- * request processing
- * CY_AS_ERROR_NOT_SUPPORTED - Firmware version does not support
- * mass storage progress tracking
- * CY_AS_ERROR_INVALID_RESPONSE - Unexpected response from
- * Firmware
-
- See Also
- * CyAsUsbMSCProgressData
- * CyAsEventUsbMSCProgress
-*/
-EXTERN cy_as_return_status_t
-cy_as_usb_set_m_s_report_threshold(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* Number of sectors written before report is sent */
- uint32_t wr_sectors,
- /* Number of sectors read before report is sent */
- uint32_t rd_sectors,
- /* The callback if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-/* Summary
- Specify which of the partitions on a partitioned mass storage
- device should be made visible to USB.
-
- Description
- West Bridge firmware supports the creation of up to two
- partitions on mass storage devices connected to the West Bridge
- device. When there are two partitions on a device, the user can
- choose which of these partitions should be made visible to the
- USB host through the USB mass storage interface. This function
- allows the user to configure the partitions that should be
- enumerated. At least one partition should be selected through
- this API. If neither partition needs to be enumerated, use
- CyAsUsbSetEnumConfig to control this.
-
- * Valid in Asynchronous callback: Yes (if cb supplied)
- * Nestable: Yes
-
- Returns
- * CY_AS_ERROR_SUCCESS - operation completed successfully
- * CY_AS_ERROR_INVALID_HANDLE - invalid handle to the West
- * Bridge device
- * CY_AS_ERROR_NOT_CONFIGURED - West Bridge device has not
- * been configured
- * CY_AS_ERROR_NO_FIRMWARE - no firmware running on West
- * Bridge device
- * CY_AS_ERROR_NOT_RUNNING - USB stack has not been started
- * CY_AS_ERROR_IN_SUSPEND - West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_INVALID_CALL_SEQUENCE - this API has to be
- * called before CyAsUsbSetEnumConfig
- * CY_AS_ERROR_OUT_OF_MEMORY - failed to get memory to
- * process the request
- * CY_AS_ERROR_NO_SUCH_UNIT - Storage device addressed has
- * not been partitioned
- * CY_AS_ERROR_NOT_SUPPORTED - operation is not supported by
- * active device/firmware.
-
- See Also
- * CyAsStorageCreatePPartition
- * CyAsStorageRemovePPartition
- * CyAsUsbMsType_t
- */
-EXTERN cy_as_return_status_t
-cy_as_usb_select_m_s_partitions(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* Bus index of the device being addressed */
- cy_as_bus_number_t bus,
- /* Device id of the device being addressed */
- uint32_t device,
- /* Selection of partitions to be enumerated */
- cy_as_usb_m_s_type_t type,
- /* The callback, if async call */
- cy_as_function_callback cb,
- /* Client supplied data */
- uint32_t client
- );
-
-extern cy_as_media_type
-cy_as_storage_get_media_from_address(uint16_t v);
-
-extern cy_as_bus_number_t
-cy_as_storage_get_bus_from_address(uint16_t v);
-
-extern uint32_t
-cy_as_storage_get_device_from_address(uint16_t v);
-
-/* For supporting deprecated functions */
-#include "cyasusb_dep.h"
-
-#include "cyas_cplus_end.h"
-
-#endif /* _INCLUDED_CYASUSB_H_ */