SAMV71 Xplained Ultra Software Package 1.4

sdmmc.h File Reference

#include <stdint.h>
#include "sdmmc_hal.h"
#include "sdio.h"

Go to the source code of this file.

Defines

#define SD_BLOCK_SIZE   512
#define SD_BITS32(pDw, nbits, ibit, bits)   ( (((uint32_t*)(pDw))[(nbits)/32-(ibit)/32-1] >> ((ibit)%32)) & ((uint32_t)(1ul << (bits)) - 1 ) )
#define SD_BITS8(pB, nbits, ibit, bits)   ( (((uint8_t*)(pB))[(nbits)/8-(ibit)/8-1] >> ((ibit)%8)) & ((1 << (bits)) - 1) )
#define SD_U8(pD, nBytes, iByte)   ( ((uint8_t*)(pD))[(iByte)] )
#define SD_U16(pD, nBytes, iByte)
#define SD_U32(pD, nBytes, iByte)
#define SD_OCR_VDD_LOW   (1ul << 7)
#define MMC_OCR_VDD_170_195   (1ul << 7)
#define MMC_OCR_VDD_200_260   (0x3Ful << 8)
#define SD_OCR_VDD_20_21   (1ul << 8)
#define SD_OCR_VDD_21_22   (1ul << 9)
#define SD_OCR_VDD_22_23   (1ul << 10)
#define SD_OCR_VDD_23_24   (1ul << 11)
#define SD_OCR_VDD_24_25   (1ul << 12)
#define SD_OCR_VDD_25_26   (1ul << 13)
#define SD_OCR_VDD_26_27   (1ul << 14)
#define SD_OCR_VDD_27_28   (1ul << 15)
#define SD_OCR_VDD_28_29   (1ul << 16)
#define SD_OCR_VDD_29_30   (1ul << 17)
#define SD_OCR_VDD_30_31   (1ul << 18)
#define SD_OCR_VDD_31_32   (1ul << 19)
#define SD_OCR_VDD_32_33   (1ul << 20)
#define SD_OCR_VDD_33_34   (1ul << 21)
#define SD_OCR_VDD_34_35   (1ul << 22)
#define SD_OCR_VDD_35_36   (1ul << 23)
#define SDIO_OCR_MP   (0x1ul << 27)
#define SDIO_OCR_NF   (0x3ul << 28)
#define MMC_OCR_ACCESS_MODE   (0x3ul << 29)
#define MMC_OCR_ACCESS_BYTE   (0x0 << 29)
#define MMC_OCR_ACCESS_SECTOR   (0x2 << 29)
#define SD_OCR_CCS   (1ul << 30)
#define SD_OCR_BUSY   (1ul << 31)
#define SD_HOST_VOLTAGE_RANGE
#define SD_CID(pCid, field, bits)   SD_BITS32(pCid, 128, field, bits)
#define SD_CID_MID(pCid)   SD_CID(pCid, 120, 8)
#define eMMC_CID_CBX(pCid)   SD_CID(pCid, 112, 2)
#define SD_CID_OID1(pCid)   SD_CID(pCid, 112, 8)
#define SD_CID_OID0(pCid)   SD_CID(pCid, 104, 8)
#define eMMC_CID_OID(pCid)   SD_CID(pCid, 104, 8)
#define SD_CID_PNM4(pCid)   SD_CID(pCid, 96, 8)
#define SD_CID_PNM3(pCid)   SD_CID(pCid, 88, 8)
#define SD_CID_PNM2(pCid)   SD_CID(pCid, 80, 8)
#define SD_CID_PNM1(pCid)   SD_CID(pCid, 72, 8)
#define SD_CID_PNM0(pCid)   SD_CID(pCid, 64, 8)
#define MMC_CID_PNM5(pCid)   SD_CID(pCid, 96, 8)
#define MMC_CID_PNM4(pCid)   SD_CID(pCid, 88, 8)
#define MMC_CID_PNM3(pCid)   SD_CID(pCid, 80, 8)
#define MMC_CID_PNM2(pCid)   SD_CID(pCid, 72, 8)
#define MMC_CID_PNM1(pCid)   SD_CID(pCid, 64, 8)
#define MMC_CID_PNM0(pCid)   SD_CID(pCid, 56, 8)
#define SD_CID_PRV(pCid)   SD_CID(pCid, 56, 8)
#define MMC_CID_PRV(pCid)   SD_CID(pCid, 48, 8)
#define SD_CID_PSN3(pCid)   SD_CID(pCid, 48, 8)
#define SD_CID_PSN2(pCid)   SD_CID(pCid, 40, 8)
#define SD_CID_PSN1(pCid)   SD_CID(pCid, 32, 8)
#define SD_CID_PSN0(pCid)   SD_CID(pCid, 24, 8)
#define MMC_CID_PSN3(pCid)   SD_CID(pCid, 40, 8)
#define MMC_CID_PSN2(pCid)   SD_CID(pCid, 32, 8)
#define MMC_CID_PSN1(pCid)   SD_CID(pCid, 24, 8)
#define MMC_CID_PSN0(pCid)   SD_CID(pCid, 16, 8)
#define SD_CID_MDT_Y(pCid)   SD_CID(pCid, 12, 8)
#define MMC_CID_MDT_Y(pCid)   SD_CID(pCid, 12, 4)
#define SD_CID_MDT_M(pCid)   SD_CID(pCid, 8, 4)
#define SD_CID_CRC(pCid)   SD_CID(pCid, 1, 7)
#define SD_CSD(pCsd, field, bits)   SD_BITS32(pCsd, 128, field, bits)
#define SD_CSD_STRUCTURE(pCsd)   SD_CSD(pCsd, 126, 2)
#define SD_CSD_STRUCTURE_1_0   0
#define SD_CSD_STRUCTURE_2_0   1
#define MMC_CSD_STRUCTURE_1_0   0
#define MMC_CSD_STRUCTURE_1_1   1
#define MMC_CSD_STRUCTURE_1_2   2
#define MMC_CSD_SPEC_VERS(pCsd)   SD_CSD(pCsd, 122, 4)
#define MMC_CSD_SPEC_VERS_1_0   0
#define MMC_CSD_SPEC_VERS_1_4   1
#define MMC_CSD_SPEC_VERS_2_0   2
#define MMC_CSD_SPEC_VERS_3_1   3
#define MMC_CSD_SPEC_VERS_4_0   4
#define SD_CSD_TAAC(pCsd)   SD_CSD(pCsd, 112, 8)
#define SD_CSD_NSAC(pCsd)   SD_CSD(pCsd, 104, 8)
#define SD_CSD_TRAN_SPEED(pCsd)   SD_CSD(pCsd, 96, 8)
#define SD_CSD_CCC(pCsd)   SD_CSD(pCsd, 84, 12)
#define SD_CSD_READ_BL_LEN(pCsd)   SD_CSD(pCsd, 80, 4)
#define SD_CSD_READ_BL_PARTIAL(pCsd)   SD_CSD(pCsd, 79, 1)
#define SD_CSD_WRITE_BLK_MISALIGN(pCsd)   SD_CSD(pCsd, 78, 1)
#define SD_CSD_READ_BLK_MISALIGN(pCsd)   SD_CSD(pCsd, 77, 1)
#define SD_CSD_DSR_IMP(pCsd)   SD_CSD(pCsd, 76, 1)
#define SD_CSD_C_SIZE(pCsd)
#define SD2_CSD_C_SIZE(pCsd)
#define SD_CSD_VDD_R_CURR_MIN(pCsd)   SD_CSD(pCsd, 59, 3)
#define SD_CSD_VDD_R_CURR_MAX(pCsd)   SD_CSD(pCsd, 56, 3)
#define SD_CSD_VDD_W_CURR_MIN(pCsd)   SD_CSD(pCsd, 53, 3)
#define SD_CSD_VDD_W_CURR_MAX(pCsd)   SD_CSD(pCsd, 50, 3)
#define SD_CSD_C_SIZE_MULT(pCsd)   SD_CSD(pCsd, 47, 3)
#define SD_CSD_ERASE_BLK_EN(pCsd)   SD_CSD(pCsd, 46, 1)
#define MMC_CSD_ERASE_BLK_EN(pCsd)   SD_CSD(pCsd, 46, 1)
#define MMC_CSD_ERASE_GRP_SIZE(pCsd)   SD_CSD(pCsd, 42, 4)
#define SD_CSD_ERASE_GRP_MULT(pCsd)   SD_CSD(pCsd, 37, 4)
#define SD_CSD_SECTOR_SIZE(pCsd)
#define SD_CSD_WP_GRP_SIZE(pCsd)   SD_CSD(pCsd, 32, 7)
#define SD_CSD_WP_GRP_ENABLE(pCsd)   SD_CSD(pCsd, 31, 1)
#define SD_CSD_R2W_FACTOR(pCsd)   SD_CSD(pCsd, 26, 3)
#define SD_CSD_WRITE_BL_LEN(pCsd)
#define SD_CSD_WRITE_BL_PARTIAL(pCsd)   SD_CSD(pCsd, 21, 1)
#define SD_CSD_CONTENT_PROT_APP(pCsd)   SD_CSD(pCsd, 16, 1)
#define SD_CSD_FILE_FORMAT_GRP(pCsd)   SD_CSD(pCsd, 15, 1)
#define SD_CSD_COPY(pCsd)   SD_CSD(pCsd, 14, 1)
#define SD_CSD_PERM_WRITE_PROTECT(pCsd)   SD_CSD(pCsd, 13, 1)
#define SD_CSD_TMP_WRITE_PROTECT(pCsd)   SD_CSD(pCsd, 12, 1)
#define SD_CSD_FILE_FORMAT(pCsd)   SD_CSD(pCsd, 10, 2)
#define MMC_CSD_ECC(pCsd)   SD_CSD(pCsd, 8, 2)
#define MMC_CSD_ECC_NONE   0
#define MMC_CSD_ECC_BCH   1
#define SD_CSD_CRC(pCsd)   SD_CSD(pCsd, 1, 7)
#define SD_CSD_MULT(pCsd)   (1 << (SD_CSD_C_SIZE_MULT(pCsd) + 2))
#define SD_CSD_BLOCKNR(pCsd)   ((SD_CSD_C_SIZE(pCsd) + 1) * SD_CSD_MULT(pCsd))
#define SD_CSD_BLOCKNR_HC(pCsd)   ((SD2_CSD_C_SIZE(pCsd) + 1) * 1024)
#define SD_CSD_BLOCK_LEN(pCsd)   (1 << SD_CSD_READ_BL_LEN(pCsd))
#define SD_CSD_TOTAL_SIZE(pCsd)   (SD_CSD_BLOCKNR(pCsd) * SD_CSD_BLOCK_LEN(pCsd))
#define SD_CSD_TOTAL_SIZE_HC(pCsd)   ((SD2_CSD_C_SIZE(pCsd) + 1) * 512* 1024)
#define SD_SCR(pScr, field, bits)   SD_BITS32(pScr, 64, field, bits)
#define SD_SCR_STRUCTURE(pScr)   SD_SCR(pScr, 60, 4)
#define SD_SCR_STRUCTURE_1_0   0
#define SD_SCR_SD_SPEC(pScr)   SD_SCR(pScr, 56, 4)
#define SD_SCR_SD_SPEC_1_0   0
#define SD_SCR_SD_SPEC_1_10   1
#define SD_SCR_SD_SPEC_2_00   2
#define SD_SCR_DATA_STAT_AFTER_ERASE(pScr)   SD_SCR(pScr, 55, 1)
#define SD_SCR_SD_SECURITY(pScr)   SD_SCR(pScr, 52, 3)
#define SD_SCR_SD_SECURITY_NO   0
#define SD_SCR_SD_SECURITY_NOTUSED   1
#define SD_SCR_SD_SECURITY_1_01   2
#define SD_SCR_SD_SECURITY_2_00   3
#define SD_SCR_SD_BUS_WIDTHS(pScr)   SD_SCR(pScr, 48, 4)
#define SD_SCR_SD_BUS_WIDTH_1BITS   (1 << 0)
#define SD_SCR_SD_BUS_WIDTH_4BITS   (1 << 2)
#define SD_CST_OUT_OF_RANGE   (1UL << 31)
#define SD_CST_ADDRESS_ERROR   (1UL << 30)
#define SD_CST_BLOCK_LEN_ERROR   (1UL << 29)
#define SD_CST_ERASE_SEQ_ERROR   (1UL << 28)
#define SD_CST_ERASE_PARAM   (1UL << 27)
#define SD_CST_WP_VIOLATION   (1UL << 26)
#define SD_CST_CARD_IS_LOCKED   (1UL << 25)
#define SD_CST_LOCK_UNLOCK_FAILED   (1UL << 24)
#define SD_CST_COM_CRC_ERROR   (1UL << 23)
#define SD_CST_ILLEGAL_COMMAND   (1UL << 22)
#define SD_CST_CARD_ECC_FAILED   (1UL << 21)
#define SD_CST_CC_ERROR   (1UL << 20)
#define SD_CST_ERROR   (1UL << 19)
#define MMC_CST_UNDERRUN   (1UL << 18)
#define MMC_CST_OVERRUN   (1UL << 17)
#define SD_CST_CSD_OVERWRITE   (1UL << 16)
#define SD_CST_WP_ERASE_SKIP   (1UL << 15)
#define SD_CST_ECC_DISABLED   (1UL << 14)
#define SD_CST_ERASE_RESET   (1UL << 13)
#define SD_CST_CURRENT_STATE   (0xFUL << 9)
#define SD_STATE_IDLE   0
#define SD_STATE_READY   1
#define SD_STATE_IDENT   2
#define SD_STATE_STBY   3
#define SD_STATE_TRAN   4
#define SD_STATE_DATA   5
#define SD_STATE_RCV   6
#define SD_STATE_PRG   7
#define SD_STATE_DIS   8
#define MMC_STATE_BTST   9
#define MMC_STATE_SLP   10
#define SD_CST_STATE_IDLE   (0x0UL << 9)
#define SD_CST_STATE_READY   (0x1UL << 9)
#define SD_CST_STATE_IDENT   (0x2UL << 9)
#define SD_CST_STATE_STBY   (0x3UL << 9)
#define SD_CST_STATE_TRAN   (0x4UL << 9)
#define SD_CST_STATE_DATA   (0x5UL << 9)
#define SD_CST_STATE_RCV   (0x6UL << 9)
#define SD_CST_STATE_PRG   (0x7UL << 9)
#define SD_CST_STATE_DIS   (0x8UL << 9)
#define SD_CST_STATE_BTST   (0x9UL << 9)
#define SD_CST_STATE_SLP   (0xAUL << 9)
#define SD_CST_READY_FOR_DATA   (1UL << 8)
#define MMC_CST_SWITCH_ERROR   (1UL << 7)
#define SD_CST_APP_CMD   (1UL << 5)
#define SD_CST_AKE_SEQ_ERROR   (1UL << 3)
#define SD_ST(pSt, field, bits)   SD_BITS32(pSt, 512, field, bits)
#define SD_ST_DAT_BUS_WIDTH(pSt)   SD_ST(pSt, 510, 2)
#define SD_ST_DATA_BUS_WIDTH_1BIT   0x0
#define SD_ST_DATA_BUS_WIDTH_4BIT   0x2
#define SD_ST_SECURED_MODE(pSt)   SD_ST(pSt, 509, 1)
#define SD_ST_CARD_TYPE(pSt)   SD_ST(pSt, 480, 16)
#define SD_ST_CARD_TYPE_RW   0x0000
#define SD_ST_CARD_TYPE_ROM   0x0001
#define SD_ST_SIZE_OF_PROTECTED_AREA(pSt)   SD_ST(pSt, 448, 32)
#define SD_ST_SPEED_CLASS(pSt)   SD_ST(pSt, 440, 8)
#define SD_ST_SPEED_CLASS_0   0
#define SD_ST_SPEED_CLASS_2   1
#define SD_ST_SPEED_CLASS_4   2
#define SD_ST_SPEED_CLASS_6   3
#define SD_ST_PERFORMANCE_MOVE(pSt)   SD_ST(pSt, 432, 8)
#define SD_ST_AU_SIZE(pSt)   SD_ST(pSt, 428, 4)
#define SD_ST_AU_SIZE_16K   1
#define SD_ST_AU_SIZE_32K   2
#define SD_ST_AU_SIZE_64K   3
#define SD_ST_AU_SIZE_128K   4
#define SD_ST_AU_SIZE_256K   5
#define SD_ST_AU_SIZE_512K   6
#define SD_ST_AU_SIZE_1M   7
#define SD_ST_AU_SIZE_2M   8
#define SD_ST_AU_SIZE_4M   9
#define SD_ST_ERASE_SIZE(pSt)   SD_ST(pSt, 408, 16)
#define SD_ST_ERASE_TIMEOUT(pSt)   SD_ST(pSt, 402, 6)
#define SD_ST_ERASE_OFFSET(pSt)   SD_ST(pSt, 400, 2)
#define SD_SWITCH_ST(p, field, bits)   SD_BITS32(p, 512, field, bits)
#define SD_SWITCH_ST_MAX_CURRENT_CONSUMPTION(p)   SD_SWITCH_ST(p, 496, 16)
#define SD_SWITCH_ST_FUN_GRP6_INFO(p)   SD_SWITCH_ST(p, 480, 16)
#define SD_SWITCH_ST_FUN_GRP5_INFO(p)   SD_SWITCH_ST(p, 464, 16)
#define SD_SWITCH_ST_FUN_GRP4_INFO(p)   SD_SWITCH_ST(p, 448, 16)
#define SD_SWITCH_ST_FUN_GRP3_INFO(p)   SD_SWITCH_ST(p, 432, 16)
#define SD_SWITCH_ST_FUN_GRP2_INFO(p)   SD_SWITCH_ST(p, 416, 16)
#define SD_SWITCH_ST_FUN_GRP1_INFO(p)   SD_SWITCH_ST(p, 400, 16)
#define SD_SWITCH_ST_FUN_GRP6_RC(p)   SD_SWITCH_ST(p, 396, 4)
#define SD_SWITCH_ST_FUN_GRP5_RC(p)   SD_SWITCH_ST(p, 392, 4)
#define SD_SWITCH_ST_FUN_GRP4_RC(p)   SD_SWITCH_ST(p, 388, 4)
#define SD_SWITCH_ST_FUN_GRP3_RC(p)   SD_SWITCH_ST(p, 384, 4)
#define SD_SWITCH_ST_FUN_GRP2_RC(p)   SD_SWITCH_ST(p, 380, 4)
#define SD_SWITCH_ST_FUN_GRP1_RC(p)   SD_SWITCH_ST(p, 376, 4)
#define SD_SWITCH_ST_FUN_GRP_RC_ERROR   0xF
#define SD_SWITCH_ST_DATA_STRUCT_VER(p)   SD_SWITCH_ST(p, 368, 8)
#define SD_SWITCH_ST_FUN_GRP6_BUSY(p)   SD_SWITCH_ST(p, 352, 16)
#define SD_SWITCH_ST_FUN_GRP5_BUSY(p)   SD_SWITCH_ST(p, 336, 16)
#define SD_SWITCH_ST_FUN_GRP4_BUSY(p)   SD_SWITCH_ST(p, 320, 16)
#define SD_SWITCH_ST_FUN_GRP3_BUSY(p)   SD_SWITCH_ST(p, 304, 16)
#define SD_SWITCH_ST_FUN_GRP2_BUSY(p)   SD_SWITCH_ST(p, 288, 16)
#define SD_SWITCH_ST_FUN_GRP1_BUSY(p)   SD_SWITCH_ST(p, 272, 16)
#define SD_SWITCH_ST_FUN_GRP_FUN_BUSY(funNdx)   (1 << (funNdx))
#define MMC_EXT8(p, i)   SD_U8(p, 512, i)
#define MMC_EXT32(p, i)   SD_U32(p, 512, i)
#define MMC_EXT_S_CMD_SET_I   504
#define MMC_EXT_S_CMD_SET(p)   MMC_EXT8(p, MMC_EXT_S_CMD_SET_I)
#define MMC_EXT_BOOT_INFO_I   228
#define MMC_EXT_BOOT_INFO(p)   MMC_EXT8(p, MMC_EXT_BOOT_INFO_I)
#define MMC_EXT_BOOT_SIZE_MULTI_I   226
#define MMC_EXT_BOOT_SIZE_MULTI(p)   MMC_EXT8(p, MMC_EXT_BOOT_SIZE_MULTI_I)
#define MMC_EXT_ACC_SIZE_I   225
#define MMC_EXT_ACC_SIZE(p)   MMC_EXT8(p, MMC_EXT_ACC_SIZE_I)
#define MMC_EXT_HC_ERASE_GRP_SIZE_I   224
#define MMC_EXT_HC_ERASE_GRP_SIZE(p)   MMC_EXT8(p, MMC_EXT_HC_ERASE_GRP_SIZE_I)
#define MMC_EXT_ERASE_TIMEOUT_MULT_I   223
#define MMC_EXT_ERASE_TIMEOUT_MULT(p)   MMC_EXT8(p, MMC_EXT_ERASE_TIMEOUT_MULT_I)
#define MMC_EXT_REL_WR_SEC_C_I   222
#define MMC_EXT_REL_WR_SEC_C(p)   MMC_EXT8(p, MMC_EXT_REL_WR_SEC_C_I)
#define MMC_EXT_HC_WP_GRP_SIZE_I   221
#define MMC_EXT_HC_WP_GRP_SIZE(p)   MMC_EXT8(p, MMC_EXT_HC_WP_GRP_SIZE_I)
#define MMC_EXT_S_C_VCC_I   220
#define MMC_EXT_S_C_VCC(p)   MMC_EXT8(p, MMC_EXT_S_C_VCC_I)
#define MMC_EXT_S_C_VCCQ_I   219
#define MMC_EXT_S_C_VCCQ(p)   MMC_EXT8(p, MMC_EXT_S_C_VCCQ_I)
#define MMC_EXT_S_A_TIMEOUT_I   217
#define MMC_EXT_S_A_TIMEOUT(p)   MMC_EXT8(p, MMC_EXT_S_A_TIMEOUT_I)
#define MMC_EXT_SEC_COUNT_I   212
#define MMC_EXT_SEC_COUNT(p)   MMC_EXT32(p, MMC_EXT_SEC_COUNT_I)
#define MMC_EXT_MIN_PERF_W_8_52_I   210
#define MMC_EXT_MIN_PERF_W_8_52(p)   MMC_EXT8(p, MMC_EXT_MIN_PERF_W_8_52_I)
#define MMC_EXT_MIN_PERF_R_8_52_I   209
#define MMC_EXT_MIN_PERF_R_8_52(p)   MMC_EXT8(p, MMC_EXT_MIN_PERF_R_8_52_I)
#define MMC_EXT_MIN_PERF_W_8_26_4_52_I   208
#define MMC_EXT_MIN_PERF_W_8_26_4_52(p)   MMC_EXT8(p, MMC_EXT_MIN_PERF_W_8_26_4_52_I)
#define MMC_EXT_MIN_PERF_R_8_26_4_52_I   207
#define MMC_EXT_MIN_PERF_R_8_26_4_52(p)   MMC_EXT8(p, MMC_EXT_MIN_PERF_R_8_26_4_52_I)
#define MMC_EXT_MIN_PERF_W_4_26_I   206
#define MMC_EXT_MIN_PERF_W_4_26(p)   MMC_EXT8(p, MMC_EXT_MIN_PERF_W_4_26_I)
#define MMC_EXT_MIN_PERF_R_4_26_I   205
#define MMC_EXT_MIN_PERF_R_4_26(p)   MMC_EXT8(p, MMC_EXT_MIN_PERF_R_4_26_I)
#define MMC_EXT_PWR_CL_26_360_I   203
#define MMC_EXT_PWR_CL_26_360(p)   MMC_EXT8(p, MMC_EXT_PWR_CL_26_360_I)
#define MMC_EXT_PWR_CL_52_360_I   202
#define MMC_EXT_PWR_CL_52_360(p)   MMC_EXT8(p, MMC_EXT_PWR_CL_52_360_I)
#define MMC_EXT_PWR_CL_26_195_I   201
#define MMC_EXT_PWR_CL_26_195(p)   MMC_EXT8(p, MMC_EXT_PWR_CL_26_195_I)
#define MMC_EXT_PWR_CL_52_195_I   200
#define MMC_EXT_PWR_CL_52_195(p)   MMC_EXT8(p, MMC_EXT_PWR_CL_52_195_I)
#define MMC_EXT_CARD_TYPE_I   196
#define MMC_EXT_CARD_TYPE(p)   MMC_EXT8(p, MMC_EXT_CARD_TYPE_I)
#define MMC_EXT_CSD_STRUCTURE_I   194
#define MMC_EXT_CSD_STRUCTURE(p)   MMC_EXT8(p, MMC_EXT_CSD_STRUCTURE_I)
#define MMC_EXT_EXT_CSD_REV_I   192
#define MMC_EXT_EXT_CSD_REV(p)   MMC_EXT8(p, MMC_EXT_EXT_CSD_REV_I)
#define MMC_EXT_CMD_SET_I   191
#define MMC_EXT_CMD_SET(p)   MMC_EXT8(p, MMC_EXT_CMD_SET_I)
#define MMC_EXT_CMD_SET_REV_I   189
#define MMC_EXT_CMD_SET_REV(p)   MMC_EXT8(p, MMC_EXT_CMD_SET_REV_I)
#define MMC_EXT_POWER_CLASS_I   187
#define MMC_EXT_POWER_CLASS(p)   MMC_EXT8(p, MMC_EXT_POWER_CLASS_I)
#define MMC_EXT_HS_TIMING_I   185
#define MMC_EXT_HS_TIMING(p)   MMC_EXT8(p, MMC_EXT_HS_TIMING_I)
#define MMC_EXT_HS_TIMING_EN   1
#define MMC_EXT_HS_TIMING_DIS   0
#define MMC_EXT_BUS_WIDTH_I   183
#define MMC_EXT_BUS_WIDTH(p)   MMC_EXT8(p, MMC_EXT_BUS_WIDTH_I)
#define MMC_EXT_BUS_WIDTH_1BIT   0
#define MMC_EXT_BUS_WIDTH_4BITS   1
#define MMC_EXT_BUS_WIDTH_8BUTS   2
#define MMC_EXT_ERASED_MEM_CONT_I   181
#define MMC_EXT_ERASED_MEM_CONT(p)   MMC_EXT8(p, MMC_EXT_ERASED_MEM_CONT_I)
#define MMC_EXT_BOOT_CONFIG_I   179
#define MMC_EXT_BOOT_CONFIG(p)   MMC_EXT8(p, MMC_EXT_BOOT_CONFIG_I)
#define MMC_EXT_BOOT_BUS_WIDTH_I   177
#define MMC_EXT_BOOT_BUS_WIDTH(p)   MMC_EXT8(p, MMC_EXT_BOOT_BUS_WIDTH_I)
#define MMC_EXT_ERASE_GROUP_DEF_I   175
#define MMC_EXT_ERASE_GROUP_DEF(p)   MMC_EXT8(p, MMC_EXT_ERASE_GROUP_DEF_I)
#define SD_CMD8_VHS   (0xFul << 8)
#define SD_CMD8_VHS_27_36   (0x1ul << 8)
#define SD_CMD8_VHS_LOW_VOL   (0x2ul << 8)
#define SD_CMD8_CHECK_PATTERN   (0xAA << 0)

