omap4: control: Add ctrl_pad_base to omap_globals
authorSantosh Shilimkar <santosh.shilimkar@ti.com>
Mon, 27 Sep 2010 20:02:57 +0000 (14:02 -0600)
committerPaul Walmsley <paul@pwsan.com>
Mon, 27 Sep 2010 20:02:57 +0000 (14:02 -0600)
On omap4 control module is divided in four IP blocks.
- CTRL_MODULE_CORE 0x4a002000
- CTRL_MODULE_PAD_CORE 0x4a100000
- CTRL_MODULE_WKUP 0x4a30c000
- CTRL_MODULE_PAD_WKUP 0x4a31e000

Addressing all the modules with single base address is not possible
considering 16 bit offsets. The mux code manages the pad core and pad
wakeup related base address inside the mux framework. For other usage
only control core and control pad bases are necessary. So this patch
maps only needed pad control base address which is used by device drivers
and infrastructure code

The main control core base is still kept same in this patch to
keep git-bisect working. This will be fixed in the relevant patch
in this series.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/control.c
arch/arm/plat-omap/common.c
arch/arm/plat-omap/include/plat/common.h

index a8d20eef2306e8ddb558f96b2cc0ceeb6a542b25..99c0eb645d4d3ea5edbde45aede9185ac2a80709 100644 (file)
@@ -25,6 +25,7 @@
 #include "sdrc.h"
 
 static void __iomem *omap2_ctrl_base;
+static void __iomem *omap4_ctrl_pad_base;
 
 #if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM)
 struct omap3_scratchpad {
@@ -145,6 +146,12 @@ void __init omap2_set_globals_control(struct omap_globals *omap2_globals)
                omap2_ctrl_base = ioremap(omap2_globals->ctrl, SZ_4K);
                WARN_ON(!omap2_ctrl_base);
        }
+
+       /* Static mapping, never released */
+       if (omap2_globals->ctrl_pad) {
+               omap4_ctrl_pad_base = ioremap(omap2_globals->ctrl_pad, SZ_4K);
+               WARN_ON(!omap4_ctrl_pad_base);
+       }
 }
 
 void __iomem *omap_ctrl_base_get(void)
index 3008e71044876bf9007428b8020351b797902094..480718ba4edc9167a39428b2c2ec2af428d39fc8 100644 (file)
@@ -336,7 +336,8 @@ void __init omap3_map_io(void)
 static struct omap_globals omap4_globals = {
        .class  = OMAP443X_CLASS,
        .tap    = OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE),
-       .ctrl   = OMAP443X_CTRL_BASE,
+       .ctrl   = OMAP443X_CTRL_BASE,   /* FIXME: Move this to control core */
+       .ctrl_pad       = OMAP443X_CTRL_BASE,
        .prm    = OMAP4430_PRM_BASE,
        .cm     = OMAP4430_CM_BASE,
        .cm2    = OMAP4430_CM2_BASE,
index 9776b41ad76f57a9f63bd3be3e1044f2f58481af..7cd01807c1e0ab59a4866b6e82fae4f5332cf970 100644 (file)
@@ -47,6 +47,7 @@ struct omap_globals {
        unsigned long   sdrc;           /* SDRAM Controller */
        unsigned long   sms;            /* SDRAM Memory Scheduler */
        unsigned long   ctrl;           /* System Control Module */
+       unsigned long   ctrl_pad;       /* PAD Control Module */
        unsigned long   prm;            /* Power and Reset Management */
        unsigned long   cm;             /* Clock Management */
        unsigned long   cm2;