]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
mmc: mmc-uclass: Use max-frequency from device tree with driver default fallback
authorTanmay Kathpalia <tanmay.kathpalia@altera.com>
Fri, 16 Jan 2026 12:50:31 +0000 (04:50 -0800)
committerPeng Fan <peng.fan@nxp.com>
Thu, 22 Jan 2026 02:38:48 +0000 (10:38 +0800)
Use dev_read_u32_default() instead of dev_read_u32() to read the
"max-frequency" property from device tree. This preserves the driver-set
cfg->f_max value when the optional "max-frequency" property is not
present, ensuring the controller's default frequency is used as fallback
rather than being overwritten.

Suggested-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Tanmay Kathpalia <tanmay.kathpalia@altera.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
drivers/mmc/mmc-uclass.c

index 2f4dc5bd8872305129fcc192ba26bee60e764cd3..698530088fe7471146a0f9db0195bae31fec30fd 100644 (file)
@@ -243,8 +243,12 @@ int mmc_of_parse(struct udevice *dev, struct mmc_config *cfg)
                return -EINVAL;
        }
 
-       /* f_max is obtained from the optional "max-frequency" property */
-       dev_read_u32(dev, "max-frequency", &cfg->f_max);
+       /*
+        * Maximum frequency is obtained from the optional "max-frequency" DT property.
+        * Use dev_read_u32_default() to preserve the driver-set f_max value when
+        * "max-frequency" is not present, ensuring the controller's default is used.
+        */
+       cfg->f_max = dev_read_u32_default(dev, "max-frequency", cfg->f_max);
 
        if (dev_read_bool(dev, "cap-sd-highspeed"))
                cfg->host_caps |= MMC_CAP(SD_HS);