From 1b4b338ed1b2beb1d8ee8614df42abfa6646d90c Mon Sep 17 00:00:00 2001 From: zhuzhuzhu <945386260@qq.com> Date: Wed, 12 Jun 2024 18:14:48 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91=E4=BF=AE?= =?UTF-8?q?=E5=A4=8DART-PI=20samrt=E4=B8=8A=E8=AF=BB=E5=8F=96=E4=B8=8D?= =?UTF-8?q?=E5=88=B0emmc/sd=E5=88=86=E5=8C=BA=E9=97=AE=E9=A2=98=20(#9051)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 222c1fd95f..d2e18b2631 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;