]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/staging/westbridge/astoria/include/linux/westbridge/cyanstorage.h
Merge branch 'master' into tk71
[mv-sheeva.git] / drivers / staging / westbridge / astoria / include / linux / westbridge / cyanstorage.h
diff --git a/drivers/staging/westbridge/astoria/include/linux/westbridge/cyanstorage.h b/drivers/staging/westbridge/astoria/include/linux/westbridge/cyanstorage.h
new file mode 100644 (file)
index 0000000..deb9af8
--- /dev/null
@@ -0,0 +1,419 @@
+/*  Cypress West Bridge API header file (cyanstorage.h)
+ ## Header for backward compatibility with previous releases of Antioch SDK.
+## ===========================
+## 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_CYANSTORAGE_H_
+#define _INCLUDED_CYANSTORAGE_H_
+#ifndef __doxygen__
+
+#include "cyanmedia.h"
+#include "cyanmisc.h"
+#include "cyasstorage.h"
+#include "cyas_cplus_start.h"
+
+#define CY_AN_LUN_PHYSICAL_DEVICE (CY_AS_LUN_PHYSICAL_DEVICE)
+#define CY_AN_STORAGE_EP_SIZE (CY_AS_STORAGE_EP_SIZE)
+
+#define        cy_an_storage_antioch   cy_as_storage_antioch
+#define        cy_an_storage_processor cy_as_storage_processor
+#define        cy_an_storage_removed   cy_as_storage_removed
+#define        cy_an_storage_inserted  cy_as_storage_inserted
+#define        cy_an_sdio_interrupt    cy_as_sdio_interrupt
+typedef cy_as_storage_event    cy_an_storage_event;
+
+#define        cy_an_op_read    cy_as_op_read
+#define        cy_an_op_write   cy_as_op_write
+typedef cy_as_oper_type cy_an_oper_type;
+
+typedef cy_as_device_desc cy_an_device_desc;
+
+typedef cy_as_unit_desc cy_an_unit_desc;
+
+typedef cy_as_storage_callback_dep \
+       cy_an_storage_callback;
+
+typedef cy_as_storage_event_callback_dep \
+       cy_an_storage_event_callback;
+
+#define        cy_an_sd_reg_OCR cy_as_sd_reg_OCR
+#define        cy_an_sd_reg_CID cy_as_sd_reg_CID
+#define        cy_an_sd_reg_CSD cy_as_sd_reg_CSD
+typedef cy_as_sd_card_reg_type \
+       cy_an_sd_card_reg_type;
+
+typedef cy_as_storage_query_device_data_dep \
+       cy_an_storage_query_device_data;
+
+typedef cy_as_storage_query_unit_data_dep \
+       cy_an_storage_query_unit_data;
+
+typedef cy_as_storage_sd_reg_read_data \
+       cy_an_storage_sd_reg_read_data;
+
+#define CY_AN_SD_REG_OCR_LENGTH (CY_AS_SD_REG_OCR_LENGTH)
+#define CY_AN_SD_REG_CID_LENGTH        (CY_AS_SD_REG_CID_LENGTH)
+#define CY_AN_SD_REG_CSD_LENGTH        (CY_AS_SD_REG_CSD_LENGTH)
+#define CY_AN_SD_REG_MAX_RESP_LENGTH \
+       (CY_AS_SD_REG_MAX_RESP_LENGTH)
+
+/**** API Functions ******/
+
+/* Sync version of Storage Start */
+EXTERN cy_an_return_status_t
+cy_an_storage_start(
+       cy_an_device_handle             handle
+       );
+#define cy_an_storage_start(handle) \
+       cy_as_storage_start((cy_as_device_handle)(handle), 0, 0)
+
+/* Async version of Storage Start */
+EXTERN cy_an_return_status_t
+cy_an_storage_start_e_x(
+       cy_an_device_handle     handle,
+       cy_an_function_callback cb,
+       uint32_t                client
+       );
+#define cy_an_storage_start_e_x(h, cb, client) \
+       cy_as_storage_start((cy_as_device_handle)(h), \
+               (cy_as_function_callback)(cb), (client))
+
+/* Sync version of Storage Stop */
+EXTERN cy_an_return_status_t
+cy_an_storage_stop(
+       cy_an_device_handle             handle
+       );
+#define cy_an_storage_stop(handle) \
+       cy_as_storage_stop((cy_as_device_handle)(handle), 0, 0)
+
+/* Async version of Storage Stop */
+EXTERN cy_an_return_status_t
+cy_an_storage_stop_e_x(
+       cy_an_device_handle     handle,
+       cy_an_function_callback cb,
+       uint32_t                client
+       );
+#define cy_an_storage_stop_e_x(h, cb, client)          \
+       cy_as_storage_stop((cy_as_device_handle)(h), \
+               (cy_as_function_callback)(cb), (client))
+
+/* Register Call back api */
+EXTERN cy_an_return_status_t
+cy_an_storage_register_callback(
+       cy_an_device_handle                     handle,
+       cy_an_storage_event_callback    callback
+       );
+#define cy_an_storage_register_callback(h, cb)         \
+       cy_as_storage_register_callback_dep((cy_as_device_handle)(h), \
+       (cy_as_storage_event_callback_dep)(cb))
+
+/* Sync version of Storage Claim */
+EXTERN cy_an_return_status_t
+cy_an_storage_claim(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type
+       );
+#define cy_an_storage_claim(h, type)                   \
+       cy_as_storage_claim_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type))
+
+/* Async version of Storage Claim */
+EXTERN cy_an_return_status_t
+cy_an_storage_claim_e_x(
+       cy_an_device_handle             handle,
+       cy_an_media_type *type,
+       cy_an_function_callback         cb,
+       uint32_t                        client
+       );
+#define cy_an_storage_claim_e_x(h, type_p, cb, client)         \
+       cy_as_storage_claim_dep_EX((cy_as_device_handle)(h), \
+       (cy_as_media_type *)(type_p), \
+       (cy_as_function_callback)(cb), (client))
+
+/* Sync Version of Storage Release */
+EXTERN cy_an_return_status_t
+cy_an_storage_release(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type
+       );
+#define cy_an_storage_release(h, type)                 \
+       cy_as_storage_release_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type))
+
+/* Async Version of Storage Release */
+EXTERN cy_an_return_status_t
+cy_an_storage_release_e_x(
+       cy_an_device_handle             handle,
+       cy_an_media_type *type,
+       cy_an_function_callback         cb,
+       uint32_t                        client
+       );
+#define cy_an_storage_release_e_x(h, type_p, cb, client)       \
+       cy_as_storage_release_dep_EX((cy_as_device_handle)(h), \
+       (cy_as_media_type *)(type_p), \
+       (cy_as_function_callback)(cb), (client))
+
+/* Sync version of Query Media */
+EXTERN cy_an_return_status_t
+cy_an_storage_query_media(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type,
+       uint32_t *count
+       );
+#define cy_an_storage_query_media(handle, type, count) \
+       cy_as_storage_query_media((cy_as_device_handle)(handle), \
+       (cy_as_media_type)(type), (count), 0, 0)
+
+/* Async version of Query Media */
+EXTERN cy_an_return_status_t
+cy_an_storage_query_media_e_x(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type,
+       uint32_t *count,
+       cy_an_function_callback         cb,
+       uint32_t                        client
+       );
+#define cy_an_storage_query_media_e_x(h, type, count, cb, client) \
+       cy_as_storage_query_media((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (count), \
+       (cy_as_function_callback)(cb), (client))
+
+/* Sync version of Query device */
+EXTERN cy_an_return_status_t
+cy_an_storage_query_device(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type,
+       uint32_t                        device,
+       cy_an_device_desc *desc_p
+       );
+#define cy_an_storage_query_device(h, type, device, desc_p) \
+       cy_as_storage_query_device_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (device), (cy_as_device_desc *)(desc_p))
+
+/* Async version of Query device */
+EXTERN cy_an_return_status_t
+cy_an_storage_query_device_e_x(
+       cy_an_device_handle             handle,
+       cy_an_storage_query_device_data *data,
+       cy_an_function_callback         cb,
+       uint32_t                        client
+       );
+#define cy_an_storage_query_device_e_x(h, data, cb, client) \
+       cy_as_storage_query_device_dep_EX((cy_as_device_handle)(h), \
+       (cy_as_storage_query_device_data_dep *)(data),  \
+               (cy_as_function_callback)(cb), (client))
+
+/* Sync version of Query Unit */
+EXTERN cy_an_return_status_t
+cy_an_storage_query_unit(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type,
+       uint32_t                        device,
+       uint32_t                        unit,
+       cy_an_unit_desc *desc_p
+       );
+#define cy_an_storage_query_unit(h, type, device, unit, desc_p)        \
+       cy_as_storage_query_unit_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (device), \
+       (unit), (cy_as_unit_desc *)(desc_p))
+
+/* Async version of Query Unit */
+EXTERN cy_an_return_status_t
+cy_an_storage_query_unit_e_x(
+       cy_an_device_handle             handle,
+       cy_an_storage_query_unit_data *data_p,
+       cy_an_function_callback         cb,
+       uint32_t                        client
+       );
+#define cy_an_storage_query_unit_e_x(h, data_p, cb, client)    \
+       cy_as_storage_query_unit_dep_EX((cy_as_device_handle)(h), \
+       (cy_as_storage_query_unit_data_dep *)(data_p),  \
+       (cy_as_function_callback)(cb), (client))
+
+/* Sync version of device control */
+EXTERN cy_an_return_status_t
+cy_an_storage_device_control(
+               cy_an_device_handle     handle,
+               cy_bool  card_detect_en,
+               cy_bool  write_prot_en
+               );
+#define cy_an_storage_device_control(handle, \
+       card_detect_en, write_prot_en) \
+       cy_as_storage_device_control_dep((cy_as_device_handle)(handle), \
+       (card_detect_en), (write_prot_en), 0, 0)
+
+/* Async version of device control */
+EXTERN cy_an_return_status_t
+cy_an_storage_device_control_e_x(
+               cy_an_device_handle                             handle,
+               cy_bool                 card_detect_en,
+               cy_bool                 write_prot_en,
+       cy_an_function_callback         cb,
+       uint32_t                        client
+               );
+#define cy_an_storage_device_control_e_x(h, det_en, prot_en, cb, client) \
+       cy_as_storage_device_control_dep((cy_as_device_handle)(h), (det_en), \
+       (prot_en), (cy_as_function_callback)(cb), (client))
+
+/* Sync Read */
+EXTERN cy_an_return_status_t
+cy_an_storage_read(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type,
+       uint32_t                        device,
+       uint32_t                        unit,
+       uint32_t                        block,
+       void *data_p,
+       uint16_t                        num_blocks
+       );
+#define cy_an_storage_read(h, type, device, unit, block, data_p, nblks)        \
+       cy_as_storage_read_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (device), (unit), \
+       (block), (data_p), (nblks))
+
+/* Async Read */
+EXTERN cy_an_return_status_t
+cy_an_storage_read_async(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type,
+       uint32_t                        device,
+       uint32_t                        unit,
+       uint32_t                        block,
+       void *data_p,
+       uint16_t                        num_blocks,
+       cy_an_storage_callback          callback
+       );
+#define cy_an_storage_read_async(h, type, device, unit, \
+       block, data_p, nblks, cb)                               \
+       cy_as_storage_read_async_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (device), (unit), (block), \
+               (data_p), (nblks), (cy_as_storage_callback_dep)(cb))
+
+/* Sync Write */
+EXTERN cy_an_return_status_t
+cy_an_storage_write(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type,
+       uint32_t                        device,
+       uint32_t                        unit,
+       uint32_t                        block,
+       void *data_p,
+       uint16_t                        num_blocks
+       );
+#define cy_an_storage_write(h, type, device, unit, \
+       block, data_p, nblks)   \
+       cy_as_storage_write_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (device), (unit), \
+       (block), (data_p), (nblks))
+
+/* Async Write */
+EXTERN cy_an_return_status_t
+cy_an_storage_write_async(
+       cy_an_device_handle             handle,
+       cy_an_media_type                        type,
+       uint32_t                        device,
+       uint32_t                        unit,
+       uint32_t                        block,
+       void *data_p,
+       uint16_t                        num_blocks,
+       cy_an_storage_callback          callback
+       );
+#define cy_an_storage_write_async(h, type, device, unit, \
+       block, data_p, nblks, cb) \
+       cy_as_storage_write_async_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (device), (unit), (block), \
+               (data_p), (nblks), (cy_as_storage_callback_dep)(cb))
+
+/* Cancel Async */
+EXTERN cy_an_return_status_t
+cy_an_storage_cancel_async(
+       cy_an_device_handle             handle
+       );
+#define cy_an_storage_cancel_async(h) \
+       cy_as_storage_cancel_async((cy_as_device_handle)(h))
+
+/* Sync SD Register Read*/
+EXTERN cy_an_return_status_t
+cy_an_storage_sd_register_read(
+               cy_an_device_handle               handle,
+       cy_an_media_type                  type,
+       uint8_t                           device,
+       cy_an_sd_card_reg_type           reg_type,
+       uint8_t                            read_len,
+       uint8_t                           *data_p
+               );
+#define cy_an_storage_sd_register_read(h, type, device, \
+       reg_type, len, data_p) \
+       cy_as_storage_sd_register_read_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (device),      \
+       (cy_as_sd_card_reg_type)(reg_type), (len), (data_p))
+
+/*Async SD Register Read*/
+EXTERN cy_an_return_status_t
+cy_an_storage_sd_register_read_e_x(
+               cy_an_device_handle               handle,
+       cy_an_media_type                  type,
+       uint8_t                           device,
+       cy_an_sd_card_reg_type           reg_type,
+       cy_an_storage_sd_reg_read_data *data_p,
+       cy_an_function_callback   cb,
+       uint32_t                                  client
+               );
+#define cy_an_storage_sd_register_read_e_x(h, type, device, \
+       reg_type, data_p, cb, client) \
+       cy_as_storage_sd_register_read_dep_EX((cy_as_device_handle)(h), \
+       (cy_as_media_type)(type), (device),     \
+       (cy_as_sd_card_reg_type)(reg_type), \
+       (cy_as_storage_sd_reg_read_data *)(data_p),     \
+       (cy_as_function_callback)(cb), (client))
+
+/* Create partition on storage device */
+EXTERN cy_an_return_status_t
+cy_an_storage_create_p_partition(
+               cy_an_device_handle      handle,
+               cy_an_media_type                media,
+               uint32_t                         device,
+               uint32_t                         size,
+               cy_an_function_callback cb,
+               uint32_t                         client);
+#define cy_an_storage_create_p_partition(h, media, dev, \
+       size, cb, client) \
+       cy_as_storage_create_p_partition_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(media), (dev), \
+       (size), (cy_as_function_callback)(cb), (client))
+
+/* Remove partition on storage device */
+EXTERN cy_an_return_status_t
+cy_an_storage_remove_p_partition(
+               cy_an_device_handle             handle,
+               cy_an_media_type                   media,
+               uint32_t                                device,
+               cy_an_function_callback cb,
+               uint32_t                                client);
+#define cy_an_storage_remove_p_partition\
+(h, media, dev, cb, client)     \
+       cy_as_storage_remove_p_partition_dep((cy_as_device_handle)(h), \
+       (cy_as_media_type)(media), (dev),          \
+                       (cy_as_function_callback)(cb), (client))
+
+#include "cyas_cplus_end.h"
+#endif /*__doxygen__ */
+
+#endif