[U-Boot] [PATCH] mmc: mv_sdhci: Fix host version read for Armada100

Ajay Bhargav ajay.bhargav at einfochips.com
Tue Nov 1 10:39:51 CET 2011


sdhci_readw does not work for host version read in Armada100 series
SoCs. This patch fix this issue by making a sdhci_readl call to get host
version.

Signed-off-by: Ajay Bhargav <ajay.bhargav at einfochips.com>
---
 drivers/mmc/mv_sdhci.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/mv_sdhci.c b/drivers/mmc/mv_sdhci.c
index f92caeb..c7fd287 100644
--- a/drivers/mmc/mv_sdhci.c
+++ b/drivers/mmc/mv_sdhci.c
@@ -30,6 +30,7 @@ static inline void mv_sdhci_writeb(struct sdhci_host *host, u8 val, int reg)
 #endif /* CONFIG_MMC_SDHCI_IO_ACCESSORS */
 
 static char *MVSDH_NAME = "mv_sdh";
+
 int mv_sdh_init(u32 regbase, u32 max_clk, u32 min_clk, u32 quirks)
 {
 	struct sdhci_host *host = NULL;
@@ -48,7 +49,12 @@ int mv_sdh_init(u32 regbase, u32 max_clk, u32 min_clk, u32 quirks)
 		mv_ops.write_b = mv_sdhci_writeb;
 	host->ops = &mv_ops;
 #endif
+#ifdef CONFIG_ARMADA100
+	/* SDHCI host version read workaround for Armada100 series */
+	host->version = sdhci_readl(host, SDHCI_HOST_VERSION - 2) >> 16;
+#else
 	host->version = sdhci_readw(host, SDHCI_HOST_VERSION);
+#endif
 	add_sdhci(host, max_clk, min_clk);
 	return 0;
 }
-- 
1.7.0.4



More information about the U-Boot mailing list