From: Tony Lindgren Date: Tue, 9 Sep 2008 00:35:42 +0000 (-0700) Subject: ARM: OMAP: Update GPMC code for ioremap X-Git-Tag: v2.6.27-omap1~247 X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=45cb4b57f1d96fffc36fefeefec9a733819c38be;hp=ed39c59ff267249e7e789ea3bb64afc1e9afb5bd;p=linux-2.6-omap-h63xx.git ARM: OMAP: Update GPMC code for ioremap Update GPMC code for ioremap Signed-off-by: Tony Lindgren --- diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 0eb29e13960..f3e02712d89 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -59,7 +59,7 @@ static struct resource gpmc_cs_mem[GPMC_CS_NUM]; static DEFINE_SPINLOCK(gpmc_mem_lock); static unsigned gpmc_cs_map; -static u32 gpmc_base; +static void __iomem *gpmc_base; static struct clk *gpmc_l3_clk; @@ -95,7 +95,7 @@ unsigned long gpmc_get_fclk_period(void) unsigned long rate = clk_get_rate(gpmc_l3_clk); if (rate == 0) { - printk(KERN_WARNING "gpmc_l3_clk no enabled\n"); + printk(KERN_WARNING "gpmc_l3_clk not enabled\n"); return 0; } @@ -413,16 +413,30 @@ static void __init gpmc_mem_init(void) void __init gpmc_init(void) { u32 l; + char *ck; if (cpu_is_omap24xx()) { - gpmc_l3_clk = clk_get(NULL, "core_l3_ck"); + ck = "core_l3_ck"; if (cpu_is_omap2420()) - gpmc_base = OMAP2_IO_ADDRESS(OMAP2420_GPMC_BASE); - else if (cpu_is_omap2430()) - gpmc_base = OMAP2_IO_ADDRESS(OMAP243X_GPMC_BASE); + l = OMAP2420_GPMC_BASE; + else + l = OMAP34XX_GPMC_BASE; } else if (cpu_is_omap34xx()) { - gpmc_l3_clk = clk_get(NULL, "gpmc_fck"); - gpmc_base = OMAP2_IO_ADDRESS(OMAP34XX_GPMC_BASE); + ck = "gpmc_fck"; + l = OMAP34XX_GPMC_BASE; + } + + gpmc_l3_clk = clk_get(NULL, ck); + if (IS_ERR(gpmc_l3_clk)) { + printk(KERN_ERR "Could not get GPMC clock %s\n", ck); + return -ENODEV; + } + + gpmc_base = ioremap(l, SZ_4K); + if (!gpmc_base) { + clk_put(gpmc_l3_clk); + printk(KERN_ERR "Could not get GPMC register memory\n"); + return -ENOMEM; } BUG_ON(IS_ERR(gpmc_l3_clk));