[PATCH] mmc: Change the frequency to MMC_HS_52 when selecting hs400

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 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 7b068c71ff..a2ed99aefe 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -962,8 +962,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
@@ -2043,7 +2043,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)

Do you have any comments for this patch?
Thanks Venkatesh
-----Original Message----- From: Venkatesh Yadav Abbarapu venkatesh.abbarapu@amd.com Sent: Tuesday, April 23, 2024 11:01 AM To: u-boot@lists.denx.de Cc: peng.fan@nxp.com; jh80.chung@samsung.com; git (AMD-Xilinx) git@amd.com Subject: [PATCH] mmc: Change the frequency to MMC_HS_52 when selecting hs400
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 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 7b068c71ff..a2ed99aefe 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -962,8 +962,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
@@ -2043,7 +2043,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)
-- 2.17.1

On Tue, 23 Apr 2024 11:00:57 +0530, Venkatesh Yadav Abbarapu wrote:
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
[...]
Applied to u-boot/next, thanks!
participants (3)
-
Abbarapu, Venkatesh
-
Tom Rini
-
Venkatesh Yadav Abbarapu