]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mmc: Change the frequency to MMC_HS_52 when selecting hs400
authorVenkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tue, 23 Apr 2024 05:30:57 +0000 (11:00 +0530)
committerTom Rini <trini@konsulko.com>
Thu, 5 Sep 2024 22:18:39 +0000 (16:18 -0600)
Per JESD84-B51 P47, host need to change frequency to <=52MHz
after setting HS_TIMING to 0x1, and host need to set the
8-bit DDR buswidth. Currently setting the frequency to 26MHz
and trying to switch 8-bit DDR buswidth resulting timeouts.

mmc dev 1 0
Select HS400 failed -110
switch to partitions #0, OK
mmc1(part 0) is current device

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
drivers/mmc/mmc.c

index 0b881f11b4a98867cdd1abc7da434ffe4f2b1cf3..7e702c3ae854d347a7b5b447761143a52bd54c00 100644 (file)
@@ -997,8 +997,8 @@ static int mmc_set_card_speed(struct mmc *mmc, enum bus_mode mode,
         * Extended CSD. Reconfigure the controller to run at HS mode.
         */
        if (hsdowngrade) {
-               mmc_select_mode(mmc, MMC_HS);
-               mmc_set_clock(mmc, mmc_mode2freq(mmc, MMC_HS), false);
+               mmc_select_mode(mmc, MMC_HS_52);
+               mmc_set_clock(mmc, mmc_mode2freq(mmc, MMC_HS_52), false);
        }
 #endif
 
@@ -2077,7 +2077,7 @@ static int mmc_select_hs400(struct mmc *mmc)
        }
 
        /* Set back to HS */
-       mmc_set_card_speed(mmc, MMC_HS, true);
+       mmc_set_card_speed(mmc, MMC_HS_52, true);
 
        err = mmc_hs400_prepare_ddr(mmc);
        if (err)