summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanmay Kathpalia <[email protected]>2025-12-03 04:21:32 -0800
committerPeng Fan <[email protected]>2025-12-11 20:53:50 +0800
commitaebb523a23818a8ee4199c9532b51e3d4020696f (patch)
tree28a575b2cd758b6ce2b4137f0bda7f8e5c2b8e2d
parentb033255a5795cc2d88f761c856d6e8e354267582 (diff)
mmc: mmc-uclass: Use max-frequency from device tree with default handling
When the max-frequency property is not specified in the device tree, the function now explicitly defaults to 0 instead of leaving cfg->f_max uninitialized. This allows sdhci_setup_cfg() to properly detect the absence of a device tree specified frequency and fall back to using the host controller's maximum base clock frequency from the capabilities register. Signed-off-by: Tanmay Kathpalia <[email protected]> Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Peng Fan <[email protected]>
-rw-r--r--drivers/mmc/mmc-uclass.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c
index 2f4dc5bd887..bf0bea93853 100644
--- a/drivers/mmc/mmc-uclass.c
+++ b/drivers/mmc/mmc-uclass.c
@@ -243,8 +243,13 @@ 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" property.
+ * If not specified in device tree, defaults to 0 and sdhci_setup_cfg()
+ * will set the MMC configuration maximum frequency to the host controller's
+ * maximum base clock frequency from capabilities register.
+ */
+ cfg->f_max = dev_read_u32_default(dev, "max-frequency", 0);
if (dev_read_bool(dev, "cap-sd-highspeed"))
cfg->host_caps |= MMC_CAP(SD_HS);