omap3: PM: enable UART3 module wakeups
authorKevin Hilman <khilman@deeprootsystems.com>
Thu, 22 Oct 2009 21:48:13 +0000 (14:48 -0700)
committerTony Lindgren <tony@atomide.com>
Thu, 22 Oct 2009 22:41:16 +0000 (15:41 -0700)
commitb427f92f8cfca2787c18a77bef15cc8b13341774
treec40624ec043df2aa8da2c47bbd5fe5cb978b3c88
parent60dbd8c95fe21955391bbaf0b66ac443742a3dd4
omap3: PM: enable UART3 module wakeups

UART3 is in the PER powerdomain.  If PER goes idle/inactive
independently of CORE, for UART3 to wakeup it must have its wakeup
enable bits setup in PM_WKEN_PER.  This patch enables these bits.

The reason it works when PER and CORE work together is because when
CORE goes inactive/retention, the IOPAD wakeups are enabled and
trigger UART3 wakeup.

Without this patch, when the UART inactivity timer fires for UART3,
its clocks are disabled and it's unable to wakeup so will be unusable
until PER is awoken by another source.

Another way of testing is by keeping CORE on during suspend but
allowing PER to hit retention

  # echo 3 > /debug/pm_debug/core_pwrdm/suspend

then enter suspend

  # echo mem > /sys/power/state

Without this patch, UART3 will be unable to wakeup the system.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/pm34xx.c