1 /*****************************************************************************
3 (c) Cambridge Silicon Radio Limited 2012
4 All rights reserved and confidential information of CSR
6 Refer to LICENSE.txt included with this source for details
9 *****************************************************************************/
12 ******************************************************************************
13 * FILE : csr_wifi_hip_card.h
15 * PURPOSE : Defines abstract interface for hardware specific functions.
16 * Note, this is a different file from one of the same name in the
19 *****************************************************************************
28 #include "csr_wifi_hip_card_sdio.h"
29 #include "csr_wifi_hip_signals.h"
30 #include "csr_wifi_hip_unifi_udi.h"
33 /*****************************************************************************
36 CsrResult CardEnableInt(card_t *card);
38 /*****************************************************************************
41 CsrResult CardGenInt(card_t *card);
43 /*****************************************************************************
46 CsrResult CardPendingInt(card_t *card, u8 *pintr);
48 /*****************************************************************************
51 CsrResult CardDisableInt(card_t *card);
53 /*****************************************************************************
56 CsrResult CardClearInt(card_t *card);
58 /*****************************************************************************
61 void CardDisable(card_t *card);
63 /*****************************************************************************
66 CsrResult CardIntEnabled(card_t *card, u8 *enabled);
68 /*****************************************************************************
71 u16 CardGetDataSlotSize(card_t *card);
73 /*****************************************************************************
76 CsrResult CardWriteBulkData(card_t *card, card_signal_t *csptr, unifi_TrafficQueue queue);
79 /*****************************************************************************
80 * CardClearFromHostDataSlot -
82 void CardClearFromHostDataSlot(card_t *card, const s16 aSlotNum);
84 #ifdef CSR_WIFI_REQUEUE_PACKET_TO_HAL
85 /*****************************************************************************
86 * CardClearFromHostDataSlotWithoutFreeingBulkData - Clear the data stot
87 * without freeing the bulk data
90 void CardClearFromHostDataSlotWithoutFreeingBulkData(card_t *card, const s16 aSlotNum);
93 /*****************************************************************************
94 * CardGetFreeFromHostDataSlots -
96 u16 CardGetFreeFromHostDataSlots(card_t *card);
98 u16 CardAreAllFromHostDataSlotsEmpty(card_t *card);
100 CsrResult card_start_processor(card_t *card, enum unifi_dbg_processors_select which);
102 CsrResult card_wait_for_firmware_to_start(card_t *card, u32 *paddr);
104 CsrResult unifi_dl_firmware(card_t *card, void *arg);
105 CsrResult unifi_dl_patch(card_t *card, void *arg, u32 boot_ctrl);
106 CsrResult unifi_do_loader_op(card_t *card, u32 op_addr, u8 opcode);
107 void* unifi_dl_fw_read_start(card_t *card, s8 is_fw);
109 CsrResult unifi_coredump_handle_request(card_t *card);
111 CsrResult ConvertCsrSdioToCsrHipResult(card_t *card, CsrResult csrResult);
112 #ifdef CSR_WIFI_HIP_DEBUG_OFFLINE
113 void unifi_debug_log_to_buf(const char *fmt, ...);
114 void unifi_debug_string_to_buf(const char *str);
115 void unifi_debug_hex_to_buf(const char *buff, u16 length);
123 #endif /* __CARD_H__ */