[U-Boot] [PATCH RFC 1/7] omap_hsmmc: update struct hsmmc to accommodate omap3 from DT

Adam Ford aford173 at gmail.com
Mon Apr 10 22:12:02 UTC 2017


I am working on porting an OMAP3630 board to support device tree, and
I attempted to change enable DM_MMC.  Unfortunately, that broke MMC.

I discovered that the base addresses were originally updated to reflect a
change in the base address when using the device tree for some devices.

This was done in 11e1582506c6 ("omap_hsmmc: update struct hsmmc to accomodate
base address from DT")

Unfortunately, this breaks the base address on an OMAP3630 (and I assume
omap34xx) which currently doesn't have OF support yet.

Without this patch, the when driver attemps to write to mmc_base->sysconfig
at 4809c110 is used instead of mmc_base->sysconfig at 4809c010.  This makes any
attempt to use the mmc fail.  With this patch, I am able to read/write to the
MMC device with DM_MMC enabled with OF support.

If there is a better solution, I am open to ideas.  I verified this against
the OMAP3530 TRM and OMAP3630 TRM.  Since AM3359 TRM has the same value,
it might be helpful for other boards, but I don't have them to test.  If there
is a better solution, I am perfectly open for suggestions.

If this gets reviewed and approved, I can push the OMAP3630 (and OMAP3) device
trees which might let more boards move to DM and OF support.

Signed-off-by: Adam Ford <aford173 at gmail.com>

diff --git a/arch/arm/include/asm/omap_mmc.h b/arch/arm/include/asm/omap_mmc.h
index f2bf645..fd9b741 100644
--- a/arch/arm/include/asm/omap_mmc.h
+++ b/arch/arm/include/asm/omap_mmc.h
@@ -26,7 +26,7 @@
 #define OMAP_MMC_H_
 
 struct hsmmc {
-#ifdef CONFIG_DM_MMC
+#if defined(CONFIG_DM_MMC) && !defined(OMAP34XX)
 	unsigned char res0[0x100];
 #endif
 	unsigned char res1[0x10];
-- 
2.7.4



More information about the U-Boot mailing list