00001
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #ifndef _SD_MMC_CMD_H_
00047 #define _SD_MMC_CMD_H_
00048
00049
00050 #include "compiler.h"
00051 #include "mci.h"
00052
00053
00054 #define SD_MMC_GO_IDLE_STATE_CMD (0 | MCI_TRCMD_NO | MCI_SPCMD_NONE )
00055 #define SD_MMC_INIT_STATE_CMD (0 | MCI_TRCMD_NO | MCI_SPCMD_INIT )
00056 #define SD_MMC_MMC_GO_IDLE_STATE_CMD (0 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_OPDCMD)
00057 #define SD_MMC_MMC_SEND_OP_COND_CMD (1 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_OPDCMD)
00058 #define SD_MMC_ALL_SEND_CID_CMD (2 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_136 )
00059 #define SD_MMC_MMC_ALL_SEND_CID_CMD (2 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_136| MCI_OPDCMD)
00060 #define SD_MMC_SET_RELATIVE_ADDR_CMD (3 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_MAXLAT )
00061 #define SD_MMC_MMC_SET_RELATIVE_ADDR_CMD (3 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_MAXLAT | MCI_OPDCMD)
00062
00063 #define MCI_SET_DSR_CMD (4 | MCI_TRCMD_NO | SPCMD_NONE | MCI_RSPTYP_NO | MCI_MAXLAT )
00064
00065 #define SD_MMC_SEL_DESEL_CARD_CMD (7 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_48B | MCI_MAXLAT )
00066 #define SD_MMC_SEND_EXT_CSD_CMD (8 | MCI_TRCMD_START | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRDIR | MCI_MAXLAT )
00067 #define SD_MMC_SEND_CSD_CMD (9 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_136 | MCI_MAXLAT )
00068 #define SD_MMC_SEND_CID_CMD (10| MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_136 | MCI_MAXLAT )
00069 #define SD_MMC_MMC_READ_DAT_UNTIL_STOP_CMD (11| MCI_TRTYP_STREAM | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRDIR | MCI_TRCMD_START | MCI_MAXLAT )
00070
00071 #define SD_MMC_STOP_READ_TRANSMISSION_CMD (12| MCI_TRCMD_STOP | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_MAXLAT )
00072 #define SD_MMC_STOP_WRITE_TRANSMISSION_CMD (12| MCI_TRCMD_STOP | MCI_SPCMD_NONE | MCI_RSPTYP_48B | MCI_MAXLAT )
00073
00074 #define SD_MMC_STOP_TRANSMISSION_SYNC_CMD (12| MCI_TRCMD_STOP | MCI_SPCMD_SYNC | MCI_RSPTYP_48 | MCI_MAXLAT )
00075 #define SD_MMC_SEND_STATUS_CMD (13| MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_MAXLAT )
00076 #define SD_MMC_GO_INACTIVE_STATE_CMD (15| MCI_RSPTYP_NO )
00077
00078
00079
00080
00081
00082 #define SD_MMC_SET_BLOCKLEN_CMD (16 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_MAXLAT )
00083 #define SD_MMC_READ_SINGLE_BLOCK_CMD (17 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_START | MCI_TRTYP_BLOCK | MCI_TRDIR | MCI_MAXLAT)
00084 #define SD_MMC_READ_MULTIPLE_BLOCK_CMD (18 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_START | MCI_TRTYP_MULTIPLE | MCI_TRDIR | MCI_MAXLAT)
00085
00086
00087
00088
00089
00090 #define SD_MMC_MMC_WRITE_DAT_UNTIL_STOP_CMD (20 | MCI_TRTYP_STREAM | MCI_SPCMD_NONE | MCI_RSPTYP_48 & ~(MCI_TRDIR) | MCI_TRCMD_START | MCI_MAXLAT ) // MMC
00091
00092
00093
00094
00095
00096 #define SD_MMC_WRITE_BLOCK_CMD (24 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_START | (MCI_TRTYP_BLOCK & ~(MCI_TRDIR)) | MCI_MAXLAT)
00097 #define SD_MMC_WRITE_MULTIPLE_BLOCK_CMD (25 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_START | (MCI_TRTYP_MULTIPLE & ~(MCI_TRDIR)) | MCI_MAXLAT)
00098 #define SD_MMC_PROGRAM_CSD_CMD (27 | MCI_RSPTYP_48 )
00099
00100
00101
00102
00103
00104
00105 #define SD_MMC_SET_WRITE_PROT_CMD (28 | MCI_RSPTYP_48)
00106 #define SD_MMC_CLR_WRITE_PROT_CMD (29 | MCI_RSPTYP_48)
00107 #define SD_MMC_SEND_WRITE_PROT_CMD (30 | MCI_RSPTYP_48)
00108
00109
00110
00111
00112
00113
00114 #define SD_MMC_TAG_SECTOR_START_CMD (32 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00115 #define SD_MMC_TAG_SECTOR_END_CMD (33 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00116 #define SD_MMC_MMC_UNTAG_SECTOR_CMD (34 | MCI_RSPTYP_48 )
00117 #define SD_MMC_MMC_TAG_ERASE_GROUP_START_CMD (35 | MCI_RSPTYP_48 )
00118 #define SD_MMC_MMC_TAG_ERASE_GROUP_END_CMD (36 | MCI_RSPTYP_48 )
00119 #define SD_MMC_MMC_UNTAG_ERASE_GROUP_CMD (37 | MCI_RSPTYP_48 )
00120 #define SD_MMC_ERASE_CMD (38 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT )
00121
00122
00123
00124
00125
00126 #define SD_MMC_LOCK_UNLOCK (42 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT) // no tested
00127
00128
00129
00130
00131 #define SD_MMC_SD_SEND_IF_COND_CMD (8 | MCI_TRCMD_NO | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_MAXLAT )
00132
00133 #define SD_MMC_APP_CMD (55 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00134 #define SD_MMC_GEN_CMD (56 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT) // no tested
00135 #define MMC_SWITCH_CMD (6 | MCI_SPCMD_NONE | MCI_RSPTYP_48B | MCI_TRCMD_NO | MCI_MAXLAT)
00136 #define SD_SWITCH_FUNC (6 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_START | MCI_TRTYP_BLOCK | MCI_TRDIR | MCI_MAXLAT)
00137 #define SD_MMC_SDCARD_SET_BUS_WIDTH_CMD (6 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00138 #define SD_MMC_SDCARD_STATUS_CMD (13 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00139 #define SD_MMC_SDCARD_SEND_NUM_WR_BLOCKS_CMD (22 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00140 #define SD_MMC_SDCARD_SET_WR_BLK_ERASE_COUNT_CMD (23 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00141 #define SD_MMC_SDCARD_APP_OP_COND_CMD (41 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO )
00142 #define SD_MMC_SDCARD_SET_CLR_CARD_DETECT_CMD (42 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00143 #define SD_MMC_SDCARD_SEND_SCR_CMD (51 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00144
00145 #define SD_MMC_SDCARD_APP_ALL_CMD ( MCI_SDCARD_SET_BUS_WIDTH_CMD +\
00146 MCI_SDCARD_STATUS_CMD +\
00147 MCI_SDCARD_SEND_NUM_WR_BLOCKS_CMD +\
00148 MCI_SDCARD_SET_WR_BLK_ERASE_COUNT_CMD +\
00149 MCI_SDCARD_APP_OP_COND_CMD +\
00150 MCI_SDCARD_SET_CLR_CARD_DETECT_CMD +\
00151 MCI_SDCARD_SEND_SCR_CMD)
00152
00153
00154
00155
00156
00157 #define SD_MMC_FAST_IO_CMD (39 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_MAXLAT)
00158 #define SD_MMC_GO_IRQ_STATE_CMD (40 | MCI_SPCMD_NONE | MCI_RSPTYP_48 | MCI_TRCMD_NO | MCI_MAXLAT)
00159
00160 #endif // _SD_MMC_CMD_H_