=================================================================== RCS file: /cvs/funnyos/dev/sdmmc/sdmmcvar.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- funnyos/dev/sdmmc/sdmmcvar.h 2007/12/21 17:45:26 1.3 +++ funnyos/dev/sdmmc/sdmmcvar.h 2007/12/25 14:08:10 1.4 @@ -1,5 +1,5 @@ /* - * $Id: sdmmcvar.h,v 1.3 2007/12/21 17:45:26 nbrk Exp $ + * $Id: sdmmcvar.h,v 1.4 2007/12/25 14:08:10 nbrk Exp $ */ #ifndef _DEV_SDMMC_SDMMCVAR_H #define _DEV_SDMMC_SDMMCVAR_H @@ -130,20 +130,27 @@ * SD/MMC bus handle. */ struct sdmmc_bus_handle { - void (*sb_send_command)(void *dd, uint8_t cmd, uint32_t arg); - uint8_t (*sb_get_response)(void *dd); - uint8_t (*sb_get_spec_response)(void *dd, uint8_t response); - uint8_t (*sb_read_register)(void *dd, uint8_t reg); - uint8_t (*sb_read_block)(void *dd, uint32_t addr, uint32_t count); + uint8_t (*sb_init)(void *dd); + uint8_t (*sb_send_command)(void *dd, uint8_t cmd, uint32_t arg, uint8_t crc); + uint8_t (*sb_set_block_size)(void *dd, uint16_t size); + uint8_t (*sb_read_block)(void *dd, uint32_t addr, void *buff); uint8_t (*sb_write_block)(void *dd, uint32_t addr, void *data); - uint8_t (*sb_check_busy)(void *dd); - + /* + * XXX implement {read,write}_multiple_block() when we will have DMA. + */ void *sb_dd; }; /* * Functions. */ +uint8_t sdmmc_init(void *dd); +uint8_t sdmmc_send_command(void *dd, uint8_t cmd, uint32_t arg, uint8_t crc); +uint8_t sdmmc_set_block_size(void *dd, uint16_t size); +uint8_t sdmmc_read_block(void *dd, uint32_t addr, void *buff); +uint8_t sdmmc_write_block(void *dd, uint32_t addr, void *data); + + struct sdmmc_cmdframe sdmmc_command(uint8_t cmd, uint32_t arg, uint8_t crc);