Functions

uint8_t SD_Init (sSdCard *pSd)
void SD_DeInit (sSdCard *pSd)
uint8_t SD_SetupBusMode (sSdCard *pSd, uint8_t bMode)
uint8_t SD_SetupHSMode (sSdCard *pSd, uint8_t bMode)
uint8_t SD_GetCardType (sSdCard *pSd)
uint32_t SD_GetNumberBlocks (sSdCard *pSd)
uint32_t SD_GetBlockSize (sSdCard *pSd)
uint32_t SD_GetTotalSizeKB (sSdCard *pSd)
uint8_t SD_ReadBlocks (sSdCard *pSd, uint32_t dwAddr, void *pData, uint32_t dwNbBlocks)
uint8_t SD_WriteBlocks (sSdCard *pSd, uint32_t dwAddr, const void *pData, uint32_t dwNbBlocks)
uint8_t SD_Read (sSdCard *pSd, uint32_t dwAddr, void *pData, uint32_t dwNbBlocks, fSdmmcCallback fCallback, void *pArg)
uint8_t SD_Write (sSdCard *pSd, uint32_t dwAddr, const void *pData, uint32_t dwNbBlocks, fSdmmcCallback fCallback, void *pArg)
uint8_t SDIO_ReadDirect (sSdCard *pSd, uint8_t bFunctionNum, uint32_t dwAddress, uint8_t *pData, uint32_t dwSize)
uint8_t SDIO_WriteDirect (sSdCard *pSd, uint8_t bFunctionNum, uint32_t dwAddress, uint8_t bDataByte)
uint8_t SDIO_ReadBytes (sSdCard *pSd, uint8_t bFunctionNum, uint32_t dwAddress, uint8_t bIsFixedAddress, uint8_t *pData, uint16_t wSize, fSdmmcCallback fCallback, void *pArg)
uint8_t SDIO_WriteBytes (sSdCard *pSd, uint8_t bFunctionNum, uint32_t dwAddress, uint8_t bIsFixedAddress, uint8_t *pData, uint16_t wSize, fSdmmcCallback fCallback, void *pArg)
void _DumpREG (void *pREG, uint32_t dwSize)
 Dump register.
void SDIO_DumpCardInformation (sSdCard *pSd)
void SD_DumpCID (void *pCID)
void SD_DumpCSD (void *pCSD)
void SD_DumpExtCSD (void *pExtCSD)
void SD_DumpSCR (void *pSCR)
void SD_DumpSdStatus (void *pSdST)

Detailed Description

Definition in file sdmmc.h.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines