diff options
Diffstat (limited to 'firmware/target/arm/as3525/ata_sd_as3525.c')
-rw-r--r-- | firmware/target/arm/as3525/ata_sd_as3525.c | 7 |
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)) |