#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) |
Definition in file sdmmc.h.