diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2010-09-27 16:02:57 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-09-27 16:02:57 -0400 |
commit | 70ba71a25e02ef7b8796723c8615955620e465ff (patch) | |
tree | 2f438307bd74e24f26c35727800fef46bb7bf675 /arch/arm/mach-omap2/control.c | |
parent | 0c3492467c99f3d0d83a48012ee6e672b016759c (diff) |
omap4: control: Add accessor api's for pad control module
On OMAP4 control pad are not addressable from control
core base. So the common omap_ctrl_read/write APIs breaks
Hence export separate APIs to manage the omap4 pad control
registers.
This APIs will work only for OMAP4
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm/mach-omap2/control.c')
-rw-r--r-- | arch/arm/mach-omap2/control.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c index 99c0eb645d4d..8b3c469e7bcd 100644 --- a/arch/arm/mach-omap2/control.c +++ b/arch/arm/mach-omap2/control.c | |||
@@ -138,6 +138,7 @@ static struct omap3_control_regs control_context; | |||
138 | #endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */ | 138 | #endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */ |
139 | 139 | ||
140 | #define OMAP_CTRL_REGADDR(reg) (omap2_ctrl_base + (reg)) | 140 | #define OMAP_CTRL_REGADDR(reg) (omap2_ctrl_base + (reg)) |
141 | #define OMAP4_CTRL_PAD_REGADDR(reg) (omap4_ctrl_pad_base + (reg)) | ||
141 | 142 | ||
142 | void __init omap2_set_globals_control(struct omap_globals *omap2_globals) | 143 | void __init omap2_set_globals_control(struct omap_globals *omap2_globals) |
143 | { | 144 | { |
@@ -189,6 +190,23 @@ void omap_ctrl_writel(u32 val, u16 offset) | |||
189 | __raw_writel(val, OMAP_CTRL_REGADDR(offset)); | 190 | __raw_writel(val, OMAP_CTRL_REGADDR(offset)); |
190 | } | 191 | } |
191 | 192 | ||
193 | /* | ||
194 | * On OMAP4 control pad are not addressable from control | ||
195 | * core base. So the common omap_ctrl_read/write APIs breaks | ||
196 | * Hence export separate APIs to manage the omap4 pad control | ||
197 | * registers. This APIs will work only for OMAP4 | ||
198 | */ | ||
199 | |||
200 | u32 omap4_ctrl_pad_readl(u16 offset) | ||
201 | { | ||
202 | return __raw_readl(OMAP4_CTRL_PAD_REGADDR(offset)); | ||
203 | } | ||
204 | |||
205 | void omap4_ctrl_pad_writel(u32 val, u16 offset) | ||
206 | { | ||
207 | __raw_writel(val, OMAP4_CTRL_PAD_REGADDR(offset)); | ||
208 | } | ||
209 | |||
192 | #if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM) | 210 | #if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM) |
193 | /* | 211 | /* |
194 | * Clears the scratchpad contents in case of cold boot- | 212 | * Clears the scratchpad contents in case of cold boot- |