ARM: OMAP4: PM: Add CPUidle support
authorSantosh Shilimkar <santosh.shilimkar@ti.com>
Tue, 16 Aug 2011 12:01:40 +0000 (17:31 +0530)
committerKevin Hilman <khilman@ti.com>
Thu, 8 Dec 2011 19:29:01 +0000 (11:29 -0800)
commit98272660970a71e21ad1992f695f75b780de833c
tree602ff2dc1ba89f46c195a16bf55116d7197288bf
parent137d105d50f6e6c373c1aa759f59045e6239cf66
ARM: OMAP4: PM: Add CPUidle support

Add OMAP4 CPUIDLE support. CPU1 is left with defualt idle and
the low power state for it is managed via cpu-hotplug.

This patch adds MPUSS low power states in cpuidle.

C1 - CPU0 ON + CPU1 ON + MPU ON
C2 - CPU0 OFF + CPU1 OFF + MPU CSWR
C3 - CPU0 OFF + CPU1 OFF + MPU OSWR

OMAP4460 onwards, MPUSS power domain doesn't support OFF state any more
anymore just like CORE power domain. The deepest state supported is OSWr.
Ofcourse when MPUSS and CORE PD transitions to OSWR along with device
off mode, even the memory contemts are lost which is as good as
the PD off state.

On OMAP4 because of hardware constraints, no low power states are
targeted when both CPUs are online and in SMP mode. The low power
states are attempted only when secondary CPU gets offline to OFF
through hotplug infrastructure.

Thanks to Nicole Chalhoub <n-chalhoub@ti.com> for doing exhaustive
C-state latency profiling.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
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>
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/cpuidle44xx.c [new file with mode: 0644]
arch/arm/mach-omap2/pm.h
arch/arm/mach-omap2/pm44xx.c