blob: b555c6c245249957762fb531c7205b8ea4575b7c [file] [log] [blame]
/* Cypress West Bridge API header file (cyasmisc.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_CYASMISC_H_
#define _INCLUDED_CYASMISC_H_
#include "cyashal.h"
#include "cyastypes.h"
#include "cyasmedia.h"
#include "cyas_cplus_start.h"
#define CY_AS_LEAVE_STANDBY_DELAY_CLOCK (1)
#define CY_AS_RESET_DELAY_CLOCK (1)
#define CY_AS_LEAVE_STANDBY_DELAY_CRYSTAL (5)
#define CY_AS_RESET_DELAY_CRYSTAL (5)
/* The maximum number of buses supported */
#define CY_AS_MAX_BUSES (2)
/* The maximum number of storage devices supported per bus */
#define CY_AS_MAX_STORAGE_DEVICES (1)
#define CY_AS_FUNCTCBTYPE_DATA_MASK (0x60000000U)
#define CY_AS_FUNCTCBTYPE_TYPE_MASK (0x1FFFFFFFU)
#define cy_as_funct_c_b_type_get_type(t) \
((cy_as_funct_c_b_type)((t) & CY_AS_FUNCTCBTYPE_TYPE_MASK))
#define cy_as_funct_c_b_type_contains_data(t) \
(((cy_as_funct_c_b_type)((t) & \
CY_AS_FUNCTCBTYPE_DATA_MASK)) == CY_FUNCT_CB_DATA)
/**************************************
* West Bridge Types
**************************************/
/* Summary
Specifies a handle to an West Bridge device
Description
This type represents an opaque handle to an West Bridge device.
This handle is created via the CyAsMiscCreateDevice() function
and is used in all subsequent calls that communicate to the West
Bridge device.
See Also
* CyAsMiscCreateDevice
* CyAsMiscDestroyDevice
*/
typedef void *cy_as_device_handle;
/* Summary
This data type gives the mode for the DACK# signal
*/
typedef enum cy_as_device_dack_mode {
cy_as_device_dack_ack, /* Operate in the ACK mode */
cy_as_device_dack_eob /* Operate in the EOB mode */
} cy_as_device_dack_mode;
/* Summary
This data structure gives the options for all hardware features.
Description
This structure contains the information required to initialize the
West Bridge hardware. Any features of the device that can be
configured by the caller are specified here.
See Also
* CyAsMiscConfigure
*/
typedef struct cy_as_device_config {
/* If TRUE, the P port is running in SRAM mode. */
cy_bool srammode;
/* If TRUE, the P port is synchronous, otherwise async */
cy_bool sync;
/* If TRUE, DMA req will be delivered via the interrupt signal */
cy_bool dmaintr;
/* Mode for the DACK# signal */
cy_as_device_dack_mode dackmode;
/* If TRUE, the DRQ line is active high, otherwise active low */
cy_bool drqpol;
/* If TRUE, the DACK line is active high, otherwise active low */
cy_bool dackpol;
/* If TRUE, the clock is connected to a crystal, otherwise it is
connected to a clock */
cy_bool crystal;
} cy_as_device_config;
/* Summary
Specifies a resource that can be owned by either the West Bridge
device or by the processor.
Description
This enumerated type identifies a resource that can be owned
either by the West Bridge device, or by the processor attached to
the P port of the West Bridge device.
See Also
* CyAsMiscAcquireResource
* CyAsMiscReleaseResource
*/
typedef enum cy_as_resource_type {
cy_as_bus_u_s_b = 0, /* The USB D+ and D- pins */
cy_as_bus_1 = 1, /* The SDIO bus */
cy_as_bus_0 = 2 /* The NAND bus (not implemented) */
} cy_as_resource_type;
/* Summary
Specifies the reset type for a software reset operation.
Description
When the West Bridge device is reset, there are two types of
reset that arE possible. This type indicates the type of reset
requested.
Notes
Both of these reset types are software based resets; and are
distinct from a chip level HARD reset that is applied through
the reset pin on the West Bridge.
The CyAsResetSoft type resets only the on-chip micro-controller
in the West Bridge. In this case, the previously loaded firmware
will continue running. However, the Storage and USB stack
operations will need to be restarted, as any state relating to
these would have been lost.
The CyAsResetHard type resets the entire West Bridge chip, and will
need a fresh configuration and firmware download.
See Also
* <LINK CyAsMiscReset>
*/
typedef enum cy_as_reset_type {
/* Just resets the West Bridge micro-controller */
cy_as_reset_soft,
/* Resets entire device, firmware must be reloaded and
the west bridge device must be re-initialized */
cy_as_reset_hard
} cy_as_reset_type;
/* Summary
This type specifies the polarity of the SD power pin.
Description
Sets the SD power pin ( port C, bit 6) to active low or
active high.
*/
typedef enum cy_as_misc_signal_polarity {
cy_as_misc_active_high,
cy_as_misc_active_low
} cy_as_misc_signal_polarity;
/* Summary
This type specifies the type of the data returned by a Function
Callback.
Description
CY_FUNCT_CB_NODATA - This callback does not return any additional
information in the data field.
CY_FUNCT_CB_DATA - The data field is used, and the CyAsFunctCBType
will also contain the type of this data.
See Also
CyAsFunctionCallback
*/
typedef enum cy_as_funct_c_b_type {
CY_FUNCT_CB_INVALID = 0x0U,
/* Data from a CyAsMiscGetFirmwareVersion call. */
CY_FUNCT_CB_MISC_GETFIRMWAREVERSION,
/* Data from a CyAsMiscHeartBeatControl call. */
CY_FUNCT_CB_MISC_HEARTBEATCONTROL,
/* Data from a CyAsMiscAcquireResource call. */
CY_FUNCT_CB_MISC_ACQUIRERESOURCE,
/* Data from a CyAsMiscReadMCURegister call. */
CY_FUNCT_CB_MISC_READMCUREGISTER,
/* Data from a CyAsMiscWriteMCURegister call. */
CY_FUNCT_CB_MISC_WRITEMCUREGISTER,
/* Data from a CyAsMiscSetTraceLevel call. */
CY_FUNCT_CB_MISC_SETTRACELEVEL,
/* Data from a CyAsMiscStorageChanged call. */
CY_FUNCT_CB_MISC_STORAGECHANGED,
/* Data from a CyAsMiscGetGpioValue call. */
CY_FUNCT_CB_MISC_GETGPIOVALUE,
/* Data from a CyAsMiscSetGpioValue call. */
CY_FUNCT_CB_MISC_SETGPIOVALUE,
/* Data from a CyAsMiscDownloadFirmware call. */
CY_FUNCT_CB_MISC_DOWNLOADFIRMWARE,
/* Data from a CyAsMiscEnterStandby call. */
CY_FUNCT_CB_MISC_ENTERSTANDBY,
/* Data from a CyAsMiscEnterSuspend call. */
CY_FUNCT_CB_MISC_ENTERSUSPEND,
/* Data from a CyAsMiscLeaveSuspend call. */
CY_FUNCT_CB_MISC_LEAVESUSPEND,
/* Data from a CyAsMiscReset call. */
CY_FUNCT_CB_MISC_RESET,
/* Data from a CyAsMiscSetLowSpeedSDFreq or
* CyAsMiscSetHighSpeedSDFreq call. */
CY_FUNCT_CB_MISC_SETSDFREQ,
/* Data from a CyAsMiscSwitchPnandMode call */
CY_FUNCT_CB_MISC_RESERVELNABOOTAREA,
/* Data from a CyAsMiscSetSDPowerPolarity call */
CY_FUNCT_CB_MISC_SETSDPOLARITY,
/* Data from a CyAsStorageStart call. */
CY_FUNCT_CB_STOR_START,
/* Data from a CyAsStorageStop call. */
CY_FUNCT_CB_STOR_STOP,
/* Data from a CyAsStorageClaim call. */
CY_FUNCT_CB_STOR_CLAIM,
/* Data from a CyAsStorageRelease call. */
CY_FUNCT_CB_STOR_RELEASE,
/* Data from a CyAsStorageQueryMedia call. */
CY_FUNCT_CB_STOR_QUERYMEDIA,
/* Data from a CyAsStorageQueryBus call. */
CY_FUNCT_CB_STOR_QUERYBUS,
/* Data from a CyAsStorageQueryDevice call. */
CY_FUNCT_CB_STOR_QUERYDEVICE,
/* Data from a CyAsStorageQueryUnit call. */
CY_FUNCT_CB_STOR_QUERYUNIT,
/* Data from a CyAsStorageDeviceControl call. */
CY_FUNCT_CB_STOR_DEVICECONTROL,
/* Data from a CyAsStorageSDRegisterRead call. */
CY_FUNCT_CB_STOR_SDREGISTERREAD,
/* Data from a CyAsStorageCreatePartition call. */
CY_FUNCT_CB_STOR_PARTITION,
/* Data from a CyAsStorageGetTransferAmount call. */
CY_FUNCT_CB_STOR_GETTRANSFERAMOUNT,
/* Data from a CyAsStorageErase call. */
CY_FUNCT_CB_STOR_ERASE,
/* Data from a CyAsStorageCancelAsync call. */
CY_FUNCT_CB_ABORT_P2S_XFER,
/* Data from a CyAsUsbStart call. */
CY_FUNCT_CB_USB_START,
/* Data from a CyAsUsbStop call. */
CY_FUNCT_CB_USB_STOP,
/* Data from a CyAsUsbConnect call. */
CY_FUNCT_CB_USB_CONNECT,
/* Data from a CyAsUsbDisconnect call. */
CY_FUNCT_CB_USB_DISCONNECT,
/* Data from a CyAsUsbSetEnumConfig call. */
CY_FUNCT_CB_USB_SETENUMCONFIG,
/* Data from a CyAsUsbGetEnumConfig call. */
CY_FUNCT_CB_USB_GETENUMCONFIG,
/* Data from a CyAsUsbSetDescriptor call. */
CY_FUNCT_CB_USB_SETDESCRIPTOR,
/* Data from a CyAsUsbGetDescriptor call. */
CY_FUNCT_CB_USB_GETDESCRIPTOR,
/* Data from a CyAsUsbCommitConfig call. */
CY_FUNCT_CB_USB_COMMITCONFIG,
/* Data from a CyAsUsbGetNak call. */
CY_FUNCT_CB_USB_GETNAK,
/* Data from a CyAsUsbGetStall call. */
CY_FUNCT_CB_USB_GETSTALL,
/* Data from a CyAsUsbSignalRemoteWakeup call. */
CY_FUNCT_CB_USB_SIGNALREMOTEWAKEUP,
/* Data from a CyAnUsbClearDescriptors call. */
CY_FUNCT_CB_USB_CLEARDESCRIPTORS,
/* Data from a CyAnUsbSetMSReportThreshold call. */
CY_FUNCT_CB_USB_SET_MSREPORT_THRESHOLD,
/* Data from a CyAsMTPStart call. */
CY_FUNCT_CB_MTP_START,
/* Data from a CyAsMTPStop call. */
CY_FUNCT_CB_MTP_STOP,
/* Data from a CyAsMTPInitSendObject call. */
CY_FUNCT_CB_MTP_INIT_SEND_OBJECT,
/* Data from a CyAsMTPCancelSendObject call. */
CY_FUNCT_CB_MTP_CANCEL_SEND_OBJECT,
/* Data from a CyAsMTPInitGetObject call. */
CY_FUNCT_CB_MTP_INIT_GET_OBJECT,
/* Data from a CyAsMTPCancelGetObject call. */
CY_FUNCT_CB_MTP_CANCEL_GET_OBJECT,
/* Data from a CyAsMTPSendBlockTable call. */
CY_FUNCT_CB_MTP_SEND_BLOCK_TABLE,
/* Data from a CyAsMTPStopStorageOnly call. */
CY_FUNCT_CB_MTP_STOP_STORAGE_ONLY,
CY_FUNCT_CB_NODATA = 0x40000000U,
CY_FUNCT_CB_DATA = 0x20000000U
} cy_as_funct_c_b_type;
/* Summary
This type specifies the general West Bridge function callback.
Description
This callback is supplied as an argument to all asynchronous
functions in the API. It iS called after the asynchronous function
has completed.
See Also
CyAsFunctCBType
*/
typedef void (*cy_as_function_callback)(
cy_as_device_handle handle,
cy_as_return_status_t status,
uint32_t client,
cy_as_funct_c_b_type type,
void *data);
/* Summary
This type specifies the general West Bridge event that has
occurred.
Description
This type is used in the West Bridge misc callback function to
indicate the type of callback.
See Also
*/
typedef enum cy_as_misc_event_type {
/* This event is sent when West Bridge has finished
initialization and is ready to respond to API calls. */
cy_as_event_misc_initialized = 0,
/* This event is sent when West Bridge has left the
standby state and is ready to respond to commands again. */
cy_as_event_misc_awake,
/* This event is sent periodically from the firmware
to the processor. */
cy_as_event_misc_heart_beat,
/* This event is sent when the West Bridge has left the
suspend mode and is ready to respond to commands
again. */
cy_as_event_misc_wakeup,
/* This event is sent when the firmware image downloaded
cannot run on the active west bridge device. */
cy_as_event_misc_device_mismatch
} cy_as_misc_event_type;
/* Summary
This type is the type of a callback function that is called when a
West Bridge misc 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 West Bridge misc events.
See Also
* CyAsMiscEventType
*/
typedef void (*cy_as_misc_event_callback)(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* The event type being reported */
cy_as_misc_event_type ev,
/* The data assocaited with the event being reported */
void *evdata
);
#ifndef __doxygen__
/* Summary
This enum provides info of various firmware trace levels.
Description
See Also
* CyAsMiscSetTraceLevel
*/
enum {
CYAS_FW_TRACE_LOG_NONE = 0, /* Log nothing. */
CYAS_FW_TRACE_LOG_STATE, /* Log state information. */
CYAS_FW_TRACE_LOG_CALLS, /* Log function calls. */
CYAS_FW_TRACE_LOG_STACK_TRACE, /* Log function calls with args. */
CYAS_FW_TRACE_MAX_LEVEL /* Max trace level sentinel. */
};
#endif
/* Summary
This enum lists the controllable GPIOs of the West Bridge device.
Description
The West Bridge device has GPIOs that can be used for user defined functions.
This enumeration lists the GPIOs that are available on the device.
Notes
All of the GPIOs except UVALID can only be accessed when using West Bridge
firmware images that support only SD/MMC/MMC+ storage devices. This
functionality is not supported in firmware images that support NAND
storage.
See Also
* CyAsMiscGetGpioValue
* CyAsMiscSetGpioValue
*/
typedef enum {
cy_as_misc_gpio_0 = 0, /* GPIO[0] pin */
cy_as_misc_gpio_1, /* GPIO[1] pin */
cy_as_misc_gpio__nand_CE, /* NAND_CE pin, output only */
cy_as_misc_gpio__nand_CE2, /* NAND_CE2 pin, output only */
cy_as_misc_gpio__nand_WP, /* NAND_WP pin, output only */
cy_as_misc_gpio__nand_CLE, /* NAND_CLE pin, output only */
cy_as_misc_gpio__nand_ALE, /* NAND_ALE pin, output only */
/* SD_POW pin, output only, do not drive low while storage is active */
cy_as_misc_gpio_SD_POW,
cy_as_misc_gpio_U_valid /* UVALID pin */
} cy_as_misc_gpio;
/* Summary
This enum lists the set of clock frequencies that are supported for
working with low speed SD media.
Description
West Bridge firmware uses a clock frequency less than the maximum
possible rate for low speed SD media. This can be changed to a
setting equal to the maximum frequency as desired by the user. This
enumeration lists the different frequency settings that are
supported.
See Also
* CyAsMiscSetLowSpeedSDFreq
*/
typedef enum cy_as_low_speed_sd_freq {
/* Approx. 21.82 MHz, default value */
CY_AS_SD_DEFAULT_FREQ = 0,
/* 24 MHz */
CY_AS_SD_RATED_FREQ
} cy_as_low_speed_sd_freq;
/* Summary
This enum lists the set of clock frequencies that are supported
for working with high speed SD media.
Description
West Bridge firmware uses a 48 MHz clock by default to interface
with high speed SD/MMC media. This can be changed to 24 MHz if
so desired by the user. This enum lists the different frequencies
that are supported.
See Also
* CyAsMiscSetHighSpeedSDFreq
*/
typedef enum cy_as_high_speed_sd_freq {
CY_AS_HS_SD_FREQ_48, /* 48 MHz, default value */
CY_AS_HS_SD_FREQ_24 /* 24 MHz */
} cy_as_high_speed_sd_freq;
/* Summary
Struct encapsulating all information returned by the
CyAsMiscGetFirmwareVersion call.
Description
This struct encapsulates all return values from the asynchronous
CyAsMiscGetFirmwareVersion call, so that a single data argument
can be passed to the user provided callback function.
See Also
* CyAsMiscGetFirmwareVersion
*/
typedef struct cy_as_get_firmware_version_data {
/* Return value for major version number for the firmware */
uint16_t major;
/* Return value for minor version number for the firmware */
uint16_t minor;
/* Return value for build version number for the firmware */
uint16_t build;
/* Return value for media types supported in the current firmware */
uint8_t media_type;
/* Return value to indicate the release or debug mode of firmware */
cy_bool is_debug_mode;
} cy_as_get_firmware_version_data;
/*****************************
* West Bridge Functions
*****************************/
/* Summary
This function creates a new West Bridge device and returns a
handle to the device.
Description
This function initializes the API object that represents the West
Bridge device and returns a handle to this device. This handle is
required for all West Bridge related functions to identify the
specific West Bridge device.
* Valid In Asynchronous Callback: NO
Returns
* CY_AS_ERROR_SUCCESS
* CY_AS_ERROR_OUT_OF_MEMORY
*/
EXTERN cy_as_return_status_t
cy_as_misc_create_device(
/* Return value for handle to created device */
cy_as_device_handle *handle_p,
/* The HAL specific tag for this device */
cy_as_hal_device_tag tag
);
/* Summary
This functions destroys a previously created West Bridge device.
Description
When an West Bridge device is created, an opaque handle is returned
that represents the device. This function destroys that handle and
frees all resources associated with the handle.
* Valid In Asynchronous Callback: NO
Returns
* CY_AS_ERROR_SUCCESS
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_STILL_RUNNING - The USB or STORAGE stacks are still
* running, they must be stopped before the device can be destroyed
* CY_AS_ERROR_DESTROY_SLEEP_CHANNEL_FAILED - the HAL layer failed to
* destroy a sleep channel
*/
EXTERN cy_as_return_status_t
cy_as_misc_destroy_device(
/* Handle to the device to destroy */
cy_as_device_handle handle
);
/* Summary
This function initializes the hardware for basic communication with
West Bridge.
Description
This function intializes the hardware to establish basic
communication with the West Bridge device. This is always the first
function called to initialize communication with the West Bridge
device.
* Valid In Asynchronous Callback: NO
Returns
* CY_AS_ERROR_SUCCESS - the basic initialization was completed
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_IN_STANDBY
* CY_AS_ERROR_ALREADY_RUNNING
* CY_AS_ERROR_OUT_OF_MEMORY
* CY_AS_ERROR_NO_ANTIOCH - cannot find the West Bridge device
* CY_AS_ERROR_CREATE_SLEEP_CHANNEL_FAILED -
* the HAL layer falied to create a sleep channel
See Also
* CyAsDeviceConfig
*/
EXTERN cy_as_return_status_t
cy_as_misc_configure_device(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* Configuration information */
cy_as_device_config *config_p
);
/* Summary
This function returns non-zero if West Bridge is in standby and
zero otherwise.
Description
West Bridge supports a standby mode. This function is used to
query West Bridge to determine if West Bridge is in a standby
mode.
* Valid In Asynchronous Callback: YES
Returns
* CY_AS_ERROR_SUCCESS
* CY_AS_ERROR_INVALID_HANDLE
*/
EXTERN cy_as_return_status_t
cy_as_misc_in_standby(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* Return value for standby state */
cy_bool *standby
);
/* Summary
This function downloads the firmware to West Bridge device.
Description
This function downloads firmware from a given location and with a
given size to the West Bridge device. After the firmware is
downloaded the West Bridge device is moved out of configuration
mode causing the firmware to be executed. It is an error to call
this function when the device is not in configuration mode. The
device is in configuration mode on power up and may be placed in
configuration mode after power up with a hard reset.
Notes
The firmware must be on a word align boundary.
* Valid In Asynchronous Callback: YES (if cb supplied)
* Nestable: YES
Returns
* CY_AS_ERROR_SUCCESS - the firmware was sucessfully downloaded
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device
* was not configured
* CY_AS_ERROR_NOT_IN_CONFIG_MODE
* CY_AS_ERROR_INVALID_SIZE - the size of the firmware
* exceeded 32768 bytes
* CY_AS_ERROR_ALIGNMENT_ERROR
* CY_AS_ERROR_IN_STANDBY - trying to download
* while in standby mode
* CY_AS_ERROR_TIMEOUT
See Also
* CyAsMiscReset
*/
EXTERN cy_as_return_status_t
cy_as_misc_download_firmware(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* Pointer to the firmware to be downloaded */
const void *fw_p,
/* The size of the firmware in bytes */
uint16_t size,
/* Callback to call 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 the version number of the firmware running in
the West Bridge device.
Description
This function queries the West Bridge device and retreives the
firmware version number. If the firmware is not loaded an error is
returned indicated no firmware has been loaded.
* Valid In Asynchronous Callback: YES (if cb supplied)
* Nestable: YES
Returns
* CY_AS_ERROR_SUCCESS - the firmware version number was retreived
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED
* CY_AS_ERROR_NO_FIRMWARE - the firmware has not been downloaded
* to the device
* CY_AS_ERROR_IN_STANDBY
* CY_AS_ERROR_OUT_OF_MEMORY
* CY_AS_ERROR_TIMEOUT - there was a timeout waiting for a response
* from the West Bridge firmware
*/
EXTERN cy_as_return_status_t
cy_as_misc_get_firmware_version(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* Return values indicating the firmware version. */
cy_as_get_firmware_version_data *data,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
#if !defined(__doxygen__)
/* Summary
This function reads and returns the contents of an MCU accessible
register on the West Bridge.
Description
This function requests the firmware to read and return the contents
of an MCU accessible register through the mailboxes.
* Valid In Asynchronous Callback: YES (if cb supplied)
* Nestable: YES
Returns
* CY_AS_ERROR_SUCCESS - the register content was retrieved.
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED
* CY_AS_ERROR_NO_FIRMWARE
* CY_AS_ERROR_OUT_OF_MEMORY
* CY_AS_ERROR_TIMEOUT - there was a timeout waiting for a response
* from the West Bridge firmware
* CY_AS_ERROR_INVALID_RESPONSE - the firmware build does not
* support this command.
*/
EXTERN cy_as_return_status_t
cy_as_misc_read_m_c_u_register(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* Address of the register to read */
uint16_t address,
/* Return value for the MCU register content */
uint8_t *value,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
This function writes to an MCU accessible register on the West Bridge.
Description
This function requests the firmware to write a specified value to an
MCU accessible register through the mailboxes.
* Valid In Asynchronous Callback: YES (if cb supplied)
* Nestable: YES
Notes
This function is only for internal use by the West Bridge API layer.
Calling this function directly can cause device malfunction.
Returns
* CY_AS_ERROR_SUCCESS - the register content was updated.
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED
* CY_AS_ERROR_NO_FIRMWARE
* CY_AS_ERROR_OUT_OF_MEMORY
* CY_AS_ERROR_TIMEOUT - there was a timeout waiting for a response
* from the West Bridge firmware
* CY_AS_ERROR_INVALID_RESPONSE - the firmware build does not support
* this command.
*/
EXTERN cy_as_return_status_t
cy_as_misc_write_m_c_u_register(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* Address of the register to write */
uint16_t address,
/* Mask to be applied on the register contents. */
uint8_t mask,
/* Data to be ORed with the register contents. */
uint8_t value,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
#endif
/* Summary
This function will reset the West Bridge device and software API.
Description
This function will reset the West Bridge device and software API.
The reset operation can be a hard reset or a soft reset. A hard
reset will reset all aspects of the West Bridge device. The device
will enter the configuration state and the firmware will have to be
reloaded. The device will also have to be re-initialized. A soft
reset just resets the West Bridge micro-controller.
* Valid In Asynchronous Callback: NO
Notes
When a hard reset is issued, the firmware that may have been
previously loaded will be lost and any configuration information set
via CyAsMiscConfigureDevice() will be lost. This will be reflected
in the API maintained state of the device. In order to re-establish
communications with the West Bridge device, CyAsMiscConfigureDevice()
and CyAsMiscDownloadFirmware() must be called again.
* Valid In Asynchronous Callback: YES (if cb supplied)
* Nestable: YES
Returns
* CY_AS_ERROR_SUCCESS - the device has been reset
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED
* CY_AS_ERROR_NO_FIRMWARE
* CY_AS_ERROR_NOT_YET_SUPPORTED - current soft reset is not supported
* CY_AS_ERROR_ASYNC_PENDING - Reset is unable to flush pending async
* reads/writes in polling mode.
See Also
* CyAsMiscReset
*/
EXTERN cy_as_return_status_t
cy_as_misc_reset(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* The type of reset to perform */
cy_as_reset_type type,
/* If true, flush all pending writes to mass storage
before performing the reset. */
cy_bool flush,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
This function acquires a given resource.
Description
There are resources in the system that are shared between the
West Bridge device and the processor attached to the P port of
the West Bridge device. This API provides a mechanism for the
P port processor to acquire ownership of a resource.
Notes
The ownership of the resources controlled by CyAsMiscAcquireResource()
and CyAsMiscReleaseResource() defaults to a known state at hardware
reset. After the firmware is loaded and begins execution the state of
these resources may change. At any point if the P Port processor needs
to acquire a resource it should do so explicitly to be sure of
ownership.
Returns
* CY_AS_ERROR_SUCCESS - the p port sucessfully acquired the
* resource of interest
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED
* CY_AS_ERROR_NO_FIRMWARE
* CY_AS_ERROR_INVALID_RESOURCE
* CY_AS_ERROR_RESOURCE_ALREADY_OWNED - the p port already
* owns this resource
* CY_AS_ERROR_NOT_ACQUIRED - the resource cannot be acquired
* CY_AS_ERROR_OUT_OF_MEMORY
* CY_AS_ERROR_TIMEOUT - there was a timeout waiting for a
* response from the West Bridge firmware
See Also
* CyAsResourceType
*/
EXTERN cy_as_return_status_t
cy_as_misc_acquire_resource(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* The resource to acquire */
cy_as_resource_type *resource,
/* If true, force West Bridge to release the resource */
cy_bool force,
/* Callback to call 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 resource.
Description
There are resources in the system that are shared between the
West Bridge device and the processor attached to the P port of
the West Bridge device. This API provides a mechanism for the
P port processor to release a resource that has previously been
acquired via the CyAsMiscAcquireResource() call.
* Valid In Asynchronous Callback: NO
Returns
* CY_AS_ERROR_SUCCESS - the p port sucessfully released
* the resource of interest
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED
* CY_AS_ERROR_NO_FIRMWARE
* CY_AS_ERROR_INVALID_RESOURCE
* CY_AS_ERROR_RESOURCE_NOT_OWNED - the p port does not own the
* resource of interest
See Also
* CyAsResourceType
* CyAsMiscAcquireResource
*/
EXTERN cy_as_return_status_t
cy_as_misc_release_resource(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* The resource to release */
cy_as_resource_type resource
);
#ifndef __doxygen__
/* Summary
This function sets the trace level for the West Bridge firmware.
Description
The West Bridge firmware has the ability to store information
about the state and execution path of the firmware on a mass storage
device attached to the West Bridge device. This function configures
the specific mass storage device to be used and the type of information
to be stored. This state information is used for debugging purposes
and must be interpreted by a Cypress provided tool.
*Trace Level*
The trace level indicates the amount of information to output.
* 0 = no trace information is output
* 1 = state information is output
* 2 = function call information is output
* 3 = function call, arguments, and return value information is output
* Valid In Asynchronous Callback: NO
Notes
The media device and unit specified in this call will be overwritten
and any data currently stored on this device and unit will be lost.
* NOT IMPLEMENTED YET
Returns
* CY_AS_ERROR_SUCCESS - the trace configuration has been
* sucessfully changed
* 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_INVALID_TRACE_LEVEL - the trace level requested
* does not exist
* CY_AS_ERROR_TIMEOUT - there was a timeout waiting for a
* response from the West Bridge firmware
*/
EXTERN cy_as_return_status_t
cy_as_misc_set_trace_level(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* The trace level */
uint8_t level,
/* The bus for the output */
cy_as_bus_number_t bus,
/* The device for the output */
uint32_t device,
/* The unit for the output */
uint32_t unit,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
#endif
/* Summary
This function places West Bridge into the low power standby mode.
Description
This function places West Bridge into a low power (sleep) mode, and
cannot be called while the USB stack is active. This function first
instructs the West Bridge firmware that the device is about to be
placed into sleep mode. This allows West Bridge to complete any pending
storage operations. After the West Bridge device has responded that
pending operations are complete, the device is placed in standby mode.
There are two methods of placing the device in standby mode. If the
WAKEUP pin of the West Bridge is connected to a GPIO on the processor,
the pin is de-asserted (via the HAL layer) and West Bridge enters into
a sleep mode. If the WAKEUP pin is not accessible, the processor can
write into the power management control/status register on the West
Bridge to put the device into sleep mode.
* Valid In Asynchronous Callback: YES (if cb supplied)
* Nestable: YES
Returns
* CY_AS_ERROR_SUCCESS - the function completed and West Bridge
* is in sleep mode
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_ALREADY_STANDBY - the West Bridge device is already
* in sleep mode
* CY_AS_ERROR_TIMEOUT - there was a timeout waiting for a response
* from the West Bridge firmware
* CY_AS_ERROR_NOT_SUPPORTED - the HAL layer does not support changing
* the WAKEUP pin
* CY_AS_ERROR_USB_RUNNING - The USB stack is still running when the
* EnterStandby call is made
* CY_AS_ERROR_ASYNC_PENDING
* CY_AS_ERROR_OUT_OF_MEMORY
* CY_AS_ERROR_INVALID_RESPONSE
* CY_AS_ERROR_SETTING_WAKEUP_PIN
* CY_AS_ERROR_ASYNC_PENDING - In polling mode EnterStandby can not
* be called until all pending storage read/write requests have
* finished.
See Also
* CyAsMiscLeaveStandby
*/
EXTERN cy_as_return_status_t
cy_as_misc_enter_standby_e_x_u(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* If true, use the wakeup pin, otherwise use the register */
cy_bool pin,
/* Set true to enable specific usages of the
UVALID signal, please refer to AN xx or ERRATA xx */
cy_bool uvalid_special,
/* Callback to call 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 provided for backwards compatibility.
Description
Calling this function is the same as calling CyAsMiscEnterStandbyEx
with True for the lowpower parameter.
See Also
* CyAsMiscEnterStandbyEx
*/
EXTERN cy_as_return_status_t
cy_as_misc_enter_standby(cy_as_device_handle handle,
cy_bool pin,
cy_as_function_callback cb,
uint32_t client
);
/* Summary
This function brings West Bridge out of sleep mode.
Description
This function asserts the WAKEUP pin (via the HAL layer). This
brings the West Bridge out of the sleep state and allows the
West Bridge firmware to process the event causing the wakeup.
When all processing associated with the wakeup is complete, a
callback function is called to tell the P port software that
the firmware processing associated with wakeup is complete.
* Valid In Asynchronous Callback: NO
Returns:
* CY_AS_ERROR_SUCCESS - the function completed and West Bridge
* is in sleep mode
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_SETTING_WAKEUP_PIN
* CY_AS_ERROR_NOT_IN_STANDBY - the West Bridge device is not in
* the sleep state
* CY_AS_ERROR_TIMEOUT - there was a timeout waiting for a
* response from the West Bridge firmware
* CY_AS_ERROR_NOT_SUPPORTED - the HAL layer does not support
* changing the WAKEUP pin
See Also
* CyAsMiscEnterStandby
*/
EXTERN cy_as_return_status_t
cy_as_misc_leave_standby(
/* Handle to the device to configure */
cy_as_device_handle handle,
/* The resource causing the wakeup */
cy_as_resource_type resource
);
/* Summary
This function registers a callback function to be called when an
asynchronous West Bridge MISC event occurs.
Description
When asynchronous misc 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: NO
Returns:
* CY_AS_ERROR_SUCCESS
* CY_AS_ERROR_INVALID_HANDLE
*/
EXTERN cy_as_return_status_t
cy_as_misc_register_callback(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* The function to call */
cy_as_misc_event_callback callback
);
/* Summary
This function sets the logging level for log messages.
Description
The API can print messages via the CyAsHalPrintMessage capability.
This function sets the level of detail seen when printing messages
from the API.
* Valid In Asynchronous Callback:NO
*/
EXTERN void
cy_as_misc_set_log_level(
/* Level to set, 0 is fewer messages, 255 is all */
uint8_t level
);
/* Summary
This function tells West Bridge that SD or MMC media has been
inserted or removed.
Description
In some hardware configurations, SD or MMC media detection is
handled outside of the West Bridge device. This function is called
when a change is detected to inform the West Bridge firmware to check
for storage media changes.
* Valid In Asynchronous Callback: NO
Returns:
* CY_AS_ERROR_SUCCESS
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED
* CY_AS_ERROR_NO_FIRMWARE
* CY_AS_ERROR_IN_STANDBY
* CY_AS_ERROR_OUT_OF_MEMORY
* CY_AS_ERROR_INVALID_RESPONSE
See Also
* CyAsMiscStorageChanged
*/
EXTERN cy_as_return_status_t
cy_as_misc_storage_changed(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
This function instructs the West Bridge firmware to start/stop
sending periodic heartbeat messages to the processor.
Description
The West Bridge firmware can send heartbeat messages through the
mailbox register once every 500 ms. This message can be an overhead
as it causes regular Mailbox interrupts to happen, and is turned
off by default. The message can be used to test and verify that the
West Bridge firmware is alive. This API can be used to enable or
disable the heartbeat message.
* Valid In Asynchronous Callback: NO
Returns
* CY_AS_ERROR_SUCCESS - the function completed successfully
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED
* CY_AS_ERROR_NO_FIRMWARE
* CY_AS_ERROR_OUT_OF_MEMORY
* CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
* been configured yet
* CY_AS_ERROR_NO_FIRMWARE - firmware has not been downloaded to
* the West Bridge device
*/
EXTERN cy_as_return_status_t
cy_as_misc_heart_beat_control(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Message enable/disable selection */
cy_bool enable,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
This function gets the current state of a GPIO pin on the
West Bridge device.
Description
The West Bridge device has GPIO pins that can be used for user
defined functions. This function gets the current state of the
specified GPIO pin. Calling this function will configure the
corresponding pin as an input.
* Valid In Asynchronous Callback: NO
Notes
Only GPIO[0], GPIO[1] and UVALID pins can be used as GP inputs.
Of these pins, only the UVALID pin is supported by firmware images
that include NAND storage support.
Returns
* CY_AS_ERROR_SUCCESS - the function completed successfully
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
* been configured yet
* CY_AS_ERROR_NO_FIRMWARE - firmware has not been downloaded
* to the West Bridge device
* CY_AS_ERROR_BAD_INDEX - an invalid GPIO was specified
* CY_AS_ERROR_NOT_SUPPORTED - this feature is not supported
* by the firmware
See Also
* CyAsMiscGpio
* CyAsMiscSetGpioValue
*/
EXTERN cy_as_return_status_t
cy_as_misc_get_gpio_value(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Id of the GPIO pin to query */
cy_as_misc_gpio pin,
/* Current value of the GPIO pin */
uint8_t *value,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
This function updates the state of a GPIO pin on the West
Bridge device.
Description
The West Bridge device has GPIO pins that can be used for
user defined functions. This function updates the output
value driven on a specified GPIO pin. Calling this function
will configure the corresponding pin as an output.
* Valid In Asynchronous Callback: NO
Notes
All of the pins listed under CyAsMiscGpio can be used as GP
outputs. This feature is note supported by firmware images
that include NAND storage device support.
Returns
* CY_AS_ERROR_SUCCESS - the function completed successfully
* CY_AS_ERROR_INVALID_HANDLE
* CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
* been configured yet
* CY_AS_ERROR_NO_FIRMWARE - firmware has not been downloaded
* to the West Bridge device
* CY_AS_ERROR_BAD_INDEX - an invalid GPIO was specified
* CY_AS_ERROR_NOT_SUPPORTED - this feature is not supported
* by firmware.
See Also
* CyAsMiscGpio
* CyAsMiscGetGpioValue
*/
EXTERN cy_as_return_status_t
cy_as_misc_set_gpio_value(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Id of the GPIO pin to set */
cy_as_misc_gpio pin,
/* Value to be set on the GPIO pin */
uint8_t value,
/* Callback to call when the operation is complete. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
Set the West Bridge device in the low power suspend mode.
Description
The West Bridge device has a low power suspend mode where the USB
core and the internal microcontroller are powered down. This
function sets the West Bridge device into this low power mode.
This mode can only be entered when there is no active USB
connection; i.e., when USB has not been connected or is suspended;
and there are no pending USB or storage asynchronous calls. The
device will exit the suspend mode and resume handling USB and
processor requests when any activity is detected on the CE#, D+/D-
or GPIO[0] lines.
* Valid In Asynchronous Callback: NO
Notes
The GPIO[0] pin needs to be configured as an input for the gpio
wakeup to work. This flag should not be enabled if the pin is
being used as a GP output.
Returns
* CY_AS_ERROR_SUCCESS - the device was placed in suspend mode.
* CY_AS_ERROR_INVALID_HANDLE - the West Bridge handle passed
* in is invalid.
* CY_AS_ERROR_NOT_CONFIGURED - the West Bridge device has not
* yet been configured.
* CY_AS_ERROR_NO_FIRMWARE - no firmware has been downloaded
* to the device.
* CY_AS_ERROR_IN_STANDBY - the device is already in sleep mode.
* CY_AS_ERROR_USB_CONNECTED - the USB connection is active.
* CY_AS_ERROR_ASYNC_PENDING - asynchronous storage/USB calls
* are pending.
* CY_AS_ERROR_OUT_OF_MEMORY - failed to allocate memory for
* the operation.
* CY_AS_ERROR_INVALID_RESPONSE - command not recognised by
* firmware.
See Also
* CyAsMiscLeaveSuspend
*/
EXTERN cy_as_return_status_t
cy_as_misc_enter_suspend(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Control the USB wakeup source */
cy_bool usb_wakeup_en,
/* Control the GPIO[0] wakeup source */
cy_bool gpio_wakeup_en,
/* Callback to call when suspend mode entry is complete */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
Wake up the West Bridge device from suspend mode.
Description
This call wakes up the West Bridge device from suspend mode,
and makes it ready for accepting other commands from the API.
A CyAsEventMiscWakeup event will be delivered to the callback
registered with CyAsMiscRegisterCallback to indicate that the
wake up is complete.
The CyAsEventMiscWakeup event will also be delivered if the
wakeup happens due to USB or GPIO activity.
* Valid In Asynchronous Callback: NO
Returns
* CY_AS_ERROR_SUCCESS - the device was woken up from
* suspend mode.
* CY_AS_ERROR_INVALID_HANDLE - invalid device handle
* passed in.
* CY_AS_ERROR_NOT_CONFIGURED - West Bridge device has
* not been configured.
* CY_AS_ERROR_NO_FIRMWARE - firmware has not been
* downloaded to the device.
* CY_AS_ERROR_NOT_IN_SUSPEND - the device is not in
* suspend mode.
* CY_AS_ERROR_OUT_OF_MEMORY - failed to allocate memory
* for the operation.
* CY_AS_ERROR_TIMEOUT - failed to wake up the device.
See Also
* CyAsMiscEnterSuspend
*/
EXTERN cy_as_return_status_t
cy_as_misc_leave_suspend(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Callback to call when device has resumed operation. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
Reserve first numzones zones of nand device for storing
processor boot image. LNA firmware works on the first
numzones zones of nand to enable the processor to boot.
Description
This function reserves first numzones zones of nand device
for storing processor boot image. This fonction MUST be
completed before starting the storage stack for the setting
to be taken into account.
* Valid In Asynchronous Callback: YES
Returns
* CY_AS_ERROR_SUCCESS- zones are reserved.
*/
EXTERN cy_as_return_status_t
cy_as_misc_reserve_l_n_a_boot_area(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* number of nand zones to reserve */
uint8_t numzones,
/* Callback to call when device has resumed operation. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* Summary
Select the clock frequency to be used when talking to low
speed (non-high speed) SD media.
Description
West Bridge firmware uses a clock frequency less than the
maximum possible rate for low speed SD media. This function
selects the frequency setting from between the default speed
and the maximum speed. This fonction MUST be completed before
starting the storage stack for the setting to be taken into
account.
* Valid in Asynchronous Callback: Yes (if cb is non-zero)
* Nestable: Yes
Returns
* CY_AS_ERROR_SUCCESS - the operation completed successfully.
* CY_AS_ERROR_INVALID_HANDLE - invalid device handle passed in.
* CY_AS_ERROR_NOT_CONFIGURED - West Bridge device has not been
* configured.
* CY_AS_ERROR_NO_FIRMWARE - firmware has not been downloaded
* to the device.
* CY_AS_ERROR_OUT_OF_MEMORY - failed to allocate memory for
* the operation.
* CY_AS_ERROR_IN_SUSPEND - West Bridge is in low power suspend
* mode.
* CY_AS_ERROR_INVALID_PARAMETER - invalid frequency setting
* desired.
* CY_AS_ERROR_TIMEOUT - West Bridge device did not respond to
* the operation.
* CY_AS_ERROR_INVALID_RESPONSE - active firmware does not support
* the operation.
See Also
* CyAsLowSpeedSDFreq
*/
EXTERN cy_as_return_status_t
cy_as_misc_set_low_speed_sd_freq(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Frequency setting desired for low speed SD cards */
cy_as_low_speed_sd_freq setting,
/* Callback to call on completion */
cy_as_function_callback cb,
/* Client data to be passed to the callback */
uint32_t client
);
/* Summary
Select the clock frequency to be used when talking to high speed
SD/MMC media.
Description
West Bridge firmware uses a 48 MHz clock to interface with high
speed SD/MMC media. This clock rate can be restricted to 24 MHz
if desired. This function selects the frequency setting to be
used. This fonction MUST be completed before starting the storage
stack for the setting to be taken into account.
* Valid in Asynchronous Callback: Yes (if cb is non-zero)
* Nestable: Yes
Returns
* CY_AS_ERROR_SUCCESS - the operation completed successfully.
* CY_AS_ERROR_INVALID_HANDLE - invalid device handle passed in.
* CY_AS_ERROR_NOT_CONFIGURED - West Bridge device has not been
* configured.
* CY_AS_ERROR_NO_FIRMWARE - firmware has not been downloaded to
* the device.
* CY_AS_ERROR_OUT_OF_MEMORY - failed to allocate memory for the
* operation.
* CY_AS_ERROR_IN_SUSPEND - West Bridge is in low power suspend mode.
* CY_AS_ERROR_INVALID_PARAMETER - invalid frequency setting desired.
* CY_AS_ERROR_TIMEOUT - West Bridge device did not respond to the
* operation.
* CY_AS_ERROR_INVALID_RESPONSE - active firmware does not support
* the operation.
See Also
* CyAsLowSpeedSDFreq
*/
EXTERN cy_as_return_status_t
cy_as_misc_set_high_speed_sd_freq(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Frequency setting desired for high speed SD cards */
cy_as_high_speed_sd_freq setting,
/* Callback to call on completion */
cy_as_function_callback cb,
/* Client data to be passed to the callback */
uint32_t client
);
/* Summary
Select the polarity of the SD_POW output driven by West Bridge.
Description
The SD_POW signal driven by West Bridge can be used to control
the supply of Vcc to the SD/MMC media connected to the device.
This signal is driven as an active high signal by default. This
function can be used to change the polarity of this signal if
required. This fonction MUST be completed before starting the
storage stack for the setting to be taken into account.
* Valid in Asynchronous Callback: Yes (if cb is non-zero)
* Nestable: Yes
Returns
* CY_AS_ERROR_SUCCESS - the operation completed successfully.
* CY_AS_ERROR_INVALID_HANDLE - invalid device handle passed in.
* CY_AS_ERROR_NOT_CONFIGURED - West Bridge device has not been
* configured.
* CY_AS_ERROR_NO_FIRMWARE - firmware has not been downloaded
* to the device.
* CY_AS_ERROR_OUT_OF_MEMORY - failed to allocate memory for
* the operation.
* CY_AS_ERROR_IN_SUSPEND - West Bridge is in low power
* suspend mode.
* CY_AS_ERROR_INVALID_PARAMETER - invalid frequency setting
* desired.
* CY_AS_ERROR_TIMEOUT - West Bridge device did not respond to
* the operation.
* CY_AS_ERROR_INVALID_RESPONSE - active firmware does not
* support the operation.
See Also
* CyAsMiscSignalPolarity
*/
EXTERN cy_as_return_status_t
cy_as_misc_set_sd_power_polarity(
/* Handle to the West Bridge device */
cy_as_device_handle handle,
/* Desired polarity setting to the SD_POW signal. */
cy_as_misc_signal_polarity polarity,
/* Callback to call on completion. */
cy_as_function_callback cb,
/* Client data to be passed to the callback. */
uint32_t client
);
/* For supporting deprecated functions */
#include "cyasmisc_dep.h"
#include "cyas_cplus_end.h"
#endif /* _INCLUDED_CYASMISC_H_ */