summaryrefslogtreecommitdiff
path: root/drivers/mmc/mtk-sd.c
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2021-03-15 18:31:11 +0300
committerTom Rini <trini@konsulko.com>2021-03-17 19:27:58 +0300
commit30e76b755b2a52e74bf916716a83deaf775664bb (patch)
treec13abc44122e46a238f2ddb55387a01918bed31c /drivers/mmc/mtk-sd.c
parenteed127dbd4082ba21fd420449e68d1ad177cdc4b (diff)
downloadu-boot-30e76b755b2a52e74bf916716a83deaf775664bb.tar.xz
mmc: mtk-sd: don't ignore max-frequency from device tree
commit e58e68d9 ("mmc: mtk-sd: assign plat->cfg.f_max with a correct value") wrongly assumed that plat->cfg.f_max is always unset at the time mscd_drv_probe() is run. This is not true in case max-frequency being defined in device tree, as it is then already set by mmc_of_parse() in msdc_of_to_plat(). Only set plat->cfg.f_max to the default maximum value in case it is not already set to a sane value. Fixes: e58e68d93e ("mmc: mtk-sd: assign plat->cfg.f_max with a correct value") Cc: Stefan Roese <sr@denx.de> Cc: Weijie Gao <weijie.gao@mediatek.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'drivers/mmc/mtk-sd.c')
-rw-r--r--drivers/mmc/mtk-sd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/mtk-sd.c b/drivers/mmc/mtk-sd.c
index 3b9c12266a..48a764be82 100644
--- a/drivers/mmc/mtk-sd.c
+++ b/drivers/mmc/mtk-sd.c
@@ -1639,7 +1639,8 @@ static int msdc_drv_probe(struct udevice *dev)
else
cfg->f_min = host->src_clk_freq / (4 * 4095);
- cfg->f_max = host->src_clk_freq;
+ if (cfg->f_max < cfg->f_min || cfg->f_max > host->src_clk_freq)
+ cfg->f_max = host->src_clk_freq;
cfg->b_max = 1024;
cfg->voltages = MMC_VDD_32_33 | MMC_VDD_33_34;