ARM: imx: add suspend in ocram support for i.mx6q
authorAnson Huang <b20788@freescale.com>
Fri, 17 Jan 2014 03:39:05 +0000 (11:39 +0800)
committerShawn Guo <shawn.guo@linaro.org>
Wed, 5 Mar 2014 02:35:10 +0000 (10:35 +0800)
commitdf595746fa69db2e36d89677df26ba51f9706c1b
tree802ca4cfdac8a8c048ea264d6351a5b95b9d2c05
parent02ae8e8682112166493675c0b4aaa57737dc01e4
ARM: imx: add suspend in ocram support for i.mx6q

When system enter suspend, we can set the DDR IO to
high-Z state to save DDR IOs' power consumption, this
operation can save many power(from ~26mA@1.5V to ~15mA@1.5V,
measured on i.MX6Q SabreSD board, R25) of DDR IOs. To
achieve that, we need to copy the suspend code to ocram
and run the low level hardware related code(set DDR IOs
to high-Z state) in ocram.

If there is no ocram space available, then system will
still do suspend in external DDR, hence no DDR IOs will
be set to high-Z.

The OCRAM usage layout is as below,

ocram suspend region(4K currently):
======================== high address ======================
                              .
                              .
                              .
                              ^
                              ^
                              ^
                      imx6_suspend code
             PM_INFO structure(imx6_cpu_pm_info)
======================== low address =======================

Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
arch/arm/mach-imx/Makefile
arch/arm/mach-imx/common.h
arch/arm/mach-imx/hardware.h
arch/arm/mach-imx/mach-imx6q.c
arch/arm/mach-imx/mach-imx6sl.c
arch/arm/mach-imx/pm-imx6q.c
arch/arm/mach-imx/suspend-imx6.S [new file with mode: 0644]