浏览代码

sh: Use ioremap_fixmed to map the SM501 DRAM config register

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>
Matt Fleming 15 年之前
父节点
当前提交
6f82b6ebb1
共有 1 个文件被更改,包括 9 次插入2 次删除
  1. 9 2
      arch/sh/boards/board-sh7785lcr.c

+ 9 - 2
arch/sh/boards/board-sh7785lcr.c

@@ -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 */