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_MCI_MEM_H_
00047 #define _SD_MMC_MCI_MEM_H_
00048
00049
00050 #include "conf_access.h"
00051
00052 #if SD_MMC_MCI_0_MEM == DISABLE && SD_MMC_MCI_1_MEM == DISABLE
00053 #error sd_mmc_mem_mci.h is #included although SD_MMC_MCI_x_MEM are all disabled
00054 #endif
00055
00056
00057 #include "ctrl_access.h"
00058
00059
00060
00061
00067
00068 #define SD_MMC_REMOVED 0
00069 #define SD_MMC_INSERTED 1
00070 #define SD_MMC_REMOVING 2
00072
00073
00074
00075
00078
00079
00092 extern Ctrl_status sd_mmc_mci_test_unit_ready(U8 slot);
00094 extern Ctrl_status sd_mmc_mci_test_unit_ready_0(void);
00096 extern Ctrl_status sd_mmc_mci_test_unit_ready_1(void);
00097
00105 extern Ctrl_status sd_mmc_mci_read_capacity(U8 slot,U32 *u32_nb_sector);
00107 extern Ctrl_status sd_mmc_mci_read_capacity_0(U32 *u32_nb_sector);
00109 extern Ctrl_status sd_mmc_mci_read_capacity_1(U32 *u32_nb_sector);
00110
00119 extern Bool sd_mmc_mci_wr_protect(U8 slot);
00121 extern Bool sd_mmc_mci_wr_protect_0(void);
00123 extern Bool sd_mmc_wr_mci_protect_1(void);
00124
00130 extern Bool sd_mmc_mci_removal(U8 slot);
00132 extern Bool sd_mmc_mci_removal_0(void);
00134 extern Bool sd_mmc_mci_removal_1(void);
00135
00137
00138
00139 #if ACCESS_USB == ENABLED
00140
00143
00144
00153 extern Ctrl_status sd_mmc_mci_usb_read_10(U8 slot,U32 addr, U16 nb_sector);
00155 extern Ctrl_status sd_mmc_mci_usb_read_10_0(U32 addr, U16 nb_sector);
00157 extern Ctrl_status sd_mmc_mci_usb_read_10_1(U32 addr, U16 nb_sector);
00158
00167 extern Ctrl_status sd_mmc_mci_usb_write_10(U8 slot,U32 addr, U16 nb_sector);
00169 extern Ctrl_status sd_mmc_mci_usb_write_10_0(U32 addr, U16 nb_sector);
00171 extern Ctrl_status sd_mmc_mci_usb_write_10_1(U32 addr, U16 nb_sector);
00172
00174
00175 #endif
00176
00177
00178 #if ACCESS_MEM_TO_RAM == ENABLED
00179
00182
00183
00192 extern Ctrl_status sd_mmc_mci_mem_2_ram(U8 slot, U32 addr, void *ram);
00193 extern Ctrl_status sd_mmc_mci_dma_mem_2_ram(U8 slot, U32 addr, void *ram);
00195 extern Ctrl_status sd_mmc_mci_mem_2_ram_0(U32 addr, void *ram);
00197 extern Ctrl_status sd_mmc_mci_mem_2_ram_1(U32 addr, void *ram);
00198
00207 extern Ctrl_status sd_mmc_mci_ram_2_mem(U8 slot, U32 addr, const void *ram);
00208 extern Ctrl_status sd_mmc_mci_dma_ram_2_mem(U8 slot, U32 addr, const void *ram);
00210 extern Ctrl_status sd_mmc_mci_ram_2_mem_0(U32 addr, const void *ram);
00212 extern Ctrl_status sd_mmc_mci_ram_2_mem_1(U32 addr, const void *ram);
00213
00223 extern Ctrl_status sd_mmc_mci_multiple_mem_2_ram(U8 slot,U32 addr, void *ram, U32 nb_sectors);
00224 extern Ctrl_status sd_mmc_mci_dma_multiple_mem_2_ram(U8 slot,U32 addr, void *ram, U32 nb_sectors);
00226 extern Ctrl_status sd_mmc_mci_multiple_mem_2_ram_0(U32 addr, void *ram, U32 nb_sectors);
00228 extern Ctrl_status sd_mmc_mci_multiple_mem_2_ram_1(U32 addr, void *ram, U32 nb_sectors);
00229
00239 extern Ctrl_status sd_mmc_mci_multiple_ram_2_mem(U8 slot, U32 addr, const void *ram, U32 nb_sectors);
00240 extern Ctrl_status sd_mmc_mci_dma_multiple_ram_2_mem(U8 slot, U32 addr, const void *ram, U32 nb_sectors);
00242 extern Ctrl_status sd_mmc_mci_multiple_ram_2_mem_0(U32 addr, const void *ram, U32 nb_sectors);
00244 extern Ctrl_status sd_mmc_mci_multiple_ram_2_mem_1(U32 addr, const void *ram, U32 nb_sectors);
00245
00247
00248 #endif
00249
00250
00251
00252 #endif // _SD_MMC_MCI_MEM_H_