From 45cb4b57f1d96fffc36fefeefec9a733819c38be Mon Sep 17 00:00:00 2001 From: Tony Lindgren Date: Mon, 8 Sep 2008 17:35:42 -0700 Subject: [PATCH] ARM: OMAP: Update GPMC code for ioremap Update GPMC code for ioremap Signed-off-by: Tony Lindgren --- arch/arm/mach-omap2/gpmc.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) 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)); -- 2.41.1