aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/common.h
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@ti.com>2010-06-16 12:49:48 -0400
committerKevin Hilman <khilman@ti.com>2011-12-08 14:29:00 -0500
commitb2b9762f76981c16a8768255284efeae7f27e4f1 (patch)
tree3538b853da88eedeb2c64646b9555736000ba73a /arch/arm/mach-omap2/common.h
parentfcf6efa3ffbc3cc19e7abe39e0b90f497df2fc42 (diff)
ARM: OMAP4: PM: Add CPUX OFF mode support
This patch adds the CPU0 and CPU1 off mode support. CPUX close switch retention (CSWR) is not supported by hardware design. The CPUx OFF mode isn't supported on OMAP4430 ES1.0 CPUx sleep code is common for hotplug, suspend and CPUilde. Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: Jean Pihet <j-pihet@ti.com> Reviewed-by: Kevin Hilman <khilman@ti.com> Tested-by: Vishwanath BS <vishwanath.bs@ti.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/common.h')
-rw-r--r--arch/arm/mach-omap2/common.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index 7ebcb6a9b73e..36cdba7727f2 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -24,9 +24,11 @@
24 24
25#ifndef __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H 25#ifndef __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
26#define __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H 26#define __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
27#ifndef __ASSEMBLER__
27 28
28#include <linux/delay.h> 29#include <linux/delay.h>
29#include <plat/common.h> 30#include <plat/common.h>
31#include <asm/proc-fns.h>
30 32
31#ifdef CONFIG_SOC_OMAP2420 33#ifdef CONFIG_SOC_OMAP2420
32extern void omap242x_map_common_io(void); 34extern void omap242x_map_common_io(void);
@@ -183,6 +185,7 @@ static inline void __iomem *omap4_get_scu_base(void)
183extern void __init gic_init_irq(void); 185extern void __init gic_init_irq(void);
184extern void omap_smc1(u32 fn, u32 arg); 186extern void omap_smc1(u32 fn, u32 arg);
185extern void __iomem *omap4_get_sar_ram_base(void); 187extern void __iomem *omap4_get_sar_ram_base(void);
188extern void omap_do_wfi(void);
186 189
187#ifdef CONFIG_SMP 190#ifdef CONFIG_SMP
188/* Needed for secondary core boot */ 191/* Needed for secondary core boot */
@@ -192,4 +195,31 @@ extern void omap_auxcoreboot_addr(u32 cpu_addr);
192extern u32 omap_read_auxcoreboot0(void); 195extern u32 omap_read_auxcoreboot0(void);
193#endif 196#endif
194 197
198#if defined(CONFIG_SMP) && defined(CONFIG_PM)
199extern int omap4_mpuss_init(void);
200extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
201extern int omap4_finish_suspend(unsigned long cpu_state);
202extern void omap4_cpu_resume(void);
203#else
204static inline int omap4_enter_lowpower(unsigned int cpu,
205 unsigned int power_state)
206{
207 cpu_do_idle();
208 return 0;
209}
210
211static inline int omap4_mpuss_init(void)
212{
213 return 0;
214}
215
216static inline int omap4_finish_suspend(unsigned long cpu_state)
217{
218 return 0;
219}
220
221static inline void omap4_cpu_resume(void)
222{}
223#endif
224#endif /* __ASSEMBLER__ */
195#endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */ 225#endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */