/* * $Id: sdmmc_bus.c,v 1.1 2007/12/25 14:08:10 nbrk Exp $ */ #include #include uint8_t sdmmc_init(void *dd) { struct sdmmc_bus_handle *ddp = (struct sdmmc_bus_handle *)dd; ddp->sb_init(ddp->sb_dd); } uint8_t sdmmc_send_command(void *dd, uint8_t cmd, uint32_t arg, uint8_t crc) { struct sdmmc_bus_handle *ddp = (struct sdmmc_bus_handle *)dd; ddp->sb_send_command(ddp->sb_dd, cmd, arg, crc); } uint8_t sdmmc_set_block_size(void *dd, uint16_t size) { struct sdmmc_bus_handle *ddp = (struct sdmmc_bus_handle *)dd; ddp->sb_set_block_size(ddp->sb_dd, size); } uint8_t sdmmc_read_block(void *dd, uint32_t addr, void *buff) { struct sdmmc_bus_handle *ddp = (struct sdmmc_bus_handle *)dd; ddp->sb_read_block(ddp->sb_dd, addr, buff); } uint8_t sdmmc_write_block(void *dd, uint32_t addr, void *data) { struct sdmmc_bus_handle *ddp = (struct sdmmc_bus_handle *)dd; ddp->sb_write_block(ddp->sb_dd, addr, data); } struct sdmmc_cmdframe sdmmc_command(uint8_t cmd, uint32_t arg, uint8_t crc) { /* * Construct command frame and return it. */ struct sdmmc_cmdframe cmdframe; cmdframe.sc_cmd = CMDFRAME_CMD(cmd); cmdframe.sc_arg = arg; cmdframe.sc_crc = cmd != 0 ? CMDFRAME_CRC(crc) : crc; return(cmdframe); }