sh: Use ioremap_fixmed to map the SM501 DRAM config register
authorMatt Fleming <matt@console-pimps.org>
Thu, 5 Nov 2009 08:01:10 +0000 (08:01 +0000)
committerMatt Fleming <matt@console-pimps.org>
Sat, 16 Jan 2010 14:31:44 +0000 (14:31 +0000)
We need to write to the DRAM config register very early and at such an
early stage ioremap() is not available. So use ioremap_fixed() to map
the register.

The reason that we are avoiding using the legacy P2 mapping is that
there will come a day when the legacy P2 mappings no longer exist.

Signed-off-by: Matt Fleming <matt@console-pimps.org>
arch/sh/boards/board-sh7785lcr.c

index 7eea90d..511de38 100644 (file)
@@ -332,8 +332,15 @@ static void __init sh7785lcr_setup(char **cmdline_p)
        pm_power_off = sh7785lcr_power_off;
 
        /* sm501 DRAM configuration */
-       sm501_reg = (void __iomem *)0xb3e00000 + SM501_DRAM_CONTROL;
-       writel(0x000307c2, sm501_reg);
+       sm501_reg = ioremap_fixed(SM107_REG_ADDR, SM501_DRAM_CONTROL,
+                                 PAGE_KERNEL);
+       if (!sm501_reg) {
+               printk(KERN_ERR "%s: ioremap error.\n", __func__);
+               return;
+       }
+
+       writel(0x000307c2, sm501_reg + SM501_DRAM_CONTROL);
+       iounmap_fixed(sm501_reg);
 }
 
 /* Return the board specific boot mode pin configuration */