Commit 0c349246 authored by Santosh Shilimkar's avatar Santosh Shilimkar Committed by Paul Walmsley

omap4: control: Add ctrl_pad_base to omap_globals

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: default avatarBenoit Cousson <b-cousson@ti.com>
Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
parent 0edc9e85
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "sdrc.h" #include "sdrc.h"
static void __iomem *omap2_ctrl_base; static void __iomem *omap2_ctrl_base;
static void __iomem *omap4_ctrl_pad_base;
#if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM) #if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM)
struct omap3_scratchpad { struct omap3_scratchpad {
...@@ -145,6 +146,12 @@ void __init omap2_set_globals_control(struct omap_globals *omap2_globals) ...@@ -145,6 +146,12 @@ void __init omap2_set_globals_control(struct omap_globals *omap2_globals)
omap2_ctrl_base = ioremap(omap2_globals->ctrl, SZ_4K); omap2_ctrl_base = ioremap(omap2_globals->ctrl, SZ_4K);
WARN_ON(!omap2_ctrl_base); 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) void __iomem *omap_ctrl_base_get(void)
......
...@@ -336,7 +336,8 @@ void __init omap3_map_io(void) ...@@ -336,7 +336,8 @@ void __init omap3_map_io(void)
static struct omap_globals omap4_globals = { static struct omap_globals omap4_globals = {
.class = OMAP443X_CLASS, .class = OMAP443X_CLASS,
.tap = OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE), .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, .prm = OMAP4430_PRM_BASE,
.cm = OMAP4430_CM_BASE, .cm = OMAP4430_CM_BASE,
.cm2 = OMAP4430_CM2_BASE, .cm2 = OMAP4430_CM2_BASE,
......
...@@ -47,6 +47,7 @@ struct omap_globals { ...@@ -47,6 +47,7 @@ struct omap_globals {
unsigned long sdrc; /* SDRAM Controller */ unsigned long sdrc; /* SDRAM Controller */
unsigned long sms; /* SDRAM Memory Scheduler */ unsigned long sms; /* SDRAM Memory Scheduler */
unsigned long ctrl; /* System Control Module */ unsigned long ctrl; /* System Control Module */
unsigned long ctrl_pad; /* PAD Control Module */
unsigned long prm; /* Power and Reset Management */ unsigned long prm; /* Power and Reset Management */
unsigned long cm; /* Clock Management */ unsigned long cm; /* Clock Management */
unsigned long cm2; unsigned long cm2;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment