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 *****************************************************************************
24 #include "csr_wifi_hip_card_sdio.h"
25 #include "csr_wifi_hip_signals.h"
26 #include "csr_wifi_hip_unifi_udi.h"
29 /*****************************************************************************
32 CsrResult CardEnableInt(card_t *card);
34 /*****************************************************************************
37 CsrResult CardGenInt(card_t *card);
39 /*****************************************************************************
42 CsrResult CardPendingInt(card_t *card, u8 *pintr);
44 /*****************************************************************************
47 CsrResult CardDisableInt(card_t *card);
49 /*****************************************************************************
52 CsrResult CardClearInt(card_t *card);
54 /*****************************************************************************
57 void CardDisable(card_t *card);
59 /*****************************************************************************
62 CsrResult CardIntEnabled(card_t *card, u8 *enabled);
64 /*****************************************************************************
67 u16 CardGetDataSlotSize(card_t *card);
69 /*****************************************************************************
72 CsrResult CardWriteBulkData(card_t *card, card_signal_t *csptr, unifi_TrafficQueue queue);
75 /*****************************************************************************
76 * CardClearFromHostDataSlot -
78 void CardClearFromHostDataSlot(card_t *card, const s16 aSlotNum);
80 #ifdef CSR_WIFI_REQUEUE_PACKET_TO_HAL
81 /*****************************************************************************
82 * CardClearFromHostDataSlotWithoutFreeingBulkData - Clear the data stot
83 * without freeing the bulk data
86 void CardClearFromHostDataSlotWithoutFreeingBulkData(card_t *card, const s16 aSlotNum);
89 /*****************************************************************************
90 * CardGetFreeFromHostDataSlots -
92 u16 CardGetFreeFromHostDataSlots(card_t *card);
94 u16 CardAreAllFromHostDataSlotsEmpty(card_t *card);
96 CsrResult card_start_processor(card_t *card, enum unifi_dbg_processors_select which);
98 CsrResult card_wait_for_firmware_to_start(card_t *card, u32 *paddr);
100 CsrResult unifi_dl_firmware(card_t *card, void *arg);
101 CsrResult unifi_dl_patch(card_t *card, void *arg, u32 boot_ctrl);
102 CsrResult unifi_do_loader_op(card_t *card, u32 op_addr, u8 opcode);
103 void* unifi_dl_fw_read_start(card_t *card, s8 is_fw);
105 CsrResult unifi_coredump_handle_request(card_t *card);
107 CsrResult ConvertCsrSdioToCsrHipResult(card_t *card, CsrResult csrResult);
108 #ifdef CSR_WIFI_HIP_DEBUG_OFFLINE
109 void unifi_debug_log_to_buf(const char *fmt, ...);
110 void unifi_debug_string_to_buf(const char *str);
111 void unifi_debug_hex_to_buf(const char *buff, u16 length);
114 #endif /* __CARD_H__ */