ARM: imx: clean and consolidate imx5 suspend and idle code
authorRobert Lee <rob.lee@linaro.org>
Mon, 21 May 2012 22:50:26 +0000 (17:50 -0500)
committerSascha Hauer <s.hauer@pengutronix.de>
Tue, 5 Jun 2012 06:49:10 +0000 (08:49 +0200)
commit565fa91f236524b6ba4872903dc9cc9c874493e6
treebf0872ac1d86158da8209341b4d1eef0755f9150
parenteee4f4003824b0887251a3ba4493217371816a57
ARM: imx: clean and consolidate imx5 suspend and idle code

The imx5 idle code that existed in mm-imx5.c is moved to pm-imx5.c.
The imx5_pm_init call is now exported and called during the
MACHINE_START late_init in supported imx5 platforms.

Remove various enabling/disabling of the gpc_dvfs clock and
enable it once during initialization.  This is a very low
power clock that must be enabled during low power operations.

There are only two "suspend_state_t" imx5 low power modes ever
used.  STOP_POWER_OFF for suspend to mem and
WAIT_UNCLOCKED_POWER_OFF for idle and suspend to standby.  The
latter mode only requires 500 nanoseconds of extra hardware
exit time beyond a basic WFI operation (WAIT_CLOCKED mode) so
no other idle mode is necessary.  Given this information, it
is more efficient to keep the registers in the often used
WAIT_UNCLOCKED_POWER_OFF state and only to and from the
STOP_POWER_OFF register state as needed when suspend to
mem is required.

Signed-off-by: Robert Lee <rob.lee@linaro.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-imx/mm-imx5.c
arch/arm/mach-imx/pm-imx5.c
arch/arm/plat-mxc/include/mach/common.h