From 53f1423788bccdedf3bfe3aa5fb01889790102bd Mon Sep 17 00:00:00 2001 From: zhuzhuzhu <945386260@qq.com> Date: Tue, 11 Jun 2024 10:52:14 +0800 Subject: [PATCH] Update sd.c --- components/drivers/sdio/sd.c | 39 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/components/drivers/sdio/sd.c b/components/drivers/sdio/sd.c index 222c1fd95f1..d2e18b26316 100644 --- a/components/drivers/sdio/sd.c +++ b/components/drivers/sdio/sd.c @@ -755,6 +755,25 @@ static rt_int32_t mmcsd_sd_init_card(struct rt_mmcsd_host *host, goto err1; } + /* + * change SD card to the highest supported speed + */ + err = mmcsd_switch(card); + if (err) + goto err1; + + /* set bus speed */ + max_data_rate = (unsigned int)-1; + if (max_data_rate < card->hs_max_data_rate) + { + max_data_rate = card->hs_max_data_rate; + } + if (max_data_rate < card->max_data_rate) + { + max_data_rate = card->max_data_rate; + } + + mmcsd_set_clock(host, max_data_rate); /*switch bus width*/ if ((host->flags & MMCSD_BUSWIDTH_4) && (card->scr.sd_bus_widths & SD_SCR_BUS_WIDTH_4)) { @@ -780,26 +799,6 @@ static rt_int32_t mmcsd_sd_init_card(struct rt_mmcsd_host *host, card->flags |= CARD_FLAG_SDR50 | CARD_FLAG_SDR104 | CARD_FLAG_DDR50; } - /* - * change SD card to the highest supported speed - */ - err = mmcsd_switch(card); - if (err) - goto err1; - - /* set bus speed */ - max_data_rate = (unsigned int)-1; - if (max_data_rate < card->hs_max_data_rate) - { - max_data_rate = card->hs_max_data_rate; - } - if (max_data_rate < card->max_data_rate) - { - max_data_rate = card->max_data_rate; - } - - mmcsd_set_clock(host, max_data_rate); - host->card = card; return 0;