|
|
@ -29,6 +29,7 @@ static unsigned char mmc_ext_csd[512] __aligned(16); |
|
|
|
static unsigned int mmc_flags; |
|
|
|
static struct mmc_device_info *mmc_dev_info; |
|
|
|
static unsigned int rca; |
|
|
|
static unsigned int scr[2]__aligned(16) = { 0 }; |
|
|
|
|
|
|
|
static const unsigned char tran_speed_base[16] = { |
|
|
|
0, 10, 12, 13, 15, 20, 26, 30, 35, 40, 45, 52, 55, 60, 70, 80 |
|
|
@ -90,7 +91,8 @@ static int mmc_device_state(void) |
|
|
|
ret = mmc_send_cmd(MMC_CMD(13), rca << RCA_SHIFT_OFFSET, |
|
|
|
MMC_RESPONSE_R1, &resp_data[0]); |
|
|
|
if (ret != 0) { |
|
|
|
return ret; |
|
|
|
retries--; |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
if ((resp_data[0] & STATUS_SWITCH_ERROR) != 0U) { |
|
|
@ -129,7 +131,6 @@ static int mmc_sd_switch(unsigned int bus_width) |
|
|
|
{ |
|
|
|
int ret; |
|
|
|
int retries = MMC_DEFAULT_MAX_RETRIES; |
|
|
|
unsigned int scr[2] = { 0 }; |
|
|
|
unsigned int bus_width_arg = 0; |
|
|
|
|
|
|
|
ret = ops->prepare(0, (uintptr_t)&scr, sizeof(scr)); |
|
|
@ -341,8 +342,9 @@ static int sd_send_op_cond(void) |
|
|
|
} |
|
|
|
|
|
|
|
/* ACMD41: SD_SEND_OP_COND */ |
|
|
|
ret = mmc_send_cmd(MMC_ACMD(41), OCR_HCS, MMC_RESPONSE_R3, |
|
|
|
&resp_data[0]); |
|
|
|
ret = mmc_send_cmd(MMC_ACMD(41), OCR_HCS | |
|
|
|
mmc_dev_info->ocr_voltage, MMC_RESPONSE_R3, |
|
|
|
&resp_data[0]); |
|
|
|
if (ret != 0) { |
|
|
|
return ret; |
|
|
|
} |
|
|
|