ARM: S3C64XX: Implement basic power domain support
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 8 Dec 2011 22:27:48 +0000 (23:27 +0100)
committerRafael J. Wysocki <rjw@sisk.pl>
Fri, 9 Dec 2011 22:22:59 +0000 (23:22 +0100)
commitc656c30668b9408c46d6bfbd1eea472f39a3155d
tree607b3a98acb6b0454c4cea442a20bf7052c2aa09
parenta87dc8fdc250f6416b522a3eb302c8cf95c2317c
ARM: S3C64XX: Implement basic power domain support

The S3C64xx SoCs contain a set of gateable power domains which can be
enabled and disabled at runtime in order to save power.  Use the generic
power domain code to implement support for these in software, enabling
runtime control of most domains:

 - ETM (not supported in mainline).
 - Domain G: 3D acceleration (no mainline support).
 - Domain V: MFC (no mainline support).
 - Domain I: JPEG and camera interface (no mainline support).
 - Domain P: 2D acceleration, TV encoder and scaler (no mainline support)
 - Domain S: Security (no mainline support).
 - Domain F: LCD (driver already uses runtime PM), post processing and
   rotation (no mainline support).

The IROM domain is marked as always enabled as we should arrange for it
to be enabled when we suspend which will need a bit more work.

Due to all the conditional device registration that the platform does
wrap s3c_pm_init() with s3c64xx_pm_init() which actually puts the device
into the power domain after the machines have registered, looking for
platform data to tell if the device was registered. Since currently only
Cragganmore actually sets up PM that is the only machine updated.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
arch/arm/mach-s3c64xx/Kconfig
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s3c64xx/pm.c
arch/arm/plat-samsung/include/plat/pm.h