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__ */