summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/platsmp.c
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2012-12-04 15:55:15 +0100
committerShawn Guo <shawn.guo@linaro.org>2013-01-30 14:09:31 +0100
commite5f9dec8ff5ff3f6254412abed1f68d758f6616b (patch)
tree05f293a11ec605b1380b2c7bfb0c3895abeddb08 /arch/arm/mach-imx/platsmp.c
parentARM: imx: move imx6q_cpuidle_driver into a separate file (diff)
downloadlinux-e5f9dec8ff5ff3f6254412abed1f68d758f6616b.tar.xz
linux-e5f9dec8ff5ff3f6254412abed1f68d758f6616b.zip
ARM: imx6q: support WAIT mode using cpuidle
Add WAIT mode (ARM core clock gating) support to imx6q cpuidle driver. As WAIT mode is broken on imx6q TO 1.0 and 1.1, it only enables the support for revision 1.2 with chicken bit set. Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Diffstat (limited to 'arch/arm/mach-imx/platsmp.c')
-rw-r--r--arch/arm/mach-imx/platsmp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c
index 3777b805b76b..a70b54877191 100644
--- a/arch/arm/mach-imx/platsmp.c
+++ b/arch/arm/mach-imx/platsmp.c
@@ -20,6 +20,8 @@
#include "common.h"
#include "hardware.h"
+#define SCU_STANDBY_ENABLE (1 << 5)
+
static void __iomem *scu_base;
static struct map_desc scu_io_desc __initdata = {
@@ -42,6 +44,14 @@ void __init imx_scu_map_io(void)
scu_base = IMX_IO_ADDRESS(base);
}
+void imx_scu_standby_enable(void)
+{
+ u32 val = readl_relaxed(scu_base);
+
+ val |= SCU_STANDBY_ENABLE;
+ writel_relaxed(val, scu_base);
+}
+
static void __cpuinit imx_secondary_init(unsigned int cpu)
{
/*