* * $Log: mmcard.h,v $ * Revision 1.3 2006/10/08 16:48:09 haraldkipp * Documentation fixed * * Revision 1.2 2006/09/05 12:34:55 haraldkipp * Added commands for native MMC interface. * * Revision 1.1 2006/01/05 16:32:10 haraldkipp * First check-in. * * *
Control Codes | |
#define | MMCARD_GETSTATUS 0x2001 |
Retrieve card status. | |
#define | MMCARD_GETOCR 0x2002 |
Retrieve operation condition register. | |
#define | MMCARD_GETCID 0x2003 |
Retrieve card identification. | |
#define | MMCARD_GETCSD 0x2004 |
Retrieve card specific data. | |
Defines | |
#define | MMCMD_HOST 0x40 |
#define | MMCMD_RESET_CRC 0x95 |
#define | MMCMD_GO_IDLE_STATE 0 |
Reset card to idle state. | |
#define | MMCMD_SEND_OP_COND 1 |
Activate card's initialization process. | |
#define | MMCMD_ALL_SEND_CID 2 |
Send operation condition register. | |
#define | MMCMD_SEND_RELATIVE_ADDR 3 |
Assign relative card address. | |
#define | MMCMD_SELECT_CARD 7 |
Assign relative card address. | |
#define | MMCMD_SEND_CSD 9 |
Query card's CSD. | |
#define | MMCMD_SEND_CID 10 |
Query card's CID. | |
#define | MMCMD_STOP_TRANSMISSION 12 |
Stop multiple block transmission. | |
#define | MMCMD_SEND_STATUS 13 |
Query card's status register. | |
#define | MMCMD_SET_BLOCKLEN 16 |
Select block length for following read/write commands. | |
#define | MMCMD_READ_SINGLE_BLOCK 17 |
Initiate single block read. | |
#define | MMCMD_READ_MULTIPLE_BLOCK 18 |
Initiate continuous block read. | |
#define | MMCMD_WRITE_BLOCK 24 |
Initiate single block write. | |
#define | MMCMD_WRITE_MULTIPLE_BLOCK 25 |
Initiate continuous block write. | |
#define | MMCMD_PROGRAM_CSD 27 |
Initiate programming of programmable CSD bits. | |
#define | MMCMD_SET_WRITE_PROTECT 28 |
Enable card's optional write protection. | |
#define | MMCMD_CLR_WRITE_PROTECT 29 |
Disable card's write protection. | |
#define | MMCMD_SEND_WRITE_PROTECT 30 |
Query card's write protect status. | |
#define | MMCMD_TAG_ERASE_GROUP_START 35 |
Set address of the first erase group. | |
#define | MMCMD_TAG_ERASE_GROUP_END 36 |
Set address of the last erase group. | |
#define | MMCMD_ERASE 38 |
Erase previously selected sectors. | |
#define | MMCMD_LOCK_UNLOCK 42 |
Set/clear password or lock/unlock the card. | |
#define | MMCMD_READ_OCR 58 |
Query card's operating condition register. | |
#define | MMCMD_CRC_ON_OFF 59 |
Enable or disable CRC mode. | |
#define | MMR1_IDLE_STATE 0x00 |
Card is idle. | |
#define | MMR1_NOT_IDLE 0x01 |
Card is busy. | |
#define | MMR1_ERASE_RESET 0x02 |
Erase sequence was cleared before execution. | |
#define | MMR1_ILLEGAL_COMMAND 0x04 |
Illegal command code detected. | |
#define | MMR1_COM_CRC_ERROR 0x08 |
Bad command CRC detected. | |
#define | MMR1_ERASE_SEQ_ERROR 0x10 |
Bad erase sequence. | |
#define | MMR1_ADDRESS_ERROR 0x20 |
Misaligned address did not match block length. | |
#define | MMR1_PARAMETER_ERROR 0x40 |
Command parameter is out of range. | |
#define | MMR2_CARD_LOCKED 0x01 |
Card is locked. | |
#define | MMR2_WP_ERASE_SKIP 0x02 |
Erasing write protected sector or password error. | |
#define | MMR2_ERROR 0x04 |
General or unknown error occured. | |
#define | MMR2_CC_ERROR 0x08 |
Internal card controller error. | |
#define | MMR2_ECC_FAILED 0x10 |
Bad internal ECC. | |
#define | MMR2_WP_VIOLATION 0x20 |
Failed to write to protected block. | |
#define | MMR2_ERASE_PARAMETER 0x40 |
Invalid erase parameter. | |
#define | MMR2_OUT_OF_RANGE 0x80 |
Command parameter is out of range. | |
#define | MMCSR_OUT_OF_RANGE 0x80000000 |
#define | MMCSR_ADDRESS_ERROR 0x40000000 |
#define | MMCSR_BLOCK_LEN_ERROR 0x20000000 |
#define | MMCSR_ERASE_SEQ_ERROR 0x10000000 |
#define | MMCSR_ERASE_PARAM 0x08000000 |
#define | MMCSR_WP_VIOLATION 0x04000000 |
#define | MMCSR_COM_CRC_ERROR 0x00800000 |
#define | MMCSR_ILLEGAL_COMMAND 0x00400000 |
#define | MMCSR_ERROR 0x00080000 |
#define | MMCSR_CIDCSD_OVERWRITE 0x00010000 |
#define | MMCSR_WP_ERASE_SKIP 0x00008000 |
#define | MMCSR_CARD_ECC_DISABLED 0x00004000 |
#define | MMCSR_ERASE_RESET 0x00002000 |
#define | MMCSR_STATE_MASK 0x00001E00 |
#define | MMCSR_READY_FOR_DATA 0x00000100 |
#define | MMCSR_IS_IDLE 0x00000000 |
#define | MMCSR_IS_READY 0x00000200 |
#define | MMCSR_IS_IDENT 0x00000400 |
#define | MMCSR_IS_STBY 0x00000600 |
#define | MMCSR_IS_TRAN 0x00000800 |
#define | MMCSR_IS_DATA 0x00000A00 |
#define | MMCSR_IS_RCV 0x00000C00 |
#define | MMCSR_IS_PRG 0x00000E00 |
#define | MMCSR_IS_DIS 0x00001000 |
#define | MMDR_ACCEPTED |
#define | MMDR_CRC_ERROR |
#define | MMDR_WRITE_ERROR |
#define | MMCERR_TIMEOUT 0x00000001 |
#define | MMCOP_NBUSY 0x80000000 |
#define | MMCARD_CIDR_SIZE 16 |
Number of bytes in the CID register. | |
#define | MMCARD_CSDR_SIZE 16 |
Number of bytes in the CSD register. | |
#define | MMCARD_OCR_SIZE 32 |
Number of bytes in the operating condition register. | |
Typedefs | |
typedef _MMCIFC | MMCIFC |
Low level access information structure. | |
typedef _MMC_CID | MMC_CID |
Multimedia card identification register. | |
typedef _MMC_CSD | MMC_CSD |
Multimedia card identification register. | |
Functions | |
int | MmCardDevInit (NUTDEVICE *dev) |
Initialize high level MMC driver. | |
int | MmCardIOCtl (NUTDEVICE *dev, int req, void *conf) |
Perform MMC control functions. | |
int | MmCardBlockRead (NUTFILE *nfp, void *buffer, int len) |
Read data blocks from a mounted partition. | |
int | MmCardBlockWrite (NUTFILE *nfp, CONST void *buffer, int len) |
Write data blocks to a mounted partition. | |
int | MmCardBlockWrite_P (NUTFILE *nfp, PGM_P buffer, int len) |
Write data blocks from program space to a mounted partition. | |
NUTFILE * | MmCardMount (NUTDEVICE *dev, CONST char *name, int mode, int acc) |
Mount a partition. | |
int | MmCardUnmount (NUTFILE *nfp) |
Unmount a previously mounted partition. |