\r
#define MMC_OCR_POWERUP 0x80000000\r
\r
+#define MMC_OCR_ACCESS_MASK 0x3 /* bit[30-29] */\r
+#define MMC_OCR_ACCESS_BYTE 0x1 /* bit[29] */\r
+#define MMC_OCR_ACCESS_SECTOR 0x2 /* bit[30] */\r
+\r
#define MMC_CSD_GET_CCC(Response) (Response[2] >> 20)\r
#define MMC_CSD_GET_TRANSPEED(Response) (Response[3] & 0xFF)\r
#define MMC_CSD_GET_READBLLEN(Response) ((Response[2] >> 16) & 0xF)\r
#define EMMC_CMD6_ARG_VALUE(x) (((x) & 0xFF) << 8)\r
#define EMMC_CMD6_ARG_CMD_SET(x) (((x) & 0x7) << 0)\r
\r
+#define SWITCH_CMD_DATA_LENGTH 64\r
+#define SD_HIGH_SPEED_SUPPORTED 0x20000\r
+#define SD_DEFAULT_SPEED 25000000\r
+#define SD_HIGH_SPEED 50000000\r
+#define SWITCH_CMD_SUCCESS_MASK 0x0f000000\r
+\r
+#define BUSWIDTH_4 4\r
+\r
typedef enum {\r
UNKNOWN_CARD,\r
MMC_CARD, //MMC card\r
OCR OCRData;\r
CID CIDData;\r
CSD CSDData;\r
- ECSD ECSDData; // MMC V4 extended card specific\r
+ ECSD *ECSDData; // MMC V4 extended card specific\r
} CARD_INFO;\r
\r
typedef struct _MMC_HOST_INSTANCE {\r