summaryrefslogtreecommitdiff
path: root/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasstorage.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/westbridge/astoria/include/linux/westbridge/cyasstorage.h')
-rw-r--r--drivers/staging/westbridge/astoria/include/linux/westbridge/cyasstorage.h2759
1 files changed, 0 insertions, 2759 deletions
diff --git a/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasstorage.h b/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasstorage.h
deleted file mode 100644
index 52b93c3e4813..000000000000
--- a/drivers/staging/westbridge/astoria/include/linux/westbridge/cyasstorage.h
+++ /dev/null
@@ -1,2759 +0,0 @@
-/* Cypress West Bridge API header file (cyasstorage.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_CYASSTORAGE_H_
-#define _INCLUDED_CYASSTORAGE_H_
-
-#include "cyasmedia.h"
-#include "cyasmisc.h"
-#include "cyas_cplus_start.h"
-
-
-/*@@Storage APIs
- Summary
- This section documents the storage APIs supported by the
- West Bridge API.
-
- Description
- The storage API is based on some specific concepts which
- are referenced here.
- * <LINK Storage API Overview>
- * Addressing
- * Ownership
- * <LINK Asynchronous Versus Synchronous Operation>
-*/
-
-/*@@Storage API Overview
- Summary
- Storage devices are identified by media type. Each media
- type is considered a single logical device.
-
- Description
- Each media type has a consistent block size and consists
- of a set of logical blocks numbered from 0 to N - 1 where
- N is the size of the
- media type in blocks. The mass storage APIs defined below
- provide the
- capability to query for devices that are present, and
- read/write data to/from
- these devices.
-*/
-
-/*@@Addressing
- Summary
- Blocks within a storage device are address by a hierarchal
- block address. This
- address consists of the bus number, physical device,
- logical unit, and finally
- block address.
-
- Description
- While currently only a single device of each media type
- is supported, the address
- space reserves space in the future for multiple devices
- of each type. Therefore
- the second element of the address is the specific device
- being addressed within
- a given device type. For this release of the software,
- this value will always be
- zero to address the first device.
-
- The third element of the address is the logical unit.
- A device being managed
- by West Bridge can be partitioned into multiple logical
- units. This partition
- information is stored on each device itself. Currently,
- one of the storage devices
- managed by West Bridge can be partitioned into two
- logical units.
-
- Finally a logical block address is given within the
- logical unit to address an
- individual block.
-*/
-
-/*@@Ownership
- Summary
- While West Bridge supports concurrent block level
- operations from both the USB port and
- the processor port, this is not desirable in most
- situations as the file system
- contained on the storage media cannot be accessed
- concurrently. To insure access
- by only one of USB and the processor, the West Bridge
- API provides for ownership of storage
- devices based on media type.
-
- Description
- The processor requests ownership of a given media type
- by calling CyAsStorageClaim().
- The firmware in West Bridge releases control of the
- media and signals the processor through
- the event callback registered with
- CyAsStorageRegisterCallback(). The specific event is
- the CyAsStorageProcessor. The processor can later
- release the media via a call to
- CyAsStorageRelease(). This call is immediate and
- no callback is required.
-
- If the processor has claimed storage and the USB port
- is connected, West Bridge will need to
- claim the storage to manage the mass storage device.
- West Bridge requests the storage through
- the event callback registered with
- CyAsStorageRegisterCallback(). The specific event is
- CyAsStorageAntioch and is named as such to reflect
- the USB view of storage. This callback
- is a request for the processor to release storage.
- The storage is not actually released
- until the processor calls CyAsStorageRelease().
-
- Note that the CyAsStorageAntioch is only sent when the
- USB storage device is enumerated and
- NOT at every USB operation. The ownership of a given
- storage media type is assumed to belong
- to the processor until the USB connection is established.
- At that point, the storage ownership
- is transferred to West Bridge. After the USB connection
- is broken, ownership can be transferred
- back to the processor.
-*/
-
-/*@@Asynchronous Versus Synchronous Operation
- Summary
- When read or write operations are performed to the
- storage devices, these operations may be
- synchronous or asynchronous. A synchronous operation
- is an operation where the read or write
- operation is requested and the function does not return
- until the operation is complete. This
- type of function is the easiest to use but does not
- provide for optimal usage of the P port processor time.
-
- Description
- An asynchronous operation is one where the function returns
- as soon as the request is started.
- The specific read and write request will complete at some
- time in the future and the P port
- processor will be notified via a callback function. While
- asynchronous functions provide for
- much better usage of the CPU, these function have more
- stringent requirements for use. First,
- any buffer use for data transfer must be valid from the
- function call to request the operation
- through when the callback function is called. This basically
- implies that stack based buffers
- are not acceptable for asynchronous calls. Second, error
- handling must be deferred until the
- callback function is called indicating any kind of error
- that may have occurred.
-*/
-
-/*@@Partitioning
- Summary
- West Bridge API and firmware support the creation of up to
- two logical partitions on one
- of the storage devices that are managed by West Bridge. The
- partitions are managed through
- the CyAsStorageCreatePPartition and CyAsStorageRemovePPartition
- APIs.
-
- Description
- The CyAsStorageCreatePPartition API is used to divide the total
- storage on a storage
- device into two logical units or partitions. Since the partition
- information is stored
- on the storage device in a custom format, partitions should
- only be created on fixed
- storage devices (i.e., no removable SD/MMC cards). Any data
- stored on the device
- before the creation of the partition, is liable to be lost when
- a partition is created.
-
- The CyAsStorageRemovePPartition API is used to remove the
- stored partition information,
- so that all of the device's capacity is treated as a single
- partition again.
-
- When a storage device with two partitions (units) is being
- enumerated as a mass storage
- device through the West Bridge, it is possible to select the
- partitions to be made
- visible to the USB host. This is done through the
- CyAsUsbSelectMSPartitions API.
-*/
-
-/*********************************
- * West Bridge Constants
- **********************************/
-
-/* Summary
- This constants indicates a raw device access to the read/write
- functions
-
- Description
- When performing reading and writing operations on the
- storage devices attached
- to West Bridge, there are cases where writes need to
- happen to raw devices, versus
- the units contained within a device. This is
- specifically required to manage
- the partitions within physical devices. This constant
- is used in calls to
- CyAsStorageRead(), CyAsStorageReadAsync(),
- CyAsStorageWrite() and
- CyAsStorageWriteAsync(), to indicate that the raw
- physical device is being
- accessed and not any specific unit on the device.
-
- See Also
- * CyAsStorageRead
- * CyAsStorageReadAsync
- * CyAsStorageWrite
- * CyAsStorageWriteAsync
-*/
-#define CY_AS_LUN_PHYSICAL_DEVICE (0xffffffff)
-
-/* Summary
- This constant represents the maximum DMA burst length
- supported on a storage endpoint
-
- Description
- West Bridge reserves separate endpoints for accessing
- storage media through the
- CyAsStorageRead() and CyAsStorageWrite() calls. The
- maximum size of these
- endpoints is always 512 bytes, regardless of status
- and speed of the USB
- connection.
-*/
-#define CY_AS_STORAGE_EP_SIZE (512)
-
-/********************************
- * West Bridge Types
- *******************************/
-
-/* Summary
- This type indicates the type of event in an event
- callback from West Bridge
-
- 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 indicates the resonse for
- the call to the callback function.
-
- See Also
- * CyAsStorageEventCallback
- * CyAsStorageRegisterCallback
-*/
-typedef enum cy_as_storage_event {
- /* This event occurs when the West Bridge device has
- detected a USB connect and has enumerated the
- storage controlled by west bridge to the USB port.
- this event is the signal that the processor
- needs to release the storage media. west bridge will
- not have control of the storage media until the
- processor calls cy_as_release_storage() to release
- the specific media. */
- cy_as_storage_antioch,
-
- /* This event occurs when the processor has requested
- ownership of a given media type and west bridge has
- released the media. this event is an indicator
- that the transfer of ownership is complete and the
- processor now owns the given media type. */
- cy_as_storage_processor,
-
- /* This event occurs when a removable media type has
- been removed. */
- cy_as_storage_removed,
-
- /* This event occurs when a removable media type has
- been inserted. */
- cy_as_storage_inserted,
-
- /* This event occurs when the West Bridge device
- * percieves an interrrupt from an SDIO card */
- cy_as_sdio_interrupt
-
-} cy_as_storage_event;
-
-/* Summary
- This type gives the type of the operation in a storage
- operation callback
-
- Description
- This type is used in the callback function for asynchronous
- operation. This type indicates whether it is a
- CyAsStorageRead() or CyAsStorageWrite() operation that
- has completed.
-
- See Also
- * <LINK Asynchronous Versus Synchronous Operation>
- * CyAsStorageRead
- * CyAsStorageWrite
-*/
-typedef enum cy_as_oper_type {
- /* A data read operation */
- cy_as_op_read,
- /* A data write operation */
- cy_as_op_write
-} cy_as_oper_type;
-
-/* Summary
- This data structure describes a specific type of media
-
- Description
- This data structure is the return value from the
- CyAsStorageQueryDevice function. This structure provides
- information about the specific storage device being queried.
-
- See Also
- * CyAsStorageQueryDevice
-*/
-typedef struct cy_as_device_desc {
- /* Type of device */
- cy_as_media_type type;
- /* Is the device removable */
- cy_bool removable;
- /* Is the device writeable */
- cy_bool writeable;
- /* Basic block size for device */
- uint16_t block_size;
- /* Number of LUNs on the device */
- uint32_t number_units;
- /* Is the device password locked */
- cy_bool locked;
- /* Size in bytes of an Erase Unit. Block erase operation
- is only supported for SD storage, and the erase_unit_size
- is invalid for all other kinds of storage. */
- uint32_t erase_unit_size;
-} cy_as_device_desc;
-
-/* Summary
- This data structure describes a specific unit on a
- specific type of media
-
- Description
- This data structure is the return value from the
- CyAsStorageQueryUnit function. This structure provides
- information about the specific unit.
-
- See Also
- * CyAsStorageQueryUnit
-*/
-typedef struct cy_as_unit_desc {
- /* Type of device */
- cy_as_media_type type;
- /* Basic block size for device */
- uint16_t block_size;
- /* Physical start block for LUN */
- uint32_t start_block;
- /* Number of blocks in the LUN */
- uint32_t unit_size;
-} cy_as_unit_desc;
-
-/* Summary
- This function type defines a callback to be called after an
- asynchronous operation
-
- Description
- This function type defines a callback function that is called
- at the completion of any asynchronous read or write operation.
-
- See Also
- * CyAsStorageReadAsync()
- * CyAsStorageWriteAsync()
-*/
-typedef void (*cy_as_storage_callback)(
- /* Handle to the device completing the storage operation */
- cy_as_device_handle handle,
- /* The bus completing the operation */
- cy_as_bus_number_t bus,
- /* The device completing the operation */
- uint32_t device,
- /* The unit completing the operation */
- uint32_t unit,
- /* The block number of the completed operation */
- uint32_t block_number,
- /* The type of operation */
- cy_as_oper_type op,
- /* The error status */
- cy_as_return_status_t status
- );
-
-/* Summary
- This function type defines a callback to be called in the
- event of a storage related event
-
- 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.
-
- See Also
- * CyAsStorageEvent
- * CyAsStorageRegisterCallback
-*/
-typedef void (*cy_as_storage_event_callback)(
- /* Handle to the device sending the event notification */
- cy_as_device_handle handle,
- /* The bus where the event happened */
- cy_as_bus_number_t bus,
- /* The device where the event happened */
- uint32_t device,
- /* The event type */
- cy_as_storage_event evtype,
- /* Event related data */
- void *evdata
- );
-
-/* Summary
- This function type defines a callback to be called after
- an asynchronous sdio operation
-
- Description
- The Callback function is called at the completion of an
- asynchronous sdio read or write operation.
-
- See Also
- * CyAsSdioExtendedRead()
- * CyAsSdioExtendedWrite()
-*/
-typedef void (*cy_as_sdio_callback)(
- /* Handle to the device completing the storage operation */
- cy_as_device_handle handle,
- /* The bus completing the operation */
- cy_as_bus_number_t bus,
- /* The device completing the operation */
- uint32_t device,
- /* The function number of the completing the operation.
- if the status of the operation is either CY_AS_ERROR_IO_ABORTED
- or CY_AS_IO_SUSPENDED then the most significant word parameter will
- contain the number of blocks still pending. */
- uint32_t function,
- /* The base address of the completed operation */
- uint32_t address,
- /* The type of operation */
- cy_as_oper_type op,
- /* The status of the operation */
- cy_as_return_status_t status
- );
-
-/* Summary
- Enumeration of SD/MMC card registers that can be read
- through the API.
-
- Description
- Some of the registers on the SD/MMC card(s) attached to the
- West Bridge can be read through the API layers. This type
- enumerates the registers that can be read.
-
- See Also
- * CyAsStorageSDRegisterRead
- */
-typedef enum cy_as_sd_card_reg_type {
- cy_as_sd_reg_OCR = 0,
- cy_as_sd_reg_CID,
- cy_as_sd_reg_CSD
-} cy_as_sd_card_reg_type;
-
-/* Summary
- Struct encapsulating parameters and return values for a
- CyAsStorageQueryDevice call.
-
- Description
- This struct holds the input parameters and the return values
- for an asynchronous CyAsStorageQueryDevice call.
-
- See Also
- * CyAsStorageQueryDevice
- */
-typedef struct cy_as_storage_query_device_data {
- /* The bus with the device to query */
- cy_as_bus_number_t bus;
- /* The logical device number to query */
- uint32_t device;
- /* The return value for the device descriptor */
- cy_as_device_desc desc_p;
-} cy_as_storage_query_device_data;
-
-
-/* Summary
- Struct encapsulating parameters and return values
- for a CyAsStorageQueryUnit call.
-
- Description
- This struct holds the input parameters and the return
- values for an asynchronous CyAsStorageQueryUnit call.
-
- See Also
- * CyAsStorageQueryUnit
- */
-typedef struct cy_as_storage_query_unit_data {
- /* The bus with the device to query */
- cy_as_bus_number_t bus;
- /* The logical device number to query */
- uint32_t device;
- /* The unit to query on the device */
- uint32_t unit;
- /* The return value for the unit descriptor */
- cy_as_unit_desc desc_p;
-} cy_as_storage_query_unit_data;
-
-/* Summary
- Struct encapsulating the input parameter and return
- values for a CyAsStorageSDRegisterRead call.
-
- Description
- This struct holds the input parameter and return
- values for an asynchronous CyAsStorageSDRegisterRead
- call.
-
- See Also
- * CyAsStorageSDRegisterRead
- */
-typedef struct cy_as_storage_sd_reg_read_data {
- /* Pointer to the result buffer. */
- uint8_t *buf_p;
- /* Length of data to be copied in bytes. */
- uint8_t length;
-} cy_as_storage_sd_reg_read_data;
-
-/* Summary
- Controls which pins are used for card detection
-
- Description
- When a StorageDeviceControl call is made to enable or
- disable card detection this enum is passed in to
- control which pin is used for the detection.
-
- See Also
- * CyAsStorageDeviceControl
-*/
-typedef enum cy_as_storage_card_detect {
- cy_as_storage_detect_GPIO,
- cy_as_storage_detect_SDAT_3
-} cy_as_storage_card_detect;
-
-#ifndef __doxygen__
-#define cy_as_storage_detect_GPIO_0 cy_as_storage_detect_GPIO
-
-/* Length of OCR value in bytes. */
-#define CY_AS_SD_REG_OCR_LENGTH (4)
-/* Length of CID value in bytes. */
-#define CY_AS_SD_REG_CID_LENGTH (16)
-/* Length of CSD value in bytes. */
-#define CY_AS_SD_REG_CSD_LENGTH (16)
-/* Max. length of register response in words. */
-#define CY_AS_SD_REG_MAX_RESP_LENGTH (10)
-
-#endif
-
-/* Summary
- This data structure is the data passed via the evdata
- paramater on a usb event callback for the mass storage
- device progress event.
-
- Description
- This data structure reports the number of sectors that have
- been written and read on the USB mass storage device since
- the last event report. The corresponding event is only sent
- when either the number of writes, or the number of reads has
- crossed a pre-set threshold.
-
- See Also
- * CyAsUsbEventCallback
- * CyAsUsbRegisterCallback
-*/
-typedef struct cy_as_m_s_c_progress_data {
- /* Number of sectors written since the last event. */
- uint32_t wr_count;
- /* Number of sectors read since the last event. */
- uint32_t rd_count;
-} cy_as_m_s_c_progress_data;
-
-/* Summary
-Flag to set Direct Write operation to read back from the
-address written to.
-
-
- See Also
- *CyAsSdioDirectWrite()
-*/
-#define CY_SDIO_RAW (0x01)
-
-
-/* Summary
-Flag to set Extended Read and Write to perform IO
-using a FIFO i.e. read or write from the specified
-address only.
-
- See Also
- *CyAsSdioExtendedRead()
- *CyAsSdioExtendedWrite()
-*/
-#define CY_SDIO_OP_FIFO (0x00)
-
-/* Summary
-Flag to set Extended Read and Write to perform incremental
-IO using the address provided as the base address.
-
-
- See Also
- *CyAsSdioExtendedRead()
- *CyAsSdioExtendedWrite()
-*/
-#define CY_SDIO_OP_INCR (0x02)
-
-/* Summary
-Flag to set Extended Read and Write to Block Mode operation
-
- See Also
- *CyAsSdioExtendedRead()
- *CyAsSdioExtendedWrite()
-*/
-#define CY_SDIO_BLOCKMODE (0x04)
-
-/* Summary
-Flag to set Extended Read and Write to Byte Mode operation
-
- See Also
- *CyAsSdioExtendedRead()
- *CyAsSdioExtendedWrite()
-*/
-#define CY_SDIO_BYTEMODE (0x00)
-
-/* Summary
-Flag to force re/initialization of a function.
-
-Description
-If not set a call to CyAsSdioInitFunction()
-will not initialize a function that has been previously
-initialized.
- See Also
- *CyAsSdioInitFunction()
- */
-#define CY_SDIO_FORCE_INIT (0x40)
-
-/* Summary
-Flag to re-enable the SDIO interrupts.
-
-Description
-Used with a direct read or direct write
-after the Interrupt triggerred by SDIO has been serviced
-and cleared to reset the West Bridge Sdio Interrupt.
- See Also
- *CyAsSdioDirectRead()
- *CyAsSdioDirectWrite()
-*/
-
-#define CY_SDIO_REARM_INT (0x80)
-
-
-/* Summary
- Flag to check if 4 bit support is enabled on a
- low speed card
- See Also
- <link CyAsSDIOCard::card_capability>*/
-#define CY_SDIO_4BLS (0x80)
-
-/* Summary
- Flag to check if card is a low speed card
- See Also
- <link CyAsSDIOCard::card_capability> */
-#define CY_SDIO_LSC (0x40)
-
-/* Summary
- Flag to check if interrupt during multiblock data
- transfer is enabled
- See Also
- <link CyAsSDIOCard::card_capability>*/
-#define CY_SDIO_E4MI (0x20)
-
-/* Summary
- Flag to check if interrupt during multiblock data
- transfer is supported
- See Also
- <link CyAsSDIOCard::card_capability> */
-#define CY_SDIO_S4MI (0x10)
-
-/* Summary
- Flag to check if card supports function suspending.
- See Also
- <link CyAsSDIOCard::card_capability> */
-#define CY_SDIO_SBS (0x08)
-
-/* Summary
- Flag to check if card supports SDIO Read-Wait
- See Also
- <link CyAsSDIOCard::card_capability> */
-#define CY_SDIO_SRW (0x04)
-
-/* Summary
- Flag to check if card supports multi-block transfers
- See Also
- <link CyAsSDIOCard::card_capability> */
-#define CY_SDIO_SMB (0x02)
-
-/* Summary
- Flag to check if card supports Direct IO commands
- during execution of an Extended
- IO function
- See Also
- <link CyAsSDIOCard::card_capability>*/
-#define CY_SDIO_SDC (0x01)
-
-/* Summary
- Flag to check if function has a CSA area.
- See Also
- <link CyAsSDIOFunc::csa_bits> */
-#define CY_SDIO_CSA_SUP (0x40)
-
-/* Summary
- Flag to check if CSA access is enabled.
- See Also
- <link CyAsSDIOFunc::csa_bits> */
-#define CY_SDIO_CSA_EN (0x80)
-
-/* Summary
- Flag to check if CSA is Write protected.
- See Also
- <link CyAsSDIOFunc::csa_bits> */
-#define CY_SDIO_CSA_WP (0x01)
-
-/* Summary
- Flag to check if CSA formatting is prohibited.
- See Also
- <link CyAsSDIOFunc::csa_bits>*/
-#define CY_SDIO_CSA_NF (0x02)
-
-/* Summary
- Flag to check if the function allows wake-up from low
- power mode using some vendor specific method.
- See Also
- <link CyAsSDIOFunc::wakeup_support>*/
-#define CY_SDIO_FN_WUS (0x01)
-
-
-/* Summary
- This data structure stores SDIO function 0
- parameters for a SDIO card
-*/
-typedef struct cy_as_sdio_card {
- /* Number of functions present on the card. */
- uint8_t num_functions;
- /* Memory present(Combo card) or not */
- uint8_t memory_present;
- /* 16 bit manufacturer ID */
- uint16_t manufacturer__id;
- /* Additional vendor specific info */
- uint16_t manufacturer_info;
- /* Max Block size for function 0 */
- uint16_t maxblocksize;
- /* Block size used for function 0 */
- uint16_t blocksize;
- /* SDIO version supported by the card */
- uint8_t sdio_version;
- /* Card capability flags */
- uint8_t card_capability;
-} cy_as_sdio_card;
-
-/* Summary
- This data structure stores SDIO function 1-7 parameters
- for a SDIO card
-*/
-typedef struct cy_as_sdio_func {
- /* SDIO function code. 0 if non standard function */
- uint8_t function_code;
- /* Extended function type code for non-standard function */
- uint8_t extended_func_code;
- /* Max IO Blocksize supported by the function */
- uint16_t maxblocksize;
- /* IO Blocksize used by the function */
- uint16_t blocksize;
- /* 32 bit product serial number for the function */
- uint32_t card_psn;
- /* Code storage area variables */
- uint8_t csa_bits;
- /* Function wake-up support */
- uint8_t wakeup_support;
-} cy_as_sdio_func;
-
-/***********************************
- * West Bridge Functions
- ************************************/
-
-/* Summary
- This function starts the West Bridge storage module.
-
- Description
- This function initializes the West Bridge storage software
- stack and readies this module to service storage related
- requests. If the stack is already running, the reference
- count for the stack is incremented.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- 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_INVALID_HANDLE - an invalid handle was passed in
- * CY_AS_ERROR_SUCCESS - the module started successfully
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsStorageStop
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_start(
- /* Handle to the device */
- cy_as_device_handle handle,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function stops the West Bridge storage module.
-
- Description
- This function decrements the reference count for the
- storage stack and if this count is zero, the storage
- stack is shut down. The shutdown frees all resources
- associated with the storage stack.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Notes
- While all resources associated with the storage 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 USB stack and the USB 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_INVALID_HANDLE - an invalid handle was
- * passed in
- * 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
- * CY_AS_ERROR_ASYNC_PENDING
- * CY_AS_ERROR_OUT_OF_MEMORY
-
- See Also
- * CyAsStorageStart
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_stop(
- /* Handle to the device to configure */
- cy_as_device_handle handle,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function is used to register a callback function
- for the storage API.
-
- 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 function
- registers the callback
- function that is called when an event occurs. Each call
- to this function
- replaces any old callback function with a new callback
- function supplied on
- the most recent call. This function can also be called
- with a callback function
- of NULL in order to remove any existing callback function
-
- * Valid In Asynchronous Callback:YES
-
- 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_NOT_RUNNING - the storage stack has
- * not been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle
- * was passed in
- * CY_AS_ERROR_SUCCESS - the function was registered
- * successfully
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
-
- See Also
- * CyAsStorageEventCallback
- * CyAsStorageEvent
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_register_callback(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The callback function to call for async storage events */
- cy_as_storage_event_callback callback
- );
-
-/* Summary
- This function claims a given media type.
-
- Description
- This function communicates to West Bridge that the
- processor wants control of the
- given storage media type. Each media type can be
- claimed or released by the
- processor independently. As the processor is the
- master for the storage,
- West Bridge should release control of the requested
- media as soon as possible and
- signal the processor via the CyAsStorageProcessor event.
-
- * Valid In Asynchronous Callback: NO
-
- Notes
- This function just notifies West Bridge that the storage
- is desired. The storage
- has not actually been released by West Bridge until the
- registered callback function
- is called with the CyAsStorageProcessor event
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_SUCCESS - this request was successfully
- * transmitted to the West Bridge device
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_MEDIA
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
- * CY_AS_ERROR_NOT_ACQUIRED
-
- See Also:
- * CyAsStorageClaim
- * CyAsStorageRelease
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_claim(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The bus to claim */
- cy_as_bus_number_t bus,
- /* The device to claim */
- uint32_t device,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function releases a given media type.
-
- Description
- This function communicates to West Bridge that the
- processor has released control of
- the given storage media type. Each media type can
- be claimed or released by the
- processor independently. As the processor is the
- master for the storage, West Bridge
- can now assume ownership of the media type. No callback
- or event is generated.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle
- * was passed in
- * CY_AS_ERROR_SUCCESS - the media was successfully
- * released
- * CY_AS_ERROR_MEDIA_NOT_CLAIMED - the media was not
- * claimed by the P port
- * CY_AS_ERROR_TIMEOUT - a timeout occurred
- * communicating with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_MEDIA
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsStorageClaim
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_release(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The bus to release */
- cy_as_bus_number_t bus,
- /* The device to release */
- uint32_t device,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function information about the number of devices present
- on a given bus
-
- Description
- This function retrieves information about how many devices on
- on the given
- West Bridge bus.
-
- * Valid In Asynchronous Callback: NO
-
- Notes
- While the current implementation of West Bridge only
- supports one of logical device of
- each media type, future versions WestBridge/Antioch may
- support multiple devices.
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred
- * communicating with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsStorageQueryDevice
- * CyAsStorageQueryUnit
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_query_bus(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The bus to query */
- cy_as_bus_number_t bus,
- /* The return value containing the number of
- devices present for this media type */
- uint32_t *count,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function information about the number of devices
- present for a given media type
-
- Description
- This function retrieves information about how many
- devices of a given media type are attached to West Bridge.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Notes
- While the current implementation of West Bridge only
- supports one of logical device of each media type, future
- versions West Bridge may support multiple devices.
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred
- * communicating with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsStorageQueryMedia
- * CyAsMediaType
- * CyAsStorageQueryDevice
- * CyAsStorageQueryUnit
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_query_media(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The type of media to query */
- cy_as_media_type type,
- /* The return value containing the number of
- devices present for this media type */
- uint32_t *count,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function returns information about a given device
- of a specific media type
-
- Description
- This function retrieves information about a device of a
- given type of media. The function is called with a given
- media type and device and a pointer to a media descriptor
- (CyAsDeviceDesc). This function fills in the data in the
- media descriptor to provide information about the
- attributes of the device of the given device.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Notes
- Currently this API only supports a single logical device
- of each media type. Therefore the only acceptable value
- for the parameter device is zero (0).
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_NO_SUCH_MEDIA
- * CY_AS_ERROR_NO_SUCH_DEVICE
- * CY_AS_ERROR_INVALID_RESPONSE
-
- See Also
- * CyAsMediaType
- * CyAsStorageQueryMedia
- * CyAsStorageQueryUnit
- * CyAsDeviceDesc
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_query_device(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* Parameters and return value for the query call */
- cy_as_storage_query_device_data *data,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function returns information about a given unit on a
- specific device
-
- Description
- This function retrieves information about a device of a
- given logical unit. The function is called with a given
- media type, device address, unit address, and a pointer
- to a unit descriptor (CyAsUnitDesc). This function fills
- in the data in the unit descriptor to provide information
- about the attributes of the device of the given logical
- unit.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_NO_SUCH_DEVICE
- * CY_AS_ERROR_NO_SUCH_UNIT
- * CY_AS_ERROR_INVALID_RESPONSE
-
-
- See Also
- * CyAsMediaType
- * CyAsStorageQueryMedia
- * CyAsStorageQueryDevice
- * CyAsUnitDesc
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_query_unit(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* Parameters and return value for the query call */
- cy_as_storage_query_unit_data *data_p,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function enables/disables the handling of SD/MMC card
- detection and SD/MMC write protection in West Bridge Firmware.
-
- Description
- If the detection of SD/MMC card insertion or removal is being
- done by the Processor directly, the West Bridge firmware needs
- to be instructed to disable the card detect feature. Also, if
- the hardware design does not use the SD_WP GPIO of the West
- Bridge to handle SD card's write protect notch, the handling
- of write protection if firmware should be disabled. This API
- is used to enable/disable the card detect and write protect
- support in West Bridge firmware.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the feature controls were
- * set successfully
- * CY_AS_ERROR_NO_SUCH_BUS - the specified bus is invalid
- * CY_AS_ERROR_NOT_SUPPORTED - function not supported on
- * the device in the specified bus
- * CY_AS_ERROR_IN_SUSPEND - the West Brdige device is in
- * suspended mode
- * 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_INVALID_HANDLE
- * CY_AS_ERROR_OUT_OF_MEMORY
- * CY_AS_ERROR_INVALID_RESPONSE
-
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_device_control(
- /* Handle to the West Bridge device */
- cy_as_device_handle handle,
- /* The bus to control */
- cy_as_bus_number_t bus,
- /* The device to control */
- uint32_t device,
- /* Enable/disable control for card detection */
- cy_bool card_detect_en,
- /* Enable/disable control for write protect handling */
- cy_bool write_prot_en,
- /* Control which pin is used for card detection */
- cy_as_storage_card_detect config_detect,
- /* Callback to be called when the operation is complete */
- cy_as_function_callback cb,
- /* Client data to be passed to the callback */
- uint32_t client
- );
-
-/* Summary
- This function reads one or more blocks of data from
- the storage system.
-
- Description
- This function synchronously reads one or more blocks
- of data from the given media
- type/device and places the data into the data buffer
- given. This function does not
- return until the data is read and placed into the buffer.
-
- * Valid In Asynchronous Callback: NO
-
- Notes
- If the Samsung CEATA drive is the target for a
- read/write operation, the maximum
- number of sectors that can be accessed through a
- single API call is limited to 2047.
- Longer accesses addressed to a Samsung CEATA drive
- can result in time-out errors.
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle
- * was passed in
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred
- * communicating with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified
- * does not exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified
- * media/device pair does not exist
- * CY_AS_ERROR_NO_SUCH_UNIT - the unit specified
- * does not exist
- * CY_AS_ERROR_ASYNC_PENDING - an async operation
- * is pending
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was
- * error in reading from the media
- * CY_AS_ERROR_MEDIA_WRITE_PROTECTED - the media is
- * write protected
- * CY_AS_ERROR_INVALID_PARAMETER - Reads/Writes greater
- * than 4095 logic blocks are not allowed
-
- See Also
- * CyAsStorageReadAsync
- * CyAsStorageWrite
- * CyAsStorageWriteAsync
- * CyAsStorageCancelAsync
- * <LINK Asynchronous Versus Synchronous Operation>
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_read(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The bus to access */
- cy_as_bus_number_t bus,
- /* The device to access */
- uint32_t device,
- /* The unit to access */
- uint32_t unit,
- /* The first block to access */
- uint32_t block,
- /* The buffer where data will be placed */
- void *data_p,
- /* The number of blocks to be read */
- uint16_t num_blocks
- );
-
-/* Summary
- This function asynchronously reads one or more blocks of data
- from the storage system.
-
- Description
- This function asynchronously reads one or more blocks of
- data from the given media
- type/device and places the data into the data buffer given.
- This function returns
- as soon as the request is transmitted to the West Bridge
- device but before the data is
- available. When the read is complete, the callback function
- is called to indicate the
- data has been placed into the data buffer. Note that the
- data buffer must remain
- valid from when the read is requested until the callback
- function is called.
-
- * Valid In Asynchronous Callback: YES
-
- Notes
- If the Samsung CEATA drive is the target for a read/write
- operation, the maximum
- number of sectors that can be accessed through a single API
- call is limited to 2047.
- Longer accesses addressed to a Samsung CEATA drive can
- result in time-out errors.
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle
- * was passed in
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred
- * communicating with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_ASYNC_PENDING - an async operation
- * is pending
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error
- * in reading from the media
- * CY_AS_ERROR_MEDIA_WRITE_PROTECTED - the media is
- * write protected
- * CY_AS_ERROR_QUERY_DEVICE_NEEDED - Before an
- * asynchronous read can be issue a call to
- * CyAsStorageQueryDevice must be made
- * CY_AS_ERROR_INVALID_PARAMETER - Reads/Writes greater
- * than 4095 logic blocks are not allowed
-
- See Also
- * CyAsStorageRead
- * CyAsStorageWrite
- * CyAsStorageWriteAsync
- * CyAsStorageCancelAsync
- * CyAsStorageQueryDevice
- * <LINK Asynchronous Versus Synchronous Operation>
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_read_async(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The bus to access */
- cy_as_bus_number_t bus,
- /* The device to access */
- uint32_t device,
- /* The unit to access */
- uint32_t unit,
- /* The first block to access */
- uint32_t block,
- /* The buffer where data will be placed */
- void *data_p,
- /* The number of blocks to be read */
- uint16_t num_blocks,
- /* The function to call when the read is complete
- or an error occurs */
- cy_as_storage_callback callback
- );
-
-/* Summary
- This function writes one or more blocks of data
- to the storage system.
-
- Description
- This function synchronously writes one or more blocks of
- data to the given media/device.
- This function does not return until the data is written
- into the media.
-
- * Valid In Asynchronous Callback: NO
-
- Notes
- If the Samsung CEATA drive is the target for a read/write
- operation, the maximum
- number of sectors that can be accessed through a single
- API call is limited to 2047.
- Longer accesses addressed to a Samsung CEATA drive can
- result in time-out errors.
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred
- * communicating with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does
- * not exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified
- * media/device pair does not exist
- * CY_AS_ERROR_NO_SUCH_UNIT - the unit specified
- * does not exist
- * CY_AS_ERROR_ASYNC_PENDING - an async operation
- * is pending
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error
- * in reading from the media
- * CY_AS_ERROR_MEDIA_WRITE_PROTECTED - the media is
- * write protected
- * CY_AS_ERROR_INVALID_PARAMETER - Reads/Writes greater
- * than 4095 logic blocks are not allowed
-
- See Also
- * CyAsStorageRead
- * CyAsStorageReadAsync
- * CyAsStorageWriteAsync
- * CyAsStorageCancelAsync
- * <LINK Asynchronous Versus Synchronous Operation>
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_write(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The bus to access */
- cy_as_bus_number_t bus,
- /* The device to access */
- uint32_t device,
- /* The unit to access */
- uint32_t unit,
- /* The first block to access */
- uint32_t block,
- /* The buffer containing the data to be written */
- void *data_p,
- /* The number of blocks to be written */
- uint16_t num_blocks
- );
-
-/* Summary
- This function asynchronously writes one or more blocks
- of data to the storage system
-
- Description
- This function asynchronously writes one or more blocks of
- data to the given media type/device.
- This function returns as soon as the request is transmitted
- to the West Bridge device
- but before the data is actually written. When the write is
- complete, the callback
- function is called to indicate the data has been physically
- written into the media.
-
- * Valid In Asynchronous Callback: YES
-
- Notes
- If the Samsung CEATA drive is the target for a read/write
- operation, the maximum
- number of sectors that can be accessed through a single API
- call is limited to 2047.
- Longer accesses addressed to a Samsung CEATA drive can
- result in time-out errors.
-
- Notes
- The data buffer must remain valid from when the write is
- requested until the callback function is called.
-
- 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_NOT_RUNNING - the storage stack has
- * not been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was passed in
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_ASYNC_PENDING - an async operation is
- * pending
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in
- * reading from the media
- * CY_AS_ERROR_MEDIA_WRITE_PROTECTED - the media is write
- * protected
- * CY_AS_ERROR_QUERY_DEVICE_NEEDED - A query device call is
- * required before async writes are allowed
- * CY_AS_ERROR_INVALID_PARAMETER - Reads/Writes greater
- * than 4095 logic blocks are not allowed
-
- See Also
- * CyAsStorageRead
- * CyAsStorageWrite
- * CyAsStorageReadAsync
- * CyAsStorageCancelAsync
- * CyAsStorageQueryDevice
- * <LINK Asynchronous Versus Synchronous Operation>
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_write_async(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* The bus to access */
- cy_as_bus_number_t bus,
- /* The device to access */
- uint32_t device,
- /* The unit to access */
- uint32_t unit,
- /* The first block to access */
- uint32_t block,
- /* The buffer where the data to be written is stored */
- void *data_p,
- /* The number of blocks to be written */
- uint16_t num_blocks,
- /* The function to call when the write is complete
- or an error occurs */
- cy_as_storage_callback callback
- );
-
-/* Summary
- This function aborts any outstanding asynchronous operation
-
- Description
- This function aborts any asynchronous block read or block
- write operation. As only a single asynchronous block read
- or write operation is possible at one time, this aborts
- the single operation in progress.
-
- * Valid In Asynchronous Callback: YES
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was passed in
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_OPERATION_PENDING - no asynchronous
- * operation is pending
-
- See Also
- * CyAsStorageRead
- * CyAsStorageReadAsync
- * CyAsStorageWrite
- * CyAsStorageWriteAsync
- * <LINK Asynchronous Versus Synchronous Operation>
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_cancel_async(
- /* Handle to the device with outstanding async request */
- cy_as_device_handle handle
- );
-
-/* Summary
- This function is used to read the content of SD registers
-
- Description
- This function is used to read the contents of CSD, CID and
- CSD registers of the SD Card.
-
- * Valid In Asynchronous Callback: YES (if cb supplied)
- * Nestable: YES
-
- Returns
- * CY_AS_ERROR_SUCCESS - the read operation was successful
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was passed in
- * 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_NOT_RUNNING - the storage stack has not been
- * started
- * CY_AS_ERROR_IN_SUSPEND - The West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device pair
- * does not exist
- * CY_AS_ERROR_INVALID_PARAMETER - The register type is invalid
- * or the media is not supported on the bus
- * CY_AS_ERROR_OUT_OF_MEMORY - failed to get memory to process
- * request
- * CY_AS_ERROR_INVALID_RESPONSE - communication failure with
- * West Bridge firmware
-
- See Also
- * CyAsStorageSDRegReadData
- */
-EXTERN cy_as_return_status_t
-cy_as_storage_sd_register_read(
- /* Handle to the West Bridge device. */
- cy_as_device_handle handle,
- /* The bus to query */
- cy_as_bus_number_t bus,
- /* The device to query */
- uint8_t device,
- /* The type of register to read. */
- cy_as_sd_card_reg_type reg_type,
- /* Output data buffer and length. */
- cy_as_storage_sd_reg_read_data *data_p,
- /* Callback function to call when done. */
- cy_as_function_callback cb,
- /* Call context to send to the cb function. */
- uint32_t client
- );
-
-/* Summary
- Creates a partition starting at the given block and using the
- remaining blocks on the card.
-
- Description
- Storage devices attached to West Bridge can be partitioned
- into two units.
- The visibility of these units through the mass storage
- interface can be
- individually controlled. This API is used to partition
- a device into two.
-
- * Valid in Asynchronous Callback: Yes (if cb supplied)
- * Nestable: Yes
-
- Returns
- * CY_AS_ERROR_SUCCESS - the partition was successfully created
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was passed in
- * 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_NOT_RUNNING - the storage stack has not been
- * started
- * CY_AS_ERROR_IN_SUSPEND - The West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_USB_RUNNING - Partition cannot be created while
- * USB stack is active
- * CY_AS_ERROR_OUT_OF_MEMORY - failed to get memory to
- * process request
- * CY_AS_ERROR_INVALID_REQUEST - feature not supported by
- * active device or firmware
- * CY_AS_ERROR_INVALID_RESPONSE - communication failure with
- * West Bridge firmware
- * CY_AS_ERROR_ALREADY_PARTITIONED - the storage device already
- * has been partitioned
- * CY_AS_ERROR_INVALID_BLOCK - Size specified for the partition
- * exceeds the actual device capacity
-
- See Also
- * <LINK Partitioning>
- * CyAsStorageRemovePPartition
- */
-EXTERN cy_as_return_status_t
-cy_as_storage_create_p_partition(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* Bus on which the device to be partitioned is connected */
- cy_as_bus_number_t bus,
- /* Device number to be partitioned */
- uint32_t device,
- /* Size of partition number 0 in blocks */
- uint32_t size,
- /* Callback in case of async call */
- cy_as_function_callback cb,
- /* Client context to pass to the callback */
- uint32_t client
- );
-
-/* Summary
- Removes the partition table on a storage device connected
- to the West Bridge.
-
- Description
- Storage devices attached to West Bridge can be partitioned
- into two units.This partition information is stored on the
- device and is non-volatile. This API is used to remove the
- stored partition information and make the entire device
- visible as a single partition (unit).
-
- * Valid in Asynchronous Callback: Yes (if cb supplied)
- * Nestable: Yes
-
- Returns
- * CY_AS_ERROR_SUCCESS - the partition was successfully
- * deleted
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_IN_SUSPEND - The West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_USB_RUNNING - Partition cannot be created
- * while USB stack is active
- * CY_AS_ERROR_OUT_OF_MEMORY - failed to get memory to
- * process request
- * CY_AS_ERROR_INVALID_REQUEST - operation not supported
- * by active device/firmware
- * CY_AS_ERROR_NO_SUCH_UNIT - the addressed device is
- * not partitioned
-
- See Also
- * <LINK Partitioning>
- * CyAsStorageCreatePPartition
- */
-EXTERN cy_as_return_status_t
-cy_as_storage_remove_p_partition(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* Bus on which device of interest is connected */
- cy_as_bus_number_t bus,
- /* Device number of interest */
- uint32_t device,
- /* Callback in case of async call */
- cy_as_function_callback cb,
- /* Client context to pass to the callback */
- uint32_t client
- );
-
-/* Summary
- Returns the amount of data read/written to the given
- device from the USB host.
-
- Description
-
- * Valid in Asynchronous Callback: Yes (if cb supplied)
- * Nestable: Yes
-
- Returns
- * CY_AS_ERROR_SUCCESS - API call completed successfully
- * CY_AS_ERROR_INVALID_HANDLE - Invalid West Bridge device
- * handle
- * CY_AS_ERROR_NOT_CONFIGURED - West Bridge device has
- * not been configured
- * CY_AS_ERROR_NO_FIRMWARE - No firmware image has been
- * loaded on West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - Storage stack has not been
- * started
- * CY_AS_ERROR_NOT_SUPPORTED - This function is not
- * supported by active firmware version
- * CY_AS_ERROR_OUT_OF_MEMORY - Failed to get memory to
- * process the request
- * CY_AS_ERROR_TIMEOUT - West Bridge firmware did not
- * respond to request
- * CY_AS_ERROR_INVALID_RESPONSE - Unexpected reply from
- * West Bridge firmware
-
- See Also
- * CyAsUsbSetMSReportThreshold
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_get_transfer_amount(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* Bus on which device of interest is connected */
- cy_as_bus_number_t bus,
- /* Device number of interest */
- uint32_t device,
- /* Return value containing read/write sector counts. */
- cy_as_m_s_c_progress_data *data_p,
- /* Callback in case of async call */
- cy_as_function_callback cb,
- /* Client context to pass to the callback */
- uint32_t client
- );
-
-/* Summary
- Performs a Sector Erase on an attached SD Card
-
- Description
- This allows you to erase an attached SD card. The area to erase
- is specified in terms of a starting Erase Unit and a number of
- Erase Units. The size of each Erase Unit is defined in the
- DeviceDesc returned from a StorageQueryDevice call and it can
- differ between SD cards.
-
- A large erase can take a while to complete depending on the SD
- card. In such a case it is recommended that an async call is made.
-
- Returns
- * CY_AS_ERROR_SUCCESS - API call completed 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_NOT_RUNNING - the storage stack has not been
- * started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was passed in
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_ASYNC_PENDING - an async operation is pending
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in
- * reading from the media
- * CY_AS_ERROR_MEDIA_WRITE_PROTECTED - the media is write protected
- * CY_AS_ERROR_QUERY_DEVICE_NEEDED - A query device call is
- * required before erase is allowed
- * CY_AS_ERROR_NO_SUCH_BUS
- * CY_AS_ERROR_NO_SUCH_DEVICE
- * CY_AS_ERROR_NOT_SUPPORTED - Erase is currently only supported
- * on SD and using SD only firmware
- * CY_AS_ERROR_OUT_OF_MEMORY
-
- See Also
- * CyAsStorageSDRegisterRead
-*/
-EXTERN cy_as_return_status_t
-cy_as_storage_erase(
- /* Handle to the device of interest */
- cy_as_device_handle handle,
- /* Bus on which device of interest is connected */
- cy_as_bus_number_t bus,
- /* Device number of interest */
- uint32_t device,
- /* Erase Unit to start the erase */
- uint32_t erase_unit,
- /* Number of Erase Units to erase */
- uint16_t num_erase_units,
- /* Callback in case of async call */
- cy_as_function_callback cb,
- /* Client context to pass to the callback */
- uint32_t client
- );
-
-/* Summary
- This function is used to read a Tuple from the SDIO CIS area.
-
- Description
- This function is used to read a Tuple from the SDIO CIS area.
- This function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device
- * is in suspend mode
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not
- * exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_ASYNC_PENDING - an async operation is pending
- * CY_AS_ERROR_INVALID_REQUEST - an invalid IO request
- * type was made
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was
- * received from the firmware
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in
- * reading from the media
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made to
- * an invalid function
- * CY_AS_ERROR_INVALID_ENDPOINT - A DMA request was made to
- * an invalid endpoint
- * CY_AS_ERROR_ENDPOINT_DISABLED - A DMA request was made to
- * a disabled endpoint
-
-*/
-cy_as_return_status_t
-cy_as_sdio_get_c_i_s_info(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Id of tuple to be fetched */
- uint16_t tuple_id,
- /* Buffer to hold tuple read from card.
- should be at least 256 bytes in size */
- uint8_t *data_p
- );
-
-
-/* Summary
- This function is used to read properties of the SDIO card.
-
- Description
- This function is used to read properties of the SDIO card
- into a CyAsSDIOCard structure.
- This function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not been
- * started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_SUCCESS - the card information was returned
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not
- * exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was
- * received from the firmware
-
-*/
-cy_as_return_status_t
-cy_as_sdio_query_card(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* Buffer to store card properties */
- cy_as_sdio_card *data_p
- );
-
-/* Summary
- This function is used to reset a SDIO card.
-
- Description
- This function is used to reset a SDIO card by writing to
- the reset bit in the CCCR and reinitializing the card. This
- function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not
- * exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was
- * received from the firmware
- */
-cy_as_return_status_t
-cy_as_sdio_reset_card(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device
- );
-
-/* Summary
- This function performs a Synchronous 1 byte read from the sdio
- device function.
-
- Description
- This function is used to perform a synchronous 1 byte read
- from an SDIO card function. This function is to be used only
- for IO to an SDIO card as other media will not respond to the
- SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was passed
- * in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device pair
- * does not exist
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was received
- * from the firmware
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in reading
- * from the media
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made to an
- * invalid function
- * CY_AS_ERROR_FUNCTION_SUSPENDED - The function to which read
- * was attempted is in suspend
-*/
-cy_as_return_status_t
-cy_as_sdio_direct_read(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Address for IO */
- uint32_t address,
- /* Set to CY_SDIO_REARM_INT to reinitialize SDIO interrupt */
- uint8_t misc_buf,
- /* Buffer to hold byte read from card */
- uint8_t *data_p
- );
-
-/* Summary
- This function performs a Synchronous 1 byte write to the
- sdio device function.
-
- Description
- This function is used to perform a synchronous 1 byte write
- to an SDIO card function.
- This function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not been
- * started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was received
- * from the firmware
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in
- * reading from the media
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made to
- * an invalid function
- * CY_AS_ERROR_FUNCTION_SUSPENDED - The function to which
- * write was attempted is in suspend
-*/
-cy_as_return_status_t
-cy_as_sdio_direct_write(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Address for IO */
- uint32_t address,
- /* Set to CY_SDIO_REARM_INT to reinitialize SDIO interrupt,
- set to CY_SDIO_RAW for read after write */
- uint8_t misc_buf,
- /* Byte to write */
- uint16_t argument,
- /* Buffer to hold byte read from card in Read after write mode */
- uint8_t *data_p
- );
-
-/* Summary
- This function is used to set the blocksize of an SDIO function.
-
- Description
- This function is used to set the blocksize of an SDIO function.
- This function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not
- * exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory
- * available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was
- * received from the firmware
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in
- * reading from the media
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made
- * to an invalid function
- * CY_AS_ERROR_INVALID_BLOCKSIZE - An incorrect blocksize
- * was passed to the function.
- * CY_AS_ERROR_FUNCTION_SUSPENDED - The function to which
- * write was attempted is in suspend
-*/
-cy_as_return_status_t
-cy_as_sdio_set_blocksize(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Block size to set. */
- uint16_t blocksize
- );
-
-/* Summary
- This function is used to read Multibyte/Block data from a
- IO function.
-
- Description
- This function is used to read Multibyte/Block data from a
- IO function. This function is to be used only for IO to an
- SDIO card as other media will not respond to the SDIO
- command set.
-
- * Valid in Asynchronous Callback: YES
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating with
- * the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_ASYNC_PENDING - an async operation is pending
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was received
- * from the firmware
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in
- * reading from the media
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made to
- * an invalid function
- * CY_AS_ERROR_INVALID_BLOCKSIZE - An incorrect blocksize or
- * block count was passed to the function.
- * CY_AS_ERROR_FUNCTION_SUSPENDED - The function to which
- * write was attempted is in suspend
- * CY_AS_ERROR_IO_ABORTED - The IO operation was aborted
- * CY_AS_ERROR_IO_SUSPENDED - The IO operation was suspended
- * CY_AS_ERROR_INVALID_REQUEST - An invalid request was
- * passed to the card.
-
-*/
-cy_as_return_status_t
-cy_as_sdio_extended_read(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Base Address for IO */
- uint32_t address,
- /* Set to CY_SDIO_BLOCKMODE for block IO,
- CY_SDIO_BYTEMODE for multibyte IO,
- CY_SDIO_OP_FIFO to read multiple bytes from the
- same address, CY_SDIO_OP_INCR to read bytes from
- the incrementing addresses */
- uint8_t misc_buf,
- /* Block/Byte count to read */
- uint16_t argument,
- /* Buffer to hold data read from card */
- uint8_t *data_p,
- /* Callback in case of Asyncronous call. 0 if Synchronous */
- cy_as_sdio_callback callback
- );
-
-/* Summary
- This function is used to write Multibyte/Block data
- to a IO function.
-
- Description
- This function is used to write Multibyte/Block data
- to a IO function. This function is to be used only
- for IO to an SDIO card as other media will not respond
- to the SDIO command set.
-
- * Valid in Asynchronous Callback: YES
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not
- * exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_ASYNC_PENDING - an async operation is pending
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was
- * received from the firmware
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in
- * reading from the media
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made
- * to an invalid function
- * CY_AS_ERROR_INVALID_BLOCKSIZE - An incorrect blocksize or
- * block count was passed to the function.
- * CY_AS_ERROR_FUNCTION_SUSPENDED - The function to which
- * write was attempted is in suspend
- * CY_AS_ERROR_IO_ABORTED - The IO operation was aborted
- * CY_AS_ERROR_IO_SUSPENDED - The IO operation was suspended
- * CY_AS_ERROR_INVALID_REQUEST - An invalid request was
- * passed to the card.
-*/
-cy_as_return_status_t
-cy_as_sdio_extended_write(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Base Address for IO */
- uint32_t address,
- /* Set to CY_SDIO_BLOCKMODE for block IO,
- CY_SDIO_BYTEMODE for multibyte IO,
- CY_SDIO_OP_FIFO to write multiple bytes to the same address,
- CY_SDIO_OP_INCR to write multiple bytes to incrementing
- addresses */
- uint8_t misc_buf,
- /* Block/Byte count to write
- in case of byte mode the count should not exceed the block size
- or 512, whichever is smaller.
- in case of block mode, maximum number of blocks is 511. */
- uint16_t argument,
- /* Buffer to hold data to be written to card. */
- uint8_t *data_p,
- /* Callback in case of Asyncronous call. 0 if Synchronous */
- cy_as_sdio_callback callback
- );
-
-/* Summary
- This function is used to initialize a SDIO card function.
-
- Description
- This function is used to initialize a SDIO card function
- (1 - 7). This function is to be used only for IO to an
- SDIO card as other media will not respond to the SDIO
- command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not been
- * started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was passed
- * in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was
- * received from the firmware
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error in
- * reading from the media
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made
- * to an invalid function
-*/
-cy_as_return_status_t
-cy_as_sdio_init_function(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Set to CY_SDIO_FORCE_INIT to reinitialize function */
- uint8_t misc_buf
- );
-
-/* Summary
- This function is used to get properties of a SDIO card function.
-
- Description
- This function is used to get properties of a SDIO card functio
- (1 - 7) into a CyAsSDIOFunc structure. This function is to be
- used only for IO to an SDIO card as other media will not respond
- to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not been
- * started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was passed
- * in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the media specified does
- * not exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device pair
- * does not exist
- * CY_AS_ERROR_INVALID_FUNCTION - An IO request was made to
- * an invalid function
-*/
-cy_as_return_status_t
-cy_as_sdio_query_function(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Buffer to store function properties */
- cy_as_sdio_func *data_p
- );
-
-/* Summary
- This function is used to Abort the current IO function.
-
- Description
- This function is used to Abort the current IO function.
- This function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not
- * exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified
- * media/device pair does not exist
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory
- * available
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made
- * to an invalid function
-*/
-cy_as_return_status_t
-cy_as_sdio_abort_function(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no
- );
-
-/* Summary
- This function is used to Disable IO to an SDIO function.
-
- Description
- This function is used to Disable IO to an SDIO function.
- This function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is
- * in suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not
- * exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified media/device
- * pair does not exist
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made
- * to an invalid function
-*/
-cy_as_return_status_t
-cy_as_sdio_de_init_function(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no
- );
-
-/* Summary
- This function is used to Suspend the current IO function.
-
- Description
- This function is used to Suspend the current IO function.
- This function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is in
- * suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred communicating
- * with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified does not
- * exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified
- * media/device pair does not exist
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory
- * available
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was made
- * to an invalid function
-*/
-cy_as_return_status_t
-cy_as_sdio_suspend(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no
- );
-
-/* Summary
- This function is used to resume a Suspended IO function.
-
- Description
- This function is used to resume a Suspended IO function.
- This function is to be used only for IO to an SDIO card as
- other media will not respond to the SDIO command set.
-
- * Valid in Asynchronous Callback: NO
- * Valid on Antioch device: NO
-
- 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_NOT_RUNNING - the storage stack has not
- * been started
- * CY_AS_ERROR_INVALID_HANDLE - an invalid handle was
- * passed in
- * CY_AS_ERROR_IN_SUSPEND - the West Bridge device is
- * in suspend mode
- * CY_AS_ERROR_SUCCESS - the media information was
- * returned
- * CY_AS_ERROR_TIMEOUT - a timeout occurred
- * communicating with the West Bridge device
- * CY_AS_ERROR_NOT_RUNNING - the stack is not running
- * CY_AS_ERROR_NO_SUCH_BUS - the bus specified
- * does not exist
- * CY_AS_ERROR_NO_SUCH_DEVICE - the specified
- * media/device pair does not exist
- * CY_AS_ERROR_ASYNC_PENDING - an async operation
- * is pending
- * CY_AS_ERROR_OUT_OF_MEMORY - insufficient memory
- * available
- * CY_AS_ERROR_INVALID_RESPONSE - an error message was
- * received from the firmware
- * CY_AS_ERROR_MEDIA_ACCESS_FAILURE - there was error
- * in reading from the media
- * CY_AS_ERROR_INVALID_FUNCTION - An IO attempt was
- * made to an invalid function
- * CY_AS_ERROR_IO_ABORTED - The IO operation was
- * aborted
- * CY_AS_ERROR_IO_SUSPENDED - The IO operation was
- * suspended
- * CY_AS_ERROR_INVALID_REQUEST - An invalid request was
- * passed to the card.
-
-*/
-cy_as_return_status_t
-cy_as_sdio_resume(
- /* Handle to the Westbridge device */
- cy_as_device_handle handle,
- /* Bus to use */
- cy_as_bus_number_t bus,
- /* Device number */
- uint32_t device,
- /* IO function Number */
- uint8_t n_function_no,
- /* Operation to resume (Read or Write) */
- cy_as_oper_type op,
- /* Micellaneous buffer same as for Extended read and Write */
- uint8_t misc_buf,
- /* Number of pending blocks for IO. Should be less
- than or equal to the maximum defined for extended
- read and write */
- uint16_t pendingblockcount,
- /* Buffer to continue the Suspended IO operation */
- uint8_t *data_p
- );
-
-
-
-/* For supporting deprecated functions */
-#include "cyasstorage_dep.h"
-
-#include "cyas_cplus_end.h"
-
-#endif /* _INCLUDED_CYASSTORAGE_H_ */