// Function declarations hal_sdio_host.o
signed int HalSdioHostInit(void *Data, int a2);
int HalSdioHostEnable(void *Data, int a2);
int HalSdioHostDeInit(void *Data, int a2);
int HalSdioHostDisable(void *Data, int a2);
void HalSdioHostOpInit(void *Data);
// Function declarations rtl8195a_sdio_host.o
signed int SdioHostIsTimeout(uint32_t StartCount, uint32_t TimeoutCnt);
void SdioHostSendCmd(SDIO_HOST_CMD *Cmd);
signed int SdioHostGetResponse(void *Data, int RspType);
void SdioHostSdBusPwrCtrl(uint8_t En, int a2);
int SdioHostSdClkCtrl(void *Data, int En, int Divisor);
int SdioHostChkDataLineActive(uint32_t Timeout);
int SdioHostChkCmdInhibitCMD(uint32_t Timeout);
int SdioHostChkCmdInhibitDAT(uint32_t Timeout);
uint32_t SdioHostIsrHandle(void *Data);
int HalSdioHostDeInitRtl8195a(void *Data);
int HalSdioHostEnableRtl8195a(void *Data);
int HalSdioHostDisableRtl8195a(void *Data);
signed int HalSdioHostIrqInitRtl8195a(void *Data);
signed int HalSdioHostInitHostRtl8195a(void *Data);
int HalSdioHostStopTransferRtl8195a(void *Data, uint32_t a2);
signed int SdioHostErrIntRecovery(void *Data, int a2, signed int a3);
signed int SdioHostChkXferComplete(void *Data, uint32_t Timeout, signed int a3);
signed int SdioHostChkCmdComplete(void *Data, uint32_t Timeout);
int SdioHostCardSelection(void *Data, int Select, int a3);
int SdioHostGetCSD(void *Data, uint32_t a2);
int HalSdioHostReadBlocksDmaRtl8195a(int result, uint32_t a2, signed __int64 a3, uint32_t BlockCnta);
int HalSdioHostWriteBlocksDmaRtl8195a(int result, uint32_t a2, signed __int64 a3, uint32_t BlockCnta);
int SdioHostSwitchFunction(void *Data, int Mode, int Fn2Sel, int Fn1Sel, uint8_t *StatusBuf);
int HalSdioHostGetCardStatusRtl8195a(void *Data, uint32_t a2, int a3);
signed int HalSdioHostInitCardRtl8195a(void *Data, int a2, int a3);
int HalSdioHostGetSdStatusRtl8195a(void *Data, uint32_t a2, int a3);
signed int HalSdioHostChangeSdClockRtl8195a(void *Data, int Frequency);
int HalSdioHostEraseRtl8195a(uint64_t EndAddr, signed __int64 a2, signed __int64 EndAddra);
signed int HalSdioHostGetWriteProtectRtl8195a(void *Data, uint32_t a2, int a3);
int HalSdioHostSetWriteProtectRtl8195a(void *Data, int Setting);
struct _HAL_SDIO_HOST_ADAPTER_
{
IRQ_HANDLE IrqHandle;
ADMA2_DESC_FMT *AdmaDescTbl;
uint32_t Response[4];
uint32_t CardOCR;
uint32_t CardStatus;
uint32_t IsWriteProtect;
uint8_t SdStatus[64];
uint8_t Csd[16];
volatile uint8_t CmdCompleteFlg;
volatile uint8_t XferCompleteFlg;
volatile uint8_t ErrIntFlg;
volatile uint8_t CardCurState;
uint8_t IsSdhc;
uint8_t CurrSdClk;
uint16_t RCA;
uint16_t SdSpecVer;
void (*CardInsertCallBack)(void *);
void (*CardRemoveCallBack)(void *);
void *CardInsertCbPara;
void *CardRemoveCbPara;
};
enum _HAL_Status : __int32
{
HAL_OK = 0x0,
HAL_BUSY = 0x1,
HAL_TIMEOUT = 0x2,
HAL_ERR_PARA = 0x3,
HAL_ERR_MEM = 0x4,
HAL_ERR_HW = 0x5,
HAL_ERR_UNKNOWN = 0xEE,
};
typedef _HAL_Status HAL_Status;
struct _HAL_SDIO_HOST_OP_
{
HAL_Status (*HalSdioHostInitHost)(void *);
HAL_Status (*HalSdioHostInitCard)(void *);
HAL_Status (*HalSdioHostDeInit)(void *);
HAL_Status (*HalSdioHostRegIrq)(void *);
HAL_Status (*HalSdioHostReadBlocksDma)(void *, uint64_t, uint32_t);
HAL_Status (*HalSdioHostWriteBlocksDma)(void *, uint64_t, uint32_t);
HAL_Status (*HalSdioHostStopTransfer)(void *);
HAL_Status (*HalSdioHostGetCardStatus)(void *);
HAL_Status (*HalSdioHostGetSdStatus)(void *);
HAL_Status (*HalSdioHostChangeSdClock)(void *, uint8_t);
HAL_Status (*HalSdioHostErase)(void *, uint64_t, uint64_t);
HAL_Status (*HalSdioHostGetWriteProtect)(void *);
HAL_Status (*HalSdioHostSetWriteProtect)(void *, uint8_t);
};
typedef _HAL_SDIO_HOST_ADAPTER_ *PHAL_SDIO_HOST_ADAPTER;