29 if ((cmd.
response[0] & 0xff) != 0xaa)
96 cmd.
cmdarg = (mode << 31) | (0xffffff & ~(0xf << (group * 4))) |
97 (
value << (group * 4));
101 data.
dest = (
char *)resp;
106 return ctrlr->
send_cmd(ctrlr, &cmd, &data);
149 data.
dest = (
char *)scr;
153 err = ctrlr->
send_cmd(ctrlr, &cmd, &data);
165 switch ((
media->
scr[0] >> 24) & 0xf) {
229 if ((
ntohl(switch_status[4]) & 0x0f000000) == 0x01000000) {
269 unsigned int partition_number)
272 if (partition_number)
281 unsigned int partition_number)
#define ALLOC_CACHE_ALIGN_BUFFER(type, name, size)
static int sd_switch(struct sd_mmc_ctrlr *ctrlr, int mode, int group, uint8_t value, uint8_t *resp)
int sd_set_bus_width(struct storage_media *media)
const char * sd_partition_name(struct storage_media *media, unsigned int partition_number)
static void sd_recalculate_clock(struct storage_media *media)
int sd_change_freq(struct storage_media *media)
int sd_send_if_cond(struct storage_media *media)
int sd_set_partition(struct storage_media *media, unsigned int partition_number)
int sd_send_op_cond(struct storage_media *media)
void delay(unsigned int secs)
static uint32_t be32toh(uint32_t big_endian_32bits)
#define SET_TIMING(ctrlr, timing_value)
#define SET_BUS_WIDTH(ctrlr, width)
#define SD_MMC_IO_RETRIES
#define sd_mmc_error(format...)
#define SET_CLOCK(ctrlr, clock_hz)
#define SD_CMD_SEND_IF_COND
#define SD_HIGHSPEED_BUSY
#define SD_CMD_APP_SEND_OP_COND
#define CARD_UNUSABLE_ERR
#define SD_CMD_APP_SET_BUS_WIDTH
#define SD_CMD_APP_SEND_SCR
#define SD_HIGHSPEED_SUPPORTED
#define SD_CMD_SWITCH_FUNC
int(* send_cmd)(struct sd_mmc_ctrlr *ctrlr, struct mmc_command *cmd, struct mmc_data *data)