📄 sdio.h
字号:
/******************** (c) Marvell Semiconductor, Inc., 2003 *******************
*
* $Header:
*
* Purpose:
* This file contains the function prototypes and definitions for the
* sdio.c.
*
* Public Procedures:
*
* Notes:
* None.
*
*****************************************************************************/
#ifdef SDIO
#ifndef _SDIO_H_
#define _SDIO_H_
//=============================================================================
// DEFINITIONS
//=============================================================================
#define MRVL_8100_SDIO_VER_ID 0x02 // TODO: what should this be?
// amount of time to wait in ms to check FW again if it is not ready
#define SDIO_FW_NOT_READY_WAIT_TIME 5
#define CF_READ_CMD_BUF_SIZE 128
#define CF_WRITE_CMD_BUF_SIZE 128
#define SDIO_EXTENDED_IO_BLOCK_SIZE 32//64 //32 //256 //128 //512 //32
#define SDIO_IO_READY 0x08
#define SDIO_CIS_CARD_READY 0x04
#define SDIO_UPLOAD_CARD_READY 0x02
#define SDIO_DOWNLOAD_CARD_READY 0x01
#define SDIO_IO_PORT 0x10000
#ifdef PWARE_SDIO_INTR_MODIFICATIONS
#define SDIO_DISABLE_INTERRUPT_MASK 0x01
#define SDIO_ENABLE_INTERRUPT_MASK 0x00
#else
#define SDIO_DISABLE_INTERRUPT 0x0
#define SDIO_ENABLE_INTERRUPT 0x1
#endif // PWARE_SDIO_INTR_MODIFICATIONS
#define UPLOAD_HOST_INT_STATUS_RDY 0x01
#ifndef MRV_CHIP_8305
#define DOWNLOAD_HOST_INT_STATUS_RDY 0x02
#define UPLOADDOWNLOAD_HOST_INT_STATUS_RDY 0x03
#endif
// host control register
#define HCR_HOST_INT_STATUS_REGISTER 0x5
#define HCR_HOST_INT_STATUS_RSR_REGISTER 0x6
#define HCR_HOST_INT_MASK_REGISTER 0x4
#define HCR_HOST_CONFIGURATION_REGISTER 0x3
//TT
#define HCR_SDIO_BUS_INTERFACE_CONTROL 0x7
#define HCR_HOST_CARD_STATUS_REGISTER 0x20
#ifndef MRV_CHIP_8305
#define CARD_REVISION_REG 0x3c
#endif
// card control register
#define CCR_CARD_STATUS_REGISTER 0x20
#ifdef MRV_CHIP_8686PN //dralee_20051201
#define LENGTH_SCRATCH_REGISTER 0x34
#define PACKET_TYPE_MAC_EVENT_SCRATCH_REGISTER 0x36
#else
#define LENGTH_SCRATCH_REGISTER 0x80FE
#define PACKET_TYPE_MAC_EVENT_SCRATCH_REGISTER 0x80FC
#endif
// code which will be in the scratch register after FW is initialized
#define SDIO_FW_INIT_CODE 0xFEDC
// 50 ms wait time
#define PKT_WAIT_TIME 50000 // number of 10 us units
// block size of FW download
#ifdef MRV_CHIP_8305
#define SDIO_FW_DOWNLOAD_BLOCK_SIZE 252
#else
#define SDIO_FW_DOWNLOAD_BLOCK_SIZE 512
#endif
enum sdio_pkt_type {
SDIO_DATA_PKT = 0,
SDIO_CMD_PKT,
SDIO_TX_DONE_EVENT,
SDIO_MAC_EVENT,
SDIO_INVALID_PKT_TYPE //dralee, last entry of sdio_pkt_type
};
#if 0
// Move to If.h
typedef enum _SDIO_FW_STATUS {
FW_STATUS_READ_FAILED,
FW_STATUS_INITIALIZED,
FW_STATUS_UNINITIALIZED
} SDIO_FW_STATUS;
#endif
//lykao, 050505, begin
// Structure describing Registry values
//typedef struct _REG_VALUE_DESCR {
// LPWSTR val_name;
// DWORD val_type;
// PBYTE val_data;
// } REG_VALUE_DESCR, *PREG_VALUE_DESCR;
//lykao, 050505, end
#define NOT !
//=============================================================================
// PUBLIC TYPE DEFINITIONS
//=============================================================================
//
//
//=============================================================================
// FUNCTION HEADER
//=============================================================================
NDIS_STATUS sdio_Initialization( PMRVDRV_ADAPTER Adapter, NDIS_HANDLE WrapperConfigurationContext );
IF_API_STATUS sdio_GetLengthOfDataBlock( PMRVDRV_ADAPTER Adapter, USHORT *pLength );
IF_API_STATUS sdio_GetCardStatusAndMacEvent( PMRVDRV_ADAPTER Adapter, UCHAR *pCardStatus, UCHAR *pMacEvent );
IF_API_STATUS sdio_GetDataBlock( PMRVDRV_ADAPTER Adapter, USHORT usLength, UCHAR ucCardStatus, UCHAR *p_pkt );
#endif // _SDIO_H_
#endif // SDIO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -