[PATCH 2/2] mmc: am654_sdhci: Disable HS400 for AM62P SR1.0 and SR1.1

Judith Mendez jm at ti.com
Tue Aug 5 01:37:18 CEST 2025


AM62P SR1.0 and SR1.1 do not support HS400 due to errata i2458 [0] so
add functionality to detect these SoC revisions and disable HS400.

[0] https://www.ti.com/lit/er/sprz574a/sprz574a.pdf
Signed-off-by: Judith Mendez <jm at ti.com>
---
 drivers/mmc/am654_sdhci.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/mmc/am654_sdhci.c b/drivers/mmc/am654_sdhci.c
index d3c8f94dd0c..7e4e7e1b90e 100644
--- a/drivers/mmc/am654_sdhci.c
+++ b/drivers/mmc/am654_sdhci.c
@@ -629,6 +629,12 @@ const struct soc_attr am654_sdhci_soc_attr[] = {
 	{/* sentinel */}
 };
 
+static struct soc_attr sdhci_am654_descope_hs400[] = {
+	{ .family = "AM62PX", .revision = "SR1.0" },
+	{ .family = "AM62PX", .revision = "SR1.1" },
+	{ /* sentinel */ }
+};
+
 static int sdhci_am654_get_otap_delay(struct udevice *dev,
 				      struct mmc_config *cfg)
 {
@@ -715,6 +721,12 @@ static int am654_sdhci_probe(struct udevice *dev)
 		host->ops = soc_drv_data->ops;
 	}
 
+	soc = soc_device_match(sdhci_am654_descope_hs400);
+	if (soc) {
+		dev_err(dev, "Disable descoped HS400 mode for this silicon revision\n");
+		plat->cfg.host_caps &= ~(MMC_MODE_HS400 | MMC_MODE_HS400_ES);
+	}
+
 	host->mmc->priv = host;
 	upriv->mmc = host->mmc;
 
-- 
2.49.0



More information about the U-Boot mailing list