2016-09-18 01:03:25 +00:00
|
|
|
/*
|
|
|
|
* Routines to access hardware
|
|
|
|
*
|
|
|
|
* Copyright (c) 2013 Realtek Semiconductor Corp.
|
|
|
|
*
|
|
|
|
* This module is a confidential and proprietary property of RealTek and
|
|
|
|
* possession or use of this module requires written permission of RealTek.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _HAL_SDIO_HOST_H_
|
|
|
|
#define _HAL_SDIO_HOST_H_
|
|
|
|
|
|
|
|
|
|
|
|
#include "rtl8195a_sdio_host.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define SDIO_HOST_WAIT_FOREVER 0xFFFFFFFF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct _HAL_SDIO_HOST_OP_ {
|
|
|
|
HAL_Status (*HalSdioHostInitHost) (VOID *Data);
|
|
|
|
HAL_Status (*HalSdioHostInitCard) (VOID *Data);
|
|
|
|
HAL_Status (*HalSdioHostDeInit) (VOID *Data);
|
|
|
|
HAL_Status (*HalSdioHostRegIrq) (VOID *Data);
|
|
|
|
HAL_Status (*HalSdioHostReadBlocksDma) (VOID *Data, u64 ReadAddr, u32 BlockCnt);
|
|
|
|
HAL_Status (*HalSdioHostWriteBlocksDma) (VOID *Data, u64 WriteAddr, u32 BlockCnt);
|
|
|
|
HAL_Status (*HalSdioHostStopTransfer) (VOID *Data);
|
|
|
|
HAL_Status (*HalSdioHostGetCardStatus) (VOID *Data);
|
|
|
|
HAL_Status (*HalSdioHostGetSdStatus) (VOID *Data);
|
|
|
|
HAL_Status (*HalSdioHostChangeSdClock) (VOID *Data, u8 Frequency);
|
|
|
|
HAL_Status (*HalSdioHostErase) (VOID *Data, u64 StartAddr, u64 EndAddr);
|
|
|
|
HAL_Status (*HalSdioHostGetWriteProtect) (VOID *Data);
|
|
|
|
HAL_Status (*HalSdioHostSetWriteProtect) (VOID *Data, u8 Setting);
|
|
|
|
}HAL_SDIO_HOST_OP, *PHAL_SDIO_HOST_OP;
|
|
|
|
|
|
|
|
typedef struct _HAL_SDIO_HOST_ADAPTER_{
|
|
|
|
IRQ_HANDLE IrqHandle; // Irq Handler
|
|
|
|
ADMA2_DESC_FMT *AdmaDescTbl;
|
|
|
|
u32 Response[4];
|
|
|
|
u32 CardOCR;
|
|
|
|
u32 CardStatus;
|
|
|
|
u32 IsWriteProtect;
|
|
|
|
u8 SdStatus[SD_STATUS_LEN];
|
|
|
|
u8 Csd[CSD_REG_LEN];
|
|
|
|
volatile u8 CmdCompleteFlg;
|
|
|
|
volatile u8 XferCompleteFlg;
|
|
|
|
volatile u8 ErrIntFlg;
|
|
|
|
volatile u8 CardCurState;
|
|
|
|
u8 IsSdhc;
|
|
|
|
u8 CurrSdClk;
|
|
|
|
u16 RCA;
|
|
|
|
u16 SdSpecVer;
|
|
|
|
VOID (*CardInsertCallBack)(VOID *pAdapter);
|
|
|
|
VOID (*CardRemoveCallBack)(VOID *pAdapter);
|
|
|
|
VOID *CardInsertCbPara;
|
|
|
|
VOID *CardRemoveCbPara;
|
|
|
|
}HAL_SDIO_HOST_ADAPTER, *PHAL_SDIO_HOST_ADAPTER;
|
|
|
|
|
|
|
|
|
|
|
|
extern HAL_Status
|
|
|
|
HalSdioHostInit(
|
|
|
|
IN VOID *Data
|
|
|
|
);
|
|
|
|
|
|
|
|
extern HAL_Status
|
|
|
|
HalSdioHostDeInit(
|
|
|
|
IN VOID *Data
|
|
|
|
);
|
|
|
|
|
|
|
|
extern HAL_Status
|
|
|
|
HalSdioHostEnable(
|
|
|
|
IN VOID *Data
|
|
|
|
);
|
|
|
|
|
|
|
|
extern HAL_Status
|
|
|
|
HalSdioHostDisable(
|
|
|
|
IN VOID *Data
|
|
|
|
);
|
|
|
|
|
|
|
|
extern VOID
|
|
|
|
HalSdioHostOpInit(
|
|
|
|
IN VOID *Data
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|