Header file for basic multimedia card driver. More...
Go to the source code of this file.
Data Structures | |
| struct | _MEMCARDSUPP |
| Memory card support structure. More... | |
| struct | _MMCIFC |
| Low level access information structure. More... | |
| struct | _MMC_CID |
| Multimedia card identification register. More... | |
| struct | _MMC_CSD |
| Multimedia card identification register. More... | |
Defines | |
| #define | NUTMC_SF_CD 0x01 |
| #define | NUTMC_SF_WP 0x02 |
| #define | NUTMC_IND_OFF 0 |
| #define | NUTMC_IND_READ 1 |
| #define | NUTMC_IND_WRITE 2 |
| #define | NUTMC_IND_ERROR 4 |
| #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_EXTCSD 8 |
| Query card's extended CSD. | |
| #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_SEND_APP_OP_COND 41 |
| Activate SD card's initialization process. | |
| #define | MMCMD_LOCK_UNLOCK 42 |
| Set/clear password or lock/unlock the card. | |
| #define | MMCMD_SEND_APP_CMD 55 |
| Application command follows. | |
| #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 struct _MEMCARDSUPP | MEMCARDSUPP |
| Memory card support structure. | |
| typedef struct _MMCIFC | MMCIFC |
| Low level access information structure. | |
| typedef struct _MMC_CID | MMC_CID |
| Multimedia card identification register. | |
| typedef struct _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. | |
| int | SpiMmcInit (NUTDEVICE *dev) |
| Initialize MMC driver. | |
| int | SpiMmcIOCtl (NUTDEVICE *dev, int req, void *conf) |
| Perform MMC control functions. | |
| int | SpiMmcBlockRead (NUTFILE *nfp, void *buffer, int num) |
| Read data blocks from a mounted partition. | |
| int | SpiMmcBlockWrite (NUTFILE *nfp, const void *buffer, int num) |
| Write data blocks to a mounted partition. | |
| int | SpiMmcBlockWrite_P (NUTFILE *nfp, PGM_P buffer, int len) |
| Write data blocks from program space to a mounted partition. | |
| NUTFILE * | SpiMmcMount (NUTDEVICE *dev, const char *name, int mode, int acc) |
| Mount a partition. | |
| int | SpiMmcUnmount (NUTFILE *nfp) |
| Unmount a previously mounted partition. | |
Voltage Ranges | |
| #define | MMCARD_165_195V 0x00000080 |
| #define | MMCARD_20_21V 0x00000100 |
| #define | MMCARD_21_22V 0x00000200 |
| #define | MMCARD_22_23V 0x00000400 |
| #define | MMCARD_23_24V 0x00000800 |
| #define | MMCARD_24_25V 0x00001000 |
| #define | MMCARD_25_26V 0x00002000 |
| #define | MMCARD_26_27V 0x00004000 |
| #define | MMCARD_27_28V 0x00008000 |
| #define | MMCARD_28_29V 0x00010000 |
| #define | MMCARD_29_30V 0x00020000 |
| #define | MMCARD_30_31V 0x00040000 |
| #define | MMCARD_31_32V 0x00080000 |
| #define | MMCARD_32_33V 0x00100000 |
| #define | MMCARD_33_34V 0x00200000 |
| #define | MMCARD_34_35V 0x00400000 |
| #define | MMCARD_35_36V 0x00800000 |
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. | |
| #define | MMCARD_GETEXTCSD 0x2005 |
| Retrieve extended card specific data. | |
Header file for basic multimedia card driver.
* * $Log$ * Revision 1.5 2008/10/03 11:28:58 haraldkipp * Corrected and modified initialization of MultiMedia and SD Cards. * * Revision 1.4 2008/08/11 06:59:59 haraldkipp * BSD types replaced by stdint types (feature request #1282721). * * 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. * * *