summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/ata_sd_as3525.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525/ata_sd_as3525.c')
-rw-r--r--firmware/target/arm/as3525/ata_sd_as3525.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/firmware/target/arm/as3525/ata_sd_as3525.c b/firmware/target/arm/as3525/ata_sd_as3525.c
index 6270f4363b..43c1a37670 100644
--- a/firmware/target/arm/as3525/ata_sd_as3525.c
+++ b/firmware/target/arm/as3525/ata_sd_as3525.c
@@ -312,9 +312,6 @@ static int sd_init_card(const int drive)
/* End of Card Identification Mode ************************************/
- /* Boost MCICLK to operating speed */ /*FIXME: v1 at 31 MHz still too high*/
- MCI_CLOCK(drive) = (sd_v2 ? MCI_HALFSPEED : MCI_HALFSPEED);
-
#ifdef HAVE_MULTIDRIVE /* The internal SDs are v1 */
/* Try to switch V2 cards to HS timings, non HS seem to ignore this */
@@ -323,6 +320,7 @@ static int sd_init_card(const int drive)
/* CMD7 w/rca: Select card to put it in TRAN state */
if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_ARG, NULL))
return -5;
+ mci_delay();
if(sd_wait_for_state(drive, SD_TRAN))
return -6;
@@ -338,6 +336,9 @@ static int sd_init_card(const int drive)
}
#endif /* HAVE_MULTIDRIVE */
+ /* Boost MCICLK to operating speed */ /*FIXME: v1 at 31 MHz still too high*/
+ MCI_CLOCK(drive) = (sd_v2 ? MCI_HALFSPEED : MCI_HALFSPEED);
+
/* CMD9 send CSD */
if(!send_cmd(drive, SD_SEND_CSD, card_info[drive].rca,
MCI_RESP|MCI_LONG_RESP|MCI_ARG, temp_reg))