[PATCH] ARM omap hsmmc: Fix adding iobase for OMAP3
Sascha Hauer
s.hauer at pengutronix.de
Wed Jan 9 06:00:36 EST 2013
Hi Jürgen,
I'm a bit confused...
On Fri, Jan 04, 2013 at 05:13:12PM +0100, Juergen Kilb wrote:
> Only the OMAP4 hsmmc module has an offset of 0x100 from its register
> base address. With commit 416a991 the offset was added for all SOCs
> which use the omap_hsmmc driver.
> This has broken the driver for OMAP3/AM33xx platforms.
You state that am33xx is broken,...
>
> Signed-off-by: Juergen Kilb <J.Kilb at phytec.de>
> ---
> drivers/mci/omap_hsmmc.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mci/omap_hsmmc.c b/drivers/mci/omap_hsmmc.c
> index 6471ea6..68fb3e1 100644
> --- a/drivers/mci/omap_hsmmc.c
> +++ b/drivers/mci/omap_hsmmc.c
> @@ -577,8 +577,12 @@ static int omap_mmc_probe(struct device_d *dev)
> hsmmc->mci.hw_dev = dev;
>
> hsmmc->iobase = dev_request_mem_region(dev, 0);
> - hsmmc->base = hsmmc->iobase + 0x100;
>
> +#if defined(CONFIG_ARCH_OMAP4)
> + hsmmc->base = hsmmc->iobase + 0x100;
> +#else
> + hsmmc->base = hsmmc->iobase;
> +#endif
and remove the 0x100 offset for am33xx here.
Now I realize am33xx MMC is broken and I need the following patch to
make it work again. Could it be you didn't test it on am33xx or is there
something else wrong here?
Sascha
>From b337e4b71ae7b3b2c9668350252ba86f8ecfa764 Mon Sep 17 00:00:00 2001
From: Sascha Hauer <s.hauer at pengutronix.de>
Date: Wed, 9 Jan 2013 11:02:50 +0100
Subject: [PATCH] ARM am33xx: the hsmmc is a omap4 type mmc controller
The am33xx hsmmc controller is actually a omap4 type controller which
means that it has a 0x100 offset in the registers.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
arch/arm/mach-omap/include/mach/am33xx-devices.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-omap/include/mach/am33xx-devices.h b/arch/arm/mach-omap/include/mach/am33xx-devices.h
index 4c83b28..c194303 100644
--- a/arch/arm/mach-omap/include/mach/am33xx-devices.h
+++ b/arch/arm/mach-omap/include/mach/am33xx-devices.h
@@ -26,7 +26,7 @@ static inline struct device_d *am33xx_add_uart2(void)
static inline struct device_d *am33xx_add_mmc0(struct omap_hsmmc_platform_data *pdata)
{
- return add_generic_device("omap3-hsmmc", 0, NULL,
+ return add_generic_device("omap4-hsmmc", 0, NULL,
AM33XX_MMCHS0_BASE, SZ_4K, IORESOURCE_MEM, pdata);
}
--
1.7.10.4
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list