[ARM] OMAP3 pwrdm: add hardware save-and-restore (SAR) support
authorPaul Walmsley <paul@pwsan.com>
Thu, 26 Jun 2008 00:09:37 +0000 (18:09 -0600)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 21 Aug 2008 20:26:39 +0000 (21:26 +0100)
commit0b7cbfb5e1f03f58241bf236cca303ee45e14b4f
treee5507290b827ee4fa60cf7a7a7f3f473d2c1a453
parent5955902fb5c31f6a784ddb7aa16079a2bec588f5
[ARM] OMAP3 pwrdm: add hardware save-and-restore (SAR) support

OMAP3430ES2+ introduces a new feature: optional powerdomain context
hardware save-and-restore (SAR).  Currently, this feature only applies
to USBHOST and USBTLL module context when the USBHOST or CORE
powerdomains enter a low-power sleep state[1].  This feature avoids
re-enumeration of USB devices when the powerdomains return from idle,
which is potentially time-consuming.

This patch adds support for enabling and disabling hardware
save-and-restore to the powerdomain code.  Three new functions are
added, pwrdm_enable_hdwr_sar(), pwrdm_disable_hdwr_sar(), and
pwrdm_can_hdwr_sar().  A new struct powerdomain "flags" field is
added, with a PWRDM_HAS_HDWR_SAR flag to indicate powerdomains with
SAR support.

Thanks to Jouni Högander <jouni.hogander@nokia.com> for reviewing an
earlier version of these patches, and Richard Woodruff <r-woodruff2@ti.com>
for clarifying the purpose of these bits.

1.  For the USBHOST controller module, context loss occurs when the
    USBHOST powerdomain enters off-idle.  For USBTLL, context loss
    occurs either if CORE enters off-idle, or if the CORE logic is
    configured to turn off when CORE enters retention-idle (OSWR).
    34xx ES2 TRM 4.8.6.1.1, 4.8.6.1.2

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-omap2/powerdomain.c
arch/arm/plat-omap/include/mach/powerdomain.h