1 /* Cypress West Bridge API header file (cyanmisc.h)
2 ## Version for backward compatibility with previous Antioch SDK releases.
3 ## ===========================
4 ## Copyright (C) 2010 Cypress Semiconductor
6 ## This program is free software; you can redistribute it and/or
7 ## modify it under the terms of the GNU General Public License
8 ## as published by the Free Software Foundation; either version 2
9 ## of the License, or (at your option) any later version.
11 ## This program is distributed in the hope that it will be useful,
12 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ## GNU General Public License for more details.
16 ## You should have received a copy of the GNU General Public License
17 ## along with this program; if not, write to the Free Software
18 ## Foundation, Inc., 51 Franklin Street
19 ## Fifth Floor, Boston, MA 02110-1301, USA.
20 ## ===========================
23 #ifndef _INCLUDED_CYANMISC_H_
24 #define _INCLUDED_CYANMISC_H_
26 #include "cyantypes.h"
28 #include "cyanmedia.h"
29 #include "cyas_cplus_start.h"
31 #define CY_AN_LEAVE_STANDBY_DELAY_CLOCK \
32 (CY_AS_LEAVE_STANDBY_DELAY_CLOCK)
33 #define CY_AN_RESET_DELAY_CLOCK \
34 (CY_AS_RESET_DELAY_CLOCK)
36 #define CY_AN_LEAVE_STANDBY_DELAY_CRYSTAL \
37 (CY_AS_LEAVE_STANDBY_DELAY_CRYSTAL)
39 #define CY_AN_RESET_DELAY_CRYSTAL \
40 (CY_AS_RESET_DELAY_CRYSTAL)
42 /* Defines to convert the old CyAn names to the new
45 typedef cy_as_device_handle cy_an_device_handle;
47 #define cy_an_device_dack_ack cy_as_device_dack_ack
48 #define cy_an_device_dack_eob cy_as_device_dack_eob
49 typedef cy_as_device_dack_mode cy_an_device_dack_mode;
51 typedef cy_as_device_config cy_an_device_config;
53 #define cy_an_resource_u_s_b cy_as_bus_u_sB
54 #define cy_an_resource_sdio_MMC cy_as_bus_1
55 #define cy_an_resource_nand cy_as_bus_0
56 typedef cy_as_resource_type cy_an_resource_type;
58 #define cy_an_reset_soft cy_as_reset_soft
59 #define cy_an_reset_hard cy_as_reset_hard
60 typedef cy_as_reset_type cy_an_reset_type;
61 typedef cy_as_funct_c_b_type cy_an_funct_c_b_type;
62 typedef cy_as_function_callback cy_an_function_callback;
64 #define cy_an_event_misc_initialized \
65 cy_as_event_misc_initialized
66 #define cy_an_event_misc_awake \
67 cy_as_event_misc_awake
68 #define cy_an_event_misc_heart_beat \
69 cy_as_event_misc_heart_beat
70 #define cy_an_event_misc_wakeup \
71 cy_as_event_misc_wakeup
72 #define cy_an_event_misc_device_mismatch \
73 cy_as_event_misc_device_mismatch
74 typedef cy_as_misc_event_type \
75 cy_an_misc_event_type;
76 typedef cy_as_misc_event_callback \
77 cy_an_misc_event_callback;
79 #define cy_an_misc_gpio_0 cy_as_misc_gpio_0
80 #define cy_an_misc_gpio_1 cy_as_misc_gpio_1
81 #define cy_an_misc_gpio__nand_CE \
82 cy_as_misc_gpio__nand_CE
83 #define cy_an_misc_gpio__nand_CE2 \
84 cy_as_misc_gpio__nand_CE2
85 #define cy_an_misc_gpio__nand_WP \
86 cy_as_misc_gpio__nand_WP
87 #define cy_an_misc_gpio__nand_CLE \
88 cy_as_misc_gpio__nand_CLE
89 #define cy_an_misc_gpio__nand_ALE \
90 cy_as_misc_gpio__nand_ALE
91 #define cy_an_misc_gpio_U_valid \
92 cy_as_misc_gpio_U_valid
93 #define cy_an_misc_gpio_SD_POW \
94 cy_as_misc_gpio_SD_POW
95 typedef cy_as_misc_gpio cy_an_misc_gpio;
97 #define CY_AN_SD_DEFAULT_FREQ CY_AS_SD_DEFAULT_FREQ
98 #define CY_AN_SD_RATED_FREQ CY_AS_SD_RATED_FREQ
99 typedef cy_as_low_speed_sd_freq cy_an_low_speed_sd_freq;
101 #define CY_AN_HS_SD_FREQ_48 CY_AS_HS_SD_FREQ_48
102 #define CY_AN_HS_SD_FREQ_24 CY_AS_HS_SD_FREQ_24
103 typedef cy_as_high_speed_sd_freq \
104 cy_an_high_speed_sd_freq;
106 #define cy_an_misc_active_high cy_as_misc_active_high
107 #define cy_an_misc_active_low cy_as_misc_active_low
108 typedef cy_as_misc_signal_polarity cy_an_misc_signal_polarity;
110 typedef cy_as_get_firmware_version_data \
111 cy_an_get_firmware_version_data;
114 CYAN_FW_TRACE_LOG_NONE = 0,
115 CYAN_FW_TRACE_LOG_STATE,
116 CYAN_FW_TRACE_LOG_CALLS,
117 CYAN_FW_TRACE_LOG_STACK_TRACE,
118 CYAN_FW_TRACE_MAX_LEVEL
122 /***********************************/
123 /***********************************/
125 /***********************************/
126 /***********************************/
129 EXTERN cy_an_return_status_t
130 cy_an_misc_create_device(
131 cy_an_device_handle *handle_p,
132 cy_an_hal_device_tag tag
134 #define cy_an_misc_create_device(h, tag) \
135 cy_as_misc_create_device((cy_as_device_handle *)(h), \
136 (cy_as_hal_device_tag)(tag))
138 EXTERN cy_an_return_status_t
139 cy_an_misc_destroy_device(
140 cy_an_device_handle handle
142 #define cy_an_misc_destroy_device(h) \
143 cy_as_misc_destroy_device((cy_as_device_handle)(h))
145 EXTERN cy_an_return_status_t
146 cy_an_misc_configure_device(
147 cy_an_device_handle handle,
148 cy_an_device_config *config_p
150 #define cy_an_misc_configure_device(h, cfg) \
151 cy_as_misc_configure_device((cy_as_device_handle)(h), \
152 (cy_as_device_config *)(cfg))
154 EXTERN cy_an_return_status_t
155 cy_an_misc_in_standby(
156 cy_an_device_handle handle,
159 #define cy_an_misc_in_standby(h, standby) \
160 cy_as_misc_in_standby((cy_as_device_handle)(h), (standby))
162 /* Sync version of Download Firmware */
163 EXTERN cy_an_return_status_t
164 cy_an_misc_download_firmware(
165 cy_an_device_handle handle,
170 #define cy_an_misc_download_firmware(handle, fw_p, size) \
171 cy_as_misc_download_firmware((cy_as_device_handle)\
172 (handle), (fw_p), (size), 0, 0)
174 /* Async version of Download Firmware */
175 EXTERN cy_an_return_status_t
176 cy_an_misc_download_firmware_e_x(
177 cy_an_device_handle handle,
180 cy_an_function_callback cb,
184 #define cy_an_misc_download_firmware_e_x(h, fw_p, size, cb, client) \
185 cy_as_misc_download_firmware((cy_as_device_handle)(h), \
186 (fw_p), (size), (cy_as_function_callback)(cb), (client))
188 /* Sync version of Get Firmware Version */
189 EXTERN cy_an_return_status_t
190 cy_as_misc_get_firmware_version_dep(
191 cy_as_device_handle handle,
196 cy_bool *is_debug_mode);
198 #define cy_an_misc_get_firmware_version\
199 (h, major, minor, bld, type, mode) \
200 cy_as_misc_get_firmware_version_dep((cy_as_device_handle)(h), \
201 (major), (minor), (bld), (type), (mode))
203 /* Async version of Get Firmware Version*/
204 EXTERN cy_an_return_status_t
205 cy_an_misc_get_firmware_version_e_x(
206 cy_an_device_handle handle,
207 cy_an_get_firmware_version_data *data,
208 cy_an_function_callback cb,
211 #define cy_an_misc_get_firmware_version_e_x\
212 (h, data, cb, client) \
213 cy_as_misc_get_firmware_version((cy_as_device_handle)(h), \
214 (data), (cy_as_function_callback)(cb), (client))
216 /* Sync version of Read MCU Register*/
217 EXTERN cy_an_return_status_t
218 cy_an_misc_read_m_c_u_register(
219 cy_an_device_handle handle,
224 #define cy_an_misc_read_m_c_u_register(handle, address, value) \
225 cy_as_misc_read_m_c_u_register((cy_as_device_handle)(handle), \
226 (address), (value), 0, 0)
228 /* Async version of Read MCU Register*/
229 EXTERN cy_an_return_status_t
230 cy_an_misc_read_m_c_u_register_e_x(
231 cy_an_device_handle handle,
234 cy_an_function_callback cb,
238 #define cy_an_misc_read_m_c_u_register_e_x\
239 (h, addr, val, cb, client) \
240 cy_as_misc_read_m_c_u_register((cy_as_device_handle)(h), \
241 (addr), (val), (cy_as_function_callback)(cb), (client))
243 /* Sync version of Write MCU Register*/
244 EXTERN cy_an_return_status_t
245 cy_an_misc_write_m_c_u_register(
246 cy_an_device_handle handle,
251 #define cy_an_misc_write_m_c_u_register\
252 (handle, address, mask, value) \
253 cy_as_misc_write_m_c_u_register((cy_as_device_handle)(handle), \
254 (address), (mask), (value), 0, 0)
256 /* Async version of Write MCU Register*/
257 EXTERN cy_an_return_status_t
258 cy_an_misc_write_m_c_u_register_e_x(
259 cy_an_device_handle handle,
263 cy_an_function_callback cb,
266 #define cy_an_misc_write_m_c_u_register_e_x\
267 (h, addr, mask, val, cb, client) \
268 cy_as_misc_write_m_c_u_register((cy_as_device_handle)(h), \
269 (addr), (mask), (val), (cy_as_function_callback)(cb), (client))
271 /* Sync version of Write MCU Register*/
272 EXTERN cy_an_return_status_t
274 cy_an_device_handle handle,
275 cy_an_reset_type type,
278 #define cy_an_misc_reset(handle, type, flush) \
279 cy_as_misc_reset((cy_as_device_handle)(handle), \
280 (type), (flush), 0, 0)
282 /* Async version of Write MCU Register*/
283 EXTERN cy_an_return_status_t
284 cy_an_misc_reset_e_x(
285 cy_an_device_handle handle,
286 cy_an_reset_type type,
288 cy_an_function_callback cb,
291 #define cy_an_misc_reset_e_x(h, type, flush, cb, client) \
292 cy_as_misc_reset((cy_as_device_handle)(h), \
293 (cy_as_reset_type)(type), (flush), \
294 (cy_as_function_callback)(cb), (client))
296 /* Synchronous version of CyAnMiscAcquireResource. */
297 EXTERN cy_an_return_status_t
298 cy_an_misc_acquire_resource(
299 cy_an_device_handle handle,
300 cy_an_resource_type type,
303 #define cy_an_misc_acquire_resource(h, type, force) \
304 cy_as_misc_acquire_resource_dep((cy_as_device_handle)(h), \
305 (cy_as_resource_type)(type), (force))
307 /* Asynchronous version of CyAnMiscAcquireResource. */
308 EXTERN cy_an_return_status_t
309 cy_an_misc_acquire_resource_e_x(
310 cy_an_device_handle handle,
311 cy_an_resource_type *type,
313 cy_an_function_callback cb,
316 #define cy_an_misc_acquire_resource_e_x\
317 (h, type_p, force, cb, client) \
318 cy_as_misc_acquire_resource((cy_as_device_handle)(h), \
319 (cy_as_resource_type *)(type_p), \
320 (force), (cy_as_function_callback)(cb), (client))
322 /* The one and only version of Release resource */
323 EXTERN cy_an_return_status_t
324 cy_an_misc_release_resource(
325 cy_an_device_handle handle,
326 cy_an_resource_type type
328 #define cy_an_misc_release_resource(h, type)\
329 cy_as_misc_release_resource((cy_as_device_handle)(h), \
330 (cy_as_resource_type)(type))
332 /* Synchronous version of CyAnMiscSetTraceLevel. */
333 EXTERN cy_an_return_status_t
334 cy_an_misc_set_trace_level(
335 cy_an_device_handle handle,
337 cy_an_media_type media,
342 #define cy_an_misc_set_trace_level\
343 (handle, level, media, device, unit) \
344 cy_as_misc_set_trace_level_dep((cy_as_device_handle)(handle), \
345 (level), (cy_as_media_type)(media), (device), (unit), 0, 0)
347 /* Asynchronous version of CyAnMiscSetTraceLevel. */
348 EXTERN cy_an_return_status_t
349 cy_an_misc_set_trace_level_e_x(
350 cy_an_device_handle handle,
352 cy_an_media_type media,
355 cy_an_function_callback cb,
358 #define cy_an_misc_set_trace_level_e_x\
359 (h, level, media, device, unit, cb, client) \
360 cy_as_misc_set_trace_level_dep((cy_as_device_handle)(h), \
361 (level), (cy_as_media_type)(media), (device), (unit), \
362 (cy_as_function_callback)(cb), (client))
364 /* Synchronous version of CyAnMiscEnterStandby. */
365 EXTERN cy_an_return_status_t
366 cy_an_misc_enter_standby(
367 cy_an_device_handle handle,
370 #define cy_an_misc_enter_standby(handle, pin) \
371 cy_as_misc_enter_standby(\
372 (cy_as_device_handle)(handle), (pin), 0, 0)
374 /* Synchronous version of CyAnMiscEnterStandby. */
375 EXTERN cy_an_return_status_t
376 cy_an_misc_enter_standby_e_x(
377 cy_an_device_handle handle,
379 cy_an_function_callback cb,
382 #define cy_an_misc_enter_standby_e_x(h, pin, cb, client) \
383 cy_as_misc_enter_standby((cy_as_device_handle)(h), \
384 (pin), (cy_as_function_callback)(cb), (client))
386 /* Only one version of CyAnMiscLeaveStandby. */
387 EXTERN cy_an_return_status_t
388 cy_an_misc_leave_standby(
389 cy_an_device_handle handle,
390 cy_an_resource_type type
392 #define cy_an_misc_leave_standby(h, type) \
393 cy_as_misc_leave_standby((cy_as_device_handle)(h), \
394 (cy_as_resource_type)(type))
396 /* The one version of Misc Register Callback */
397 EXTERN cy_an_return_status_t
398 cy_an_misc_register_callback(
399 cy_an_device_handle handle,
400 cy_an_misc_event_callback callback
402 #define cy_an_misc_register_callback(h, cb) \
403 cy_as_misc_register_callback((cy_as_device_handle)(h), \
404 (cy_as_misc_event_callback)(cb))
406 /* The only version of SetLogLevel */
408 cy_an_misc_set_log_level(
411 #define cy_an_misc_set_log_level(level) \
412 cy_as_misc_set_log_level(level)
414 /* Sync version of Misc Storage Changed */
415 EXTERN cy_an_return_status_t
416 cy_an_misc_storage_changed(
417 cy_an_device_handle handle
419 #define cy_an_misc_storage_changed(handle) \
420 cy_as_misc_storage_changed((cy_as_device_handle)(handle), 0, 0)
422 /* Async version of Misc Storage Changed */
423 EXTERN cy_an_return_status_t
424 cy_an_misc_storage_changed_e_x(
425 cy_an_device_handle handle,
426 cy_an_function_callback cb,
429 #define cy_an_misc_storage_changed_e_x(h, cb, client) \
430 cy_as_misc_storage_changed((cy_as_device_handle)(h), \
431 (cy_as_function_callback)(cb), (client))
433 /* Sync version of Heartbeat control */
434 EXTERN cy_an_return_status_t
435 cy_an_misc_heart_beat_control(
436 cy_an_device_handle handle,
439 #define cy_an_misc_heart_beat_control(handle, enable) \
440 cy_as_misc_heart_beat_control((cy_as_device_handle)\
441 (handle), (enable), 0, 0)
443 /* Async version of Heartbeat control */
444 EXTERN cy_an_return_status_t
445 cy_an_misc_heart_beat_control_e_x(
446 cy_an_device_handle handle,
448 cy_an_function_callback cb,
451 #define cy_an_misc_heart_beat_control_e_x(h, enable, cb, client) \
452 cy_as_misc_heart_beat_control((cy_as_device_handle)(h), \
453 (enable), (cy_as_function_callback)(cb), (client))
455 /* Sync version of Get Gpio */
456 EXTERN cy_an_return_status_t
457 cy_an_misc_get_gpio_value(
458 cy_an_device_handle handle,
462 #define cy_an_misc_get_gpio_value(handle, pin, value) \
463 cy_as_misc_get_gpio_value((cy_as_device_handle)(handle), \
464 (cy_as_misc_gpio)(pin), (value), 0, 0)
466 /* Async version of Get Gpio */
467 EXTERN cy_an_return_status_t
468 cy_an_misc_get_gpio_value_e_x(
469 cy_an_device_handle handle,
472 cy_an_function_callback cb,
475 #define cy_an_misc_get_gpio_value_e_x(h, pin, value, cb, client) \
476 cy_as_misc_get_gpio_value((cy_as_device_handle)(h), \
477 (cy_as_misc_gpio)(pin), (value), \
478 (cy_as_function_callback)(cb), (client))
480 /* Sync version of Set Gpio */
481 EXTERN cy_an_return_status_t
482 cy_an_misc_set_gpio_value(
483 cy_an_device_handle handle,
487 #define cy_an_misc_set_gpio_value(handle, pin, value) \
488 cy_as_misc_set_gpio_value((cy_as_device_handle)(handle), \
489 (cy_as_misc_gpio)(pin), (value), 0, 0)
491 /* Async version of Set Gpio */
492 EXTERN cy_an_return_status_t
493 cy_an_misc_set_gpio_value_e_x(
494 cy_an_device_handle handle,
497 cy_an_function_callback cb,
500 #define cy_an_misc_set_gpio_value_e_x\
501 (h, pin, value, cb, client) \
502 cy_as_misc_set_gpio_value((cy_as_device_handle)(h), \
503 (cy_as_misc_gpio)(pin), (value), \
504 (cy_as_function_callback)(cb), (client))
506 /* Sync version of Enter suspend */
507 EXTERN cy_an_return_status_t
508 cy_an_misc_enter_suspend(
509 cy_an_device_handle handle,
510 cy_bool usb_wakeup_en,
511 cy_bool gpio_wakeup_en
513 #define cy_an_misc_enter_suspend(handle, usb_wakeup_en, \
515 cy_as_misc_enter_suspend((cy_as_device_handle)(handle), \
516 (usb_wakeup_en), (gpio_wakeup_en), 0, 0)
518 /* Async version of Enter suspend */
519 EXTERN cy_an_return_status_t
520 cy_an_misc_enter_suspend_e_x(
521 cy_an_device_handle handle,
522 cy_bool usb_wakeup_en,
523 cy_bool gpio_wakeup_en,
524 cy_an_function_callback cb,
527 #define cy_an_misc_enter_suspend_e_x(h, usb_en, gpio_en, cb, client)\
528 cy_as_misc_enter_suspend((cy_as_device_handle)(h), (usb_en), \
529 (gpio_en), (cy_as_function_callback)(cb), (client))
531 /* Sync version of Enter suspend */
532 EXTERN cy_an_return_status_t
533 cy_an_misc_leave_suspend(
534 cy_an_device_handle handle
536 #define cy_an_misc_leave_suspend(handle) \
537 cy_as_misc_leave_suspend((cy_as_device_handle)(handle), 0, 0)
539 /* Async version of Enter suspend */
540 EXTERN cy_an_return_status_t
541 cy_an_misc_leave_suspend_e_x(
542 cy_an_device_handle handle,
543 cy_an_function_callback cb,
547 #define cy_an_misc_leave_suspend_e_x(h, cb, client) \
548 cy_as_misc_leave_suspend((cy_as_device_handle)(h), \
549 (cy_as_function_callback)(cb), (client))
551 /* Sync version of SetLowSpeedSDFreq */
552 EXTERN cy_an_return_status_t
553 cy_an_misc_set_low_speed_sd_freq(
554 cy_an_device_handle handle,
555 cy_an_low_speed_sd_freq setting
557 #define cy_an_misc_set_low_speed_sd_freq(h, setting) \
558 cy_as_misc_set_low_speed_sd_freq((cy_as_device_handle)(h), \
559 (cy_as_low_speed_sd_freq)(setting), 0, 0)
561 /* Async version of SetLowSpeedSDFreq */
562 EXTERN cy_an_return_status_t
563 cy_an_misc_set_low_speed_sd_freq_e_x(
564 cy_an_device_handle handle,
565 cy_an_low_speed_sd_freq setting,
566 cy_an_function_callback cb,
569 #define cy_an_misc_set_low_speed_sd_freq_e_x\
570 (h, setting, cb, client) \
571 cy_as_misc_set_low_speed_sd_freq((cy_as_device_handle)(h), \
572 (cy_as_low_speed_sd_freq)(setting), \
573 (cy_as_function_callback)(cb), (client))
575 /* SetHighSpeedSDFreq */
576 EXTERN cy_an_return_status_t
577 cy_an_misc_set_high_speed_sd_freq(
578 cy_an_device_handle handle,
579 cy_an_high_speed_sd_freq setting,
580 cy_an_function_callback cb,
583 #define cy_an_misc_set_high_speed_sd_freq(h, setting, cb, client) \
584 cy_as_misc_set_high_speed_sd_freq((cy_as_device_handle)(h), \
585 (cy_as_high_speed_sd_freq)(setting), \
586 (cy_as_function_callback)(cb), (client))
588 /* ReserveLNABootArea */
589 EXTERN cy_an_return_status_t
590 cy_an_misc_reserve_l_n_a_boot_area(
591 cy_an_device_handle handle,
593 cy_an_function_callback cb,
595 #define cy_an_misc_reserve_l_n_a_boot_area(h, num, cb, client) \
596 cy_as_misc_reserve_l_n_a_boot_area((cy_as_device_handle)(h), \
597 num, (cy_as_function_callback)(cb), (client))
599 /* SetSDPowerPolarity */
600 EXTERN cy_an_return_status_t
601 cy_an_misc_set_sd_power_polarity(
602 cy_an_device_handle handle,
603 cy_an_misc_signal_polarity polarity,
604 cy_an_function_callback cb,
606 #define cy_an_misc_set_sd_power_polarity(h, pol, cb, client) \
607 cy_as_misc_set_sd_power_polarity((cy_as_device_handle)(h), \
608 (cy_as_misc_signal_polarity)(pol), \
609 (cy_as_function_callback)(cb), (client))
611 #include "cyas_cplus_end.h"