omap3530/beagle_drivers/wb/api/include/cyanmisc.h
changeset 27 117faf51deac
equal deleted inserted replaced
26:b7e488c49d0d 27:117faf51deac
       
     1 /*  Cypress West Bridge API header file (cyanmisc.h)
       
     2  ## Version for backward compatibility with previous Antioch SDK releases.
       
     3  ## ===========================
       
     4  ##
       
     5  ##  Copyright Cypress Semiconductor Corporation, 2006-2009,
       
     6  ##  All Rights Reserved
       
     7  ##  UNPUBLISHED, LICENSED SOFTWARE.
       
     8  ##
       
     9  ##  CONFIDENTIAL AND PROPRIETARY INFORMATION
       
    10  ##  WHICH IS THE PROPERTY OF CYPRESS.
       
    11  ##
       
    12  ##  Use of this file is governed
       
    13  ##  by the license agreement included in the file
       
    14  ##
       
    15  ##     <install>/license/license.txt
       
    16  ##
       
    17  ##  where <install> is the Cypress software
       
    18  ##  installation root directory path.
       
    19  ##
       
    20  ## ===========================
       
    21 */
       
    22 
       
    23 #ifndef _INCLUDED_CYANMISC_H_
       
    24 #define _INCLUDED_CYANMISC_H_
       
    25 
       
    26 #include "cyantypes.h"
       
    27 #include <cyasmisc.h>
       
    28 #include "cyanmedia.h"
       
    29 #include "cyas_cplus_start.h"
       
    30 
       
    31 #define CY_AN_LEAVE_STANDBY_DELAY_CLOCK		(CY_AS_LEAVE_STANDBY_DELAY_CLOCK)
       
    32 #define CY_AN_RESET_DELAY_CLOCK			(CY_AS_RESET_DELAY_CLOCK)
       
    33 
       
    34 #define CY_AN_LEAVE_STANDBY_DELAY_CRYSTAL	(CY_AS_LEAVE_STANDBY_DELAY_CRYSTAL)
       
    35 #define CY_AN_RESET_DELAY_CRYSTAL		(CY_AS_RESET_DELAY_CRYSTAL)
       
    36 
       
    37 /* Defines to convert the old CyAn names to the new
       
    38  * CyAs names
       
    39  */
       
    40 typedef CyAsDeviceHandle	    CyAnDeviceHandle;
       
    41 
       
    42 #define CyAnDeviceDackAck	    CyAsDeviceDackAck
       
    43 #define CyAnDeviceDackEob	    CyAsDeviceDackEob
       
    44 typedef CyAsDeviceDackMode CyAnDeviceDackMode;
       
    45 
       
    46 typedef CyAsDeviceConfig CyAnDeviceConfig;
       
    47 
       
    48 #define CyAnResourceUSB		    CyAsBusUSB
       
    49 #define CyAnResourceSDIO_MMC	    CyAsBus_1
       
    50 #define CyAnResourceNand	    CyAsBus_0
       
    51 typedef CyAsResourceType CyAnResourceType;
       
    52 
       
    53 #define CyAnResetSoft		    CyAsResetSoft
       
    54 #define CyAnResetHard		    CyAsResetHard
       
    55 typedef CyAsResetType CyAnResetType;
       
    56 typedef CyAsFunctCBType CyAnFunctCBType;
       
    57 typedef CyAsFunctionCallback CyAnFunctionCallback;
       
    58 
       
    59 #define CyAnEventMiscInitialized    CyAsEventMiscInitialized
       
    60 #define CyAnEventMiscAwake	    CyAsEventMiscAwake
       
    61 #define CyAnEventMiscHeartBeat      CyAsEventMiscHeartBeat
       
    62 #define CyAnEventMiscWakeup         CyAsEventMiscWakeup
       
    63 #define CyAnEventMiscDeviceMismatch CyAsEventMiscDeviceMismatch
       
    64 typedef CyAsMiscEventType CyAnMiscEventType;
       
    65 typedef CyAsMiscEventCallback CyAnMiscEventCallback;
       
    66 
       
    67 #define CyAnMiscGpio_0		    CyAsMiscGpio_0
       
    68 #define CyAnMiscGpio_1		    CyAsMiscGpio_1
       
    69 #define CyAnMiscGpio_Nand_CE	    CyAsMiscGpio_Nand_CE
       
    70 #define CyAnMiscGpio_Nand_CE2	    CyAsMiscGpio_Nand_CE2
       
    71 #define CyAnMiscGpio_Nand_WP	    CyAsMiscGpio_Nand_WP
       
    72 #define CyAnMiscGpio_Nand_CLE	    CyAsMiscGpio_Nand_CLE
       
    73 #define CyAnMiscGpio_Nand_ALE	    CyAsMiscGpio_Nand_ALE
       
    74 #define CyAnMiscGpio_UValid	    CyAsMiscGpio_UValid
       
    75 #define CyAnMiscGpio_SD_POW         CyAsMiscGpio_SD_POW
       
    76 typedef CyAsMiscGpio CyAnMiscGpio;
       
    77 
       
    78 #define CY_AN_SD_DEFAULT_FREQ       CY_AS_SD_DEFAULT_FREQ
       
    79 #define CY_AN_SD_RATED_FREQ         CY_AS_SD_RATED_FREQ
       
    80 typedef CyAsLowSpeedSDFreq CyAnLowSpeedSDFreq;
       
    81 
       
    82 #define CY_AN_HS_SD_FREQ_48         CY_AS_HS_SD_FREQ_48
       
    83 #define CY_AN_HS_SD_FREQ_24         CY_AS_HS_SD_FREQ_24
       
    84 typedef CyAsHighSpeedSDFreq CyAnHighSpeedSDFreq;
       
    85 
       
    86 #define CyAnMiscActiveHigh          CyAsMiscActiveHigh
       
    87 #define CyAnMiscActiveLow           CyAsMiscActiveLow
       
    88 typedef CyAsMiscSignalPolarity CyAnMiscSignalPolarity;
       
    89 
       
    90 typedef CyAsGetFirmwareVersionData CyAnGetFirmwareVersionData;
       
    91 
       
    92 enum {
       
    93     CYAN_FW_TRACE_LOG_NONE = 0,
       
    94     CYAN_FW_TRACE_LOG_STATE,
       
    95     CYAN_FW_TRACE_LOG_CALLS,
       
    96     CYAN_FW_TRACE_LOG_STACK_TRACE,
       
    97     CYAN_FW_TRACE_MAX_LEVEL
       
    98 };
       
    99 
       
   100 
       
   101 /***********************************/
       
   102 /***********************************/
       
   103 /*    FUNCTIONS                    */
       
   104 /***********************************/
       
   105 /***********************************/
       
   106 
       
   107 
       
   108 EXTERN CyAnReturnStatus_t
       
   109 CyAnMiscCreateDevice(
       
   110         CyAnDeviceHandle *		handle_p,
       
   111         CyAnHalDeviceTag		tag
       
   112         ) ;
       
   113 #define CyAnMiscCreateDevice(h, tag) CyAsMiscCreateDevice((CyAsDeviceHandle *)(h), (CyAsHalDeviceTag)(tag))
       
   114 
       
   115 EXTERN CyAnReturnStatus_t
       
   116 CyAnMiscDestroyDevice(
       
   117 	CyAnDeviceHandle  handle
       
   118 	) ;
       
   119 #define CyAnMiscDestroyDevice(h) CyAsMiscDestroyDevice((CyAsDeviceHandle)(h))
       
   120 
       
   121 EXTERN CyAnReturnStatus_t
       
   122 CyAnMiscConfigureDevice(
       
   123         CyAnDeviceHandle		handle,
       
   124         CyAnDeviceConfig		*config_p
       
   125         ) ;
       
   126 #define CyAnMiscConfigureDevice(h, cfg) CyAsMiscConfigureDevice((CyAsDeviceHandle)(h), (CyAsDeviceConfig *)(cfg))
       
   127 
       
   128 EXTERN CyAnReturnStatus_t
       
   129 CyAnMiscInStandby(
       
   130         CyAnDeviceHandle		handle,
       
   131         CyBool			        *standby
       
   132         ) ;
       
   133 #define CyAnMiscInStandby(h, standby) CyAsMiscInStandby((CyAsDeviceHandle)(h), (standby))
       
   134 
       
   135 /* Sync version of Download Firmware */
       
   136 EXTERN CyAnReturnStatus_t
       
   137 CyAnMiscDownloadFirmware(
       
   138         CyAnDeviceHandle		handle,
       
   139         const void 			*fw_p,
       
   140         uint16_t			size
       
   141         ) ;
       
   142 
       
   143 #define CyAnMiscDownloadFirmware(handle, fw_p, size)            \
       
   144     CyAsMiscDownloadFirmware((CyAsDeviceHandle)(handle), (fw_p), (size), 0, 0)
       
   145 
       
   146 /* Async version of Download Firmware */
       
   147 EXTERN CyAnReturnStatus_t
       
   148 CyAnMiscDownloadFirmwareEX(
       
   149         CyAnDeviceHandle		handle,
       
   150         const void 			*fw_p,
       
   151         uint16_t			size,
       
   152         CyAnFunctionCallback		cb,
       
   153         uint32_t			client
       
   154         ) ;
       
   155 
       
   156 #define CyAnMiscDownloadFirmwareEX(h, fw_p, size, cb, client)   \
       
   157     CyAsMiscDownloadFirmware((CyAsDeviceHandle)(h), (fw_p), (size), (CyAsFunctionCallback)(cb), (client))
       
   158 
       
   159 /* Sync version of Get Firmware Version */
       
   160 EXTERN CyAnReturnStatus_t
       
   161 CyAsMiscGetFirmwareVersion_dep(CyAsDeviceHandle handle,
       
   162 			     uint16_t *major,
       
   163 			     uint16_t *minor,
       
   164 			     uint16_t *build,
       
   165 			     uint8_t *mediaType,
       
   166 			     CyBool *isDebugMode);
       
   167 
       
   168 #define CyAnMiscGetFirmwareVersion(h, major, minor, bld, type, mode)    \
       
   169     CyAsMiscGetFirmwareVersion_dep((CyAsDeviceHandle)(h), (major), (minor), (bld), (type), (mode))
       
   170 
       
   171 /* Async version of Get Firmware Version*/
       
   172 EXTERN CyAnReturnStatus_t
       
   173 CyAnMiscGetFirmwareVersionEX(
       
   174         CyAnDeviceHandle		handle,
       
   175         CyAnGetFirmwareVersionData*	data,
       
   176         CyAnFunctionCallback	        cb,
       
   177         uint32_t			client
       
   178         ) ;
       
   179 #define CyAnMiscGetFirmwareVersionEX(h, data, cb, client)       \
       
   180     CyAsMiscGetFirmwareVersion((CyAsDeviceHandle)(h), (data), (CyAsFunctionCallback)(cb), (client))
       
   181 
       
   182 /* Sync version of Read MCU Register*/
       
   183 EXTERN CyAnReturnStatus_t
       
   184 CyAnMiscReadMCURegister(
       
   185 	CyAnDeviceHandle	handle,
       
   186 	uint16_t			address,
       
   187 	uint8_t				*value
       
   188 	) ;
       
   189 
       
   190 #define CyAnMiscReadMCURegister(handle, address, value) \
       
   191     CyAsMiscReadMCURegister((CyAsDeviceHandle)(handle), (address), (value), 0, 0)
       
   192 
       
   193 /* Async version of Read MCU Register*/
       
   194 EXTERN CyAnReturnStatus_t
       
   195 CyAnMiscReadMCURegisterEX(
       
   196 	CyAnDeviceHandle		handle,
       
   197 	uint16_t			address,
       
   198 	uint8_t				*value,
       
   199 	CyAnFunctionCallback		cb,
       
   200 	uint32_t			client
       
   201 	) ;
       
   202 
       
   203 #define CyAnMiscReadMCURegisterEX(h, addr, val, cb, client)     \
       
   204     CyAsMiscReadMCURegister((CyAsDeviceHandle)(h), (addr), (val), (CyAsFunctionCallback)(cb), (client))
       
   205 
       
   206 /* Sync version of Write MCU Register*/
       
   207 EXTERN CyAnReturnStatus_t
       
   208 CyAnMiscWriteMCURegister(
       
   209         CyAnDeviceHandle    handle,
       
   210         uint16_t            address,
       
   211         uint8_t			    mask,
       
   212         uint8_t             value
       
   213         ) ;
       
   214 #define CyAnMiscWriteMCURegister(handle, address, mask, value) \
       
   215     CyAsMiscWriteMCURegister((CyAsDeviceHandle)(handle), (address), (mask), (value), 0, 0)
       
   216 
       
   217 /* Async version of Write MCU Register*/
       
   218 EXTERN CyAnReturnStatus_t
       
   219 CyAnMiscWriteMCURegisterEX(
       
   220         CyAnDeviceHandle     handle,
       
   221         uint16_t             address,
       
   222         uint8_t		     mask,
       
   223         uint8_t              value,
       
   224         CyAnFunctionCallback cb,
       
   225         uint32_t	     client
       
   226         ) ;
       
   227 #define CyAnMiscWriteMCURegisterEX(h, addr, mask, val, cb, client)      \
       
   228     CyAsMiscWriteMCURegister((CyAsDeviceHandle)(h), (addr), (mask), (val), (CyAsFunctionCallback)(cb), (client))
       
   229 
       
   230 /* Sync version of Write MCU Register*/
       
   231 EXTERN CyAnReturnStatus_t
       
   232 CyAnMiscReset(
       
   233 	CyAnDeviceHandle		handle,
       
   234 	CyAnResetType			type,
       
   235 	CyBool				flush
       
   236 	) ;
       
   237 #define CyAnMiscReset(handle, type, flush) \
       
   238     CyAsMiscReset((CyAsDeviceHandle)(handle), (type), (flush), 0, 0)
       
   239 
       
   240 /* Async version of Write MCU Register*/
       
   241 EXTERN CyAnReturnStatus_t
       
   242 CyAnMiscResetEX(
       
   243 	CyAnDeviceHandle	handle,
       
   244 	CyAnResetType		type,
       
   245 	CyBool		    	flush,
       
   246 	CyAnFunctionCallback	cb,
       
   247 	uint32_t		client
       
   248 	) ;
       
   249 #define CyAnMiscResetEX(h, type, flush, cb, client)	\
       
   250     CyAsMiscReset((CyAsDeviceHandle)(h), (CyAsResetType)(type), (flush), (CyAsFunctionCallback)(cb), (client))
       
   251 
       
   252 /*  Synchronous version of CyAnMiscAcquireResource. */
       
   253 EXTERN CyAnReturnStatus_t
       
   254 CyAnMiscAcquireResource(
       
   255 	CyAnDeviceHandle		handle,
       
   256 	CyAnResourceType		type,
       
   257 	CyBool				force
       
   258 	) ;
       
   259 #define CyAnMiscAcquireResource(h, type, force)		\
       
   260     CyAsMiscAcquireResource_dep((CyAsDeviceHandle)(h), (CyAsResourceType)(type), (force))
       
   261 
       
   262 /* Asynchronous version of CyAnMiscAcquireResource. */
       
   263 EXTERN CyAnReturnStatus_t
       
   264 CyAnMiscAcquireResourceEX(
       
   265 	CyAnDeviceHandle		handle,
       
   266 	CyAnResourceType*		type,
       
   267 	CyBool				force,
       
   268 	CyAnFunctionCallback		cb,
       
   269 	uint32_t			client
       
   270 	) ;
       
   271 #define CyAnMiscAcquireResourceEX(h, type_p, force, cb, client)	\
       
   272     CyAsMiscAcquireResource((CyAsDeviceHandle)(h), (CyAsResourceType *)(type_p), \
       
   273 	    (force), (CyAsFunctionCallback)(cb), (client))
       
   274 
       
   275 /* The one and only version of Release resource */
       
   276 EXTERN CyAnReturnStatus_t
       
   277 CyAnMiscReleaseResource(
       
   278 	CyAnDeviceHandle		handle,
       
   279 	CyAnResourceType		type
       
   280 	) ;
       
   281 #define CyAnMiscReleaseResource(h, type)		\
       
   282     CyAsMiscReleaseResource((CyAsDeviceHandle)(h), (CyAsResourceType)(type))
       
   283 
       
   284 /* Synchronous version of CyAnMiscSetTraceLevel. */
       
   285 EXTERN CyAnReturnStatus_t
       
   286 CyAnMiscSetTraceLevel(
       
   287 	CyAnDeviceHandle	handle,
       
   288 	uint8_t			level,
       
   289 	CyAnMediaType		media,
       
   290 	uint32_t 		device,
       
   291 	uint32_t		unit
       
   292 	) ;
       
   293 
       
   294 #define CyAnMiscSetTraceLevel(handle, level, media, device, unit) \
       
   295     CyAsMiscSetTraceLevel_dep((CyAsDeviceHandle)(handle), (level), (CyAsMediaType)(media), (device), (unit), 0, 0)
       
   296 
       
   297 /* Asynchronous version of CyAnMiscSetTraceLevel. */
       
   298 EXTERN CyAnReturnStatus_t
       
   299 CyAnMiscSetTraceLevelEX(
       
   300 	CyAnDeviceHandle		handle,
       
   301 	uint8_t				level,
       
   302 	CyAnMediaType			media,
       
   303 	uint32_t			device,
       
   304 	uint32_t			unit,
       
   305 	CyAnFunctionCallback		cb,
       
   306 	uint32_t			client
       
   307 	) ;
       
   308 #define CyAnMiscSetTraceLevelEX(h, level, media, device, unit, cb, client)				\
       
   309     CyAsMiscSetTraceLevel_dep((CyAsDeviceHandle)(h), (level), (CyAsMediaType)(media), (device), (unit),	\
       
   310 	    (CyAsFunctionCallback)(cb), (client))
       
   311 
       
   312 /* Synchronous version of CyAnMiscEnterStandby. */
       
   313 EXTERN CyAnReturnStatus_t
       
   314 CyAnMiscEnterStandby(
       
   315 	CyAnDeviceHandle	handle,
       
   316 	CyBool			pin
       
   317 	) ;
       
   318 #define CyAnMiscEnterStandby(handle, pin) \
       
   319     CyAsMiscEnterStandby((CyAsDeviceHandle)(handle), (pin), 0, 0)
       
   320 
       
   321 /* Synchronous version of CyAnMiscEnterStandby. */
       
   322 EXTERN CyAnReturnStatus_t
       
   323 CyAnMiscEnterStandbyEX(
       
   324 	CyAnDeviceHandle	handle,
       
   325 	CyBool			pin,
       
   326 	CyAnFunctionCallback	cb,
       
   327 	uint32_t		client
       
   328 	) ;
       
   329 #define CyAnMiscEnterStandbyEX(h, pin, cb, client)		\
       
   330     CyAsMiscEnterStandby((CyAsDeviceHandle)(h), (pin), (CyAsFunctionCallback)(cb), (client))
       
   331 
       
   332 /* Only one version of CyAnMiscLeaveStandby. */
       
   333 EXTERN CyAnReturnStatus_t
       
   334 CyAnMiscLeaveStandby(
       
   335 	CyAnDeviceHandle		handle,
       
   336 	CyAnResourceType		type
       
   337 	) ;
       
   338 #define CyAnMiscLeaveStandby(h, type) 				\
       
   339     CyAsMiscLeaveStandby((CyAsDeviceHandle)(h), (CyAsResourceType)(type))
       
   340 
       
   341 /* The one version of Misc Register Callback */
       
   342 EXTERN CyAnReturnStatus_t
       
   343 CyAnMiscRegisterCallback(
       
   344 	CyAnDeviceHandle	handle,
       
   345 	CyAnMiscEventCallback	callback
       
   346 	) ;
       
   347 #define CyAnMiscRegisterCallback(h, cb)			\
       
   348     CyAsMiscRegisterCallback((CyAsDeviceHandle)(h), (CyAsMiscEventCallback)(cb))
       
   349 
       
   350 /* The only version of SetLogLevel */
       
   351 EXTERN void
       
   352 CyAnMiscSetLogLevel(
       
   353 	uint8_t	level
       
   354 	) ;
       
   355 #define CyAnMiscSetLogLevel(level) CyAsMiscSetLogLevel(level)
       
   356 
       
   357 /* Sync version of Misc Storage Changed */
       
   358 EXTERN CyAnReturnStatus_t
       
   359 CyAnMiscStorageChanged(
       
   360 	CyAnDeviceHandle		handle
       
   361 	) ;
       
   362 #define CyAnMiscStorageChanged(handle) \
       
   363     CyAsMiscStorageChanged((CyAsDeviceHandle)(handle), 0, 0)
       
   364 
       
   365 /* Async version of Misc Storage Changed */
       
   366 EXTERN CyAnReturnStatus_t
       
   367 CyAnMiscStorageChangedEX(
       
   368 	CyAnDeviceHandle	handle,
       
   369 	CyAnFunctionCallback	cb,
       
   370 	uint32_t		client
       
   371 	) ;
       
   372 #define CyAnMiscStorageChangedEX(h, cb, client)			\
       
   373     CyAsMiscStorageChanged((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))
       
   374 
       
   375 /* Sync version of Heartbeat control */
       
   376 EXTERN CyAnReturnStatus_t
       
   377 CyAnMiscHeartBeatControl(
       
   378         CyAnDeviceHandle                handle,
       
   379         CyBool                          enable
       
   380         ) ;
       
   381 #define CyAnMiscHeartBeatControl(handle, enable) \
       
   382     CyAsMiscHeartBeatControl((CyAsDeviceHandle)(handle), (enable), 0, 0)
       
   383 
       
   384 /* Async version of Heartbeat control */
       
   385 EXTERN CyAnReturnStatus_t
       
   386 CyAnMiscHeartBeatControlEX(
       
   387         CyAnDeviceHandle       	handle,
       
   388         CyBool                 	enable,
       
   389         CyAnFunctionCallback   	cb,
       
   390         uint32_t		client
       
   391         ) ;
       
   392 #define CyAnMiscHeartBeatControlEX(h, enable, cb, client)	\
       
   393     CyAsMiscHeartBeatControl((CyAsDeviceHandle)(h), (enable), (CyAsFunctionCallback)(cb), (client))
       
   394 
       
   395 /* Sync version of Get Gpio */
       
   396 EXTERN CyAnReturnStatus_t
       
   397 CyAnMiscGetGpioValue(
       
   398         CyAnDeviceHandle                handle,
       
   399         CyAnMiscGpio                    pin,
       
   400         uint8_t                        *value
       
   401         ) ;
       
   402 #define CyAnMiscGetGpioValue(handle, pin, value) \
       
   403     CyAsMiscGetGpioValue((CyAsDeviceHandle)(handle), (CyAsMiscGpio)(pin), (value), 0, 0)
       
   404 
       
   405 /* Async version of Get Gpio */
       
   406 EXTERN CyAnReturnStatus_t
       
   407 CyAnMiscGetGpioValueEX(
       
   408         CyAnDeviceHandle                handle,
       
   409         CyAnMiscGpio                    pin,
       
   410         uint8_t                        *value,
       
   411         CyAnFunctionCallback            cb,
       
   412         uint32_t                        client
       
   413         ) ;
       
   414 #define CyAnMiscGetGpioValueEX(h, pin, value, cb, client)	\
       
   415     CyAsMiscGetGpioValue((CyAsDeviceHandle)(h), (CyAsMiscGpio)(pin), (value), (CyAsFunctionCallback)(cb), (client))
       
   416 
       
   417 /* Sync version of Set Gpio */
       
   418 EXTERN CyAnReturnStatus_t
       
   419 CyAnMiscSetGpioValue(
       
   420         CyAnDeviceHandle handle,
       
   421         CyAnMiscGpio     pin,
       
   422         uint8_t          value
       
   423         ) ;
       
   424 #define CyAnMiscSetGpioValue(handle, pin, value) \
       
   425     CyAsMiscSetGpioValue((CyAsDeviceHandle)(handle), (CyAsMiscGpio)(pin), (value), 0, 0)
       
   426 
       
   427 /* Async version of Set Gpio */
       
   428 EXTERN CyAnReturnStatus_t
       
   429 CyAnMiscSetGpioValueEX(
       
   430         CyAnDeviceHandle                handle,
       
   431         CyAnMiscGpio                    pin,
       
   432         uint8_t                         value,
       
   433         CyAnFunctionCallback            cb,
       
   434         uint32_t                        client
       
   435         ) ;
       
   436 #define CyAnMiscSetGpioValueEX(h, pin, value, cb, client)	\
       
   437     CyAsMiscSetGpioValue((CyAsDeviceHandle)(h), (CyAsMiscGpio)(pin), (value), (CyAsFunctionCallback)(cb), (client))
       
   438 
       
   439 /* Sync version of Enter suspend */
       
   440 EXTERN CyAnReturnStatus_t
       
   441 CyAnMiscEnterSuspend(
       
   442         CyAnDeviceHandle                handle,
       
   443         CyBool                          usb_wakeup_en,
       
   444         CyBool                          gpio_wakeup_en
       
   445         ) ;
       
   446 #define CyAnMiscEnterSuspend(handle, usb_wakeup_en, gpio_wakeup_en) \
       
   447     CyAsMiscEnterSuspend((CyAsDeviceHandle)(handle), (usb_wakeup_en), (gpio_wakeup_en), 0, 0)
       
   448 
       
   449 /* Async version of Enter suspend */
       
   450 EXTERN CyAnReturnStatus_t
       
   451 CyAnMiscEnterSuspendEX(
       
   452         CyAnDeviceHandle        handle,
       
   453         CyBool                  usb_wakeup_en,
       
   454         CyBool                  gpio_wakeup_en,
       
   455         CyAnFunctionCallback    cb,
       
   456         uint32_t                client
       
   457         ) ;
       
   458 #define CyAnMiscEnterSuspendEX(h, usb_en, gpio_en, cb, client)	\
       
   459     CyAsMiscEnterSuspend((CyAsDeviceHandle)(h), (usb_en), (gpio_en), (CyAsFunctionCallback)(cb), (client))
       
   460 
       
   461 /* Sync version of Enter suspend */
       
   462 EXTERN CyAnReturnStatus_t
       
   463 CyAnMiscLeaveSuspend(
       
   464         CyAnDeviceHandle                handle
       
   465         ) ;
       
   466 #define CyAnMiscLeaveSuspend(handle) \
       
   467     CyAsMiscLeaveSuspend((CyAsDeviceHandle)(handle), 0, 0)
       
   468 
       
   469 /* Async version of Enter suspend */
       
   470 EXTERN CyAnReturnStatus_t
       
   471 CyAnMiscLeaveSuspendEX(
       
   472         CyAnDeviceHandle                handle,
       
   473         CyAnFunctionCallback            cb,
       
   474         uint32_t                        client
       
   475         ) ;
       
   476 
       
   477 #define CyAnMiscLeaveSuspendEX(h, cb, client)		\
       
   478     CyAsMiscLeaveSuspend((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))
       
   479 
       
   480 /* Sync version of SetLowSpeedSDFreq */
       
   481 EXTERN CyAnReturnStatus_t
       
   482 CyAnMiscSetLowSpeedSDFreq(
       
   483         CyAnDeviceHandle                handle,
       
   484         CyAnLowSpeedSDFreq              setting
       
   485         ) ;
       
   486 #define CyAnMiscSetLowSpeedSDFreq(h, setting)           \
       
   487     CyAsMiscSetLowSpeedSDFreq((CyAsDeviceHandle)(h), (CyAsLowSpeedSDFreq)(setting), 0, 0)
       
   488 
       
   489 /* Async version of SetLowSpeedSDFreq */
       
   490 EXTERN CyAnReturnStatus_t
       
   491 CyAnMiscSetLowSpeedSDFreqEX(
       
   492         CyAnDeviceHandle                handle,
       
   493         CyAnLowSpeedSDFreq              setting,
       
   494         CyAnFunctionCallback            cb,
       
   495         uint32_t                        client
       
   496         ) ;
       
   497 #define CyAnMiscSetLowSpeedSDFreqEX(h, setting, cb, client)                             \
       
   498     CyAsMiscSetLowSpeedSDFreq((CyAsDeviceHandle)(h), (CyAsLowSpeedSDFreq)(setting),     \
       
   499             (CyAsFunctionCallback)(cb), (client))
       
   500 
       
   501 /* SetHighSpeedSDFreq */
       
   502 EXTERN CyAnReturnStatus_t
       
   503 CyAnMiscSetHighSpeedSDFreq(
       
   504         CyAnDeviceHandle                handle,
       
   505         CyAnHighSpeedSDFreq             setting,
       
   506         CyAnFunctionCallback            cb,
       
   507         uint32_t                        client
       
   508         ) ;
       
   509 #define CyAnMiscSetHighSpeedSDFreq(h, setting, cb, client)                              \
       
   510     CyAsMiscSetHighSpeedSDFreq((CyAsDeviceHandle)(h), (CyAsHighSpeedSDFreq)(setting),   \
       
   511             (CyAsFunctionCallback)(cb), (client))
       
   512 
       
   513 /* ReserveLNABootArea */
       
   514 EXTERN CyAnReturnStatus_t 
       
   515 CyAnMiscReserveLNABootArea(
       
   516         CyAnDeviceHandle handle,
       
   517         uint8_t numzones,
       
   518         CyAnFunctionCallback cb, 
       
   519         uint32_t client);
       
   520 #define CyAnMiscReserveLNABootArea(h, num, cb, client)                                  \
       
   521     CyAsMiscReserveLNABootArea((CyAsDeviceHandle)(h), num, (CyAsFunctionCallback)(cb),  \
       
   522             (client))
       
   523 
       
   524 /* SetSDPowerPolarity */
       
   525 EXTERN CyAnReturnStatus_t
       
   526 CyAnMiscSetSDPowerPolarity(
       
   527         CyAnDeviceHandle       handle,
       
   528         CyAnMiscSignalPolarity polarity,
       
   529         CyAnFunctionCallback   cb,
       
   530         uint32_t               client);
       
   531 #define CyAnMiscSetSDPowerPolarity(h, pol, cb, client)                                  \
       
   532     CyAsMiscSetSDPowerPolarity((CyAsDeviceHandle)(h), (CyAsMiscSignalPolarity)(pol),    \
       
   533             (CyAsFunctionCallback)(cb), (client))
       
   534 
       
   535 #include "cyas_cplus_end.h"
       
   536 
       
   537 #endif
       
   538