| /***************************************************************************** |
| |
| (c) Cambridge Silicon Radio Limited 2012 |
| All rights reserved and confidential information of CSR |
| |
| Refer to LICENSE.txt included with this source for details |
| on the license terms. |
| |
| *****************************************************************************/ |
| |
| /* |
| ****************************************************************************** |
| * FILE : csr_wifi_hip_card.h |
| * |
| * PURPOSE : Defines abstract interface for hardware specific functions. |
| * Note, this is a different file from one of the same name in the |
| * Windows driver. |
| * |
| ***************************************************************************** |
| */ |
| #ifndef __CARD_H__ |
| #define __CARD_H__ |
| |
| #include "csr_wifi_hip_card_sdio.h" |
| #include "csr_wifi_hip_signals.h" |
| #include "csr_wifi_hip_unifi_udi.h" |
| |
| |
| /***************************************************************************** |
| * CardEnableInt - |
| */ |
| CsrResult CardEnableInt(card_t *card); |
| |
| /***************************************************************************** |
| * CardGenInt - |
| */ |
| CsrResult CardGenInt(card_t *card); |
| |
| /***************************************************************************** |
| * CardPendingInt - |
| */ |
| CsrResult CardPendingInt(card_t *card, u8 *pintr); |
| |
| /***************************************************************************** |
| * CardDisableInt - |
| */ |
| CsrResult CardDisableInt(card_t *card); |
| |
| /***************************************************************************** |
| * CardClearInt - |
| */ |
| CsrResult CardClearInt(card_t *card); |
| |
| /***************************************************************************** |
| * CardDisable - |
| */ |
| void CardDisable(card_t *card); |
| |
| /***************************************************************************** |
| * CardIntEnabled - |
| */ |
| CsrResult CardIntEnabled(card_t *card, u8 *enabled); |
| |
| /***************************************************************************** |
| * CardGetDataSlotSize |
| */ |
| u16 CardGetDataSlotSize(card_t *card); |
| |
| /***************************************************************************** |
| * CardWriteBulkData - |
| */ |
| CsrResult CardWriteBulkData(card_t *card, card_signal_t *csptr, unifi_TrafficQueue queue); |
| |
| |
| /***************************************************************************** |
| * CardClearFromHostDataSlot - |
| */ |
| void CardClearFromHostDataSlot(card_t *card, const s16 aSlotNum); |
| |
| #ifdef CSR_WIFI_REQUEUE_PACKET_TO_HAL |
| /***************************************************************************** |
| * CardClearFromHostDataSlotWithoutFreeingBulkData - Clear the data stot |
| * without freeing the bulk data |
| */ |
| |
| void CardClearFromHostDataSlotWithoutFreeingBulkData(card_t *card, const s16 aSlotNum); |
| #endif |
| |
| /***************************************************************************** |
| * CardGetFreeFromHostDataSlots - |
| */ |
| u16 CardGetFreeFromHostDataSlots(card_t *card); |
| |
| u16 CardAreAllFromHostDataSlotsEmpty(card_t *card); |
| |
| CsrResult card_start_processor(card_t *card, enum unifi_dbg_processors_select which); |
| |
| CsrResult card_wait_for_firmware_to_start(card_t *card, u32 *paddr); |
| |
| CsrResult unifi_dl_firmware(card_t *card, void *arg); |
| CsrResult unifi_dl_patch(card_t *card, void *arg, u32 boot_ctrl); |
| CsrResult unifi_do_loader_op(card_t *card, u32 op_addr, u8 opcode); |
| void* unifi_dl_fw_read_start(card_t *card, s8 is_fw); |
| |
| CsrResult unifi_coredump_handle_request(card_t *card); |
| |
| CsrResult ConvertCsrSdioToCsrHipResult(card_t *card, CsrResult csrResult); |
| #ifdef CSR_WIFI_HIP_DEBUG_OFFLINE |
| void unifi_debug_log_to_buf(const char *fmt, ...); |
| void unifi_debug_string_to_buf(const char *str); |
| void unifi_debug_hex_to_buf(const char *buff, u16 length); |
| #endif |
| |
| #endif /* __CARD_H__ */ |