summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/as3525/sd-as3525v2.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/firmware/target/arm/as3525/sd-as3525v2.c b/firmware/target/arm/as3525/sd-as3525v2.c
index a4b6285c55..7eeac21f5e 100644
--- a/firmware/target/arm/as3525/sd-as3525v2.c
+++ b/firmware/target/arm/as3525/sd-as3525v2.c
@@ -541,23 +541,26 @@ static int sd_init_card(const int drive)
541#endif 541#endif
542 /* End of Card Identification Mode ************************************/ 542 /* End of Card Identification Mode ************************************/
543 543
544 /* Attempt to switch cards to HS timings, non HS cards just ignore this */ 544 if (sd_v2)
545 /* CMD7 w/rca: Select card to put it in TRAN state */ 545 {
546 if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_NO_RESP, NULL)) 546 /* Attempt to switch cards to HS timings, non HS cards just ignore this */
547 return -7; 547 /* CMD7 w/rca: Select card to put it in TRAN state */
548 548 if(!send_cmd(drive, SD_SELECT_CARD, card_info[drive].rca, MCI_NO_RESP, NULL))
549 if(sd_wait_for_tran_state(drive)) 549 return -7;
550 return -8; 550
551 551 if(sd_wait_for_tran_state(drive))
552 /* CMD6 */ 552 return -8;
553 if(!send_cmd(drive, SD_SWITCH_FUNC, 0x80fffff1, MCI_NO_RESP, NULL)) 553
554 return -9; 554 /* CMD6 */
555 mci_delay(); 555 if(!send_cmd(drive, SD_SWITCH_FUNC, 0x80fffff1, MCI_NO_RESP, NULL))
556 556 return -9;
557 /* We need to go back to STBY state now so we can read csd */ 557 mci_delay();
558 /* CMD7 w/rca=0: Deselect card to put it in STBY state */ 558
559 if(!send_cmd(drive, SD_DESELECT_CARD, 0, MCI_NO_RESP, NULL)) 559 /* We need to go back to STBY state now so we can read csd */
560 return -10; 560 /* CMD7 w/rca=0: Deselect card to put it in STBY state */
561 if(!send_cmd(drive, SD_DESELECT_CARD, 0, MCI_NO_RESP, NULL))
562 return -10;
563 }
561 564
562 /* CMD9 send CSD */ 565 /* CMD9 send CSD */
563 if(!send_cmd(drive, SD_SEND_CSD, card_info[drive].rca, 566 if(!send_cmd(drive, SD_SEND_CSD, card_info[drive].rca,