linux/arch/arm/mach-omap2
Paul Walmsley 0b7cbfb5e1 [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>
2008-08-21 21:26:39 +01:00
..
board-2430sdp.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
board-apollon.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
board-generic.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
board-h4.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
clock24xx.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
clock24xx.h ARM: OMAP2: Clockdomain: Associate clocks with clockdomains 2008-08-19 11:08:44 +03:00
clock34xx.c ARM: OMAP2: Clockdomain: Integrate OMAP3 clocks with clockdomain code 2008-08-19 11:08:45 +03:00
clock34xx.h ARM: OMAP2: Clock: Combine 34xx l3_icks and l4_icks 2008-08-19 11:08:45 +03:00
clock.c ARM: OMAP2: Clockdomain: Integrate OMAP3 clocks with clockdomain code 2008-08-19 11:08:45 +03:00
clock.h ARM: OMAP2: Clockdomain: Integrate OMAP3 clocks with clockdomain code 2008-08-19 11:08:45 +03:00
clockdomain.c ARM: OMAP2: Clockdomain: Connect clockdomain code to powerdomain code 2008-08-19 11:08:44 +03:00
clockdomains.h ARM: OMAP2: Clockdomain: Integrate OMAP3 clocks with clockdomain code 2008-08-19 11:08:45 +03:00
cm-regbits-24xx.h ARM: OMAP2: Clockdomain: Encode OMAP2/3 clockdomains 2008-08-19 11:08:44 +03:00
cm-regbits-34xx.h ARM: OMAP2: Clockdomain: Encode OMAP2/3 clockdomains 2008-08-19 11:08:44 +03:00
cm.h ARM: OMAP2: Clock: Add OMAP3 DPLL autoidle functions 2008-07-03 12:24:45 +03:00
control.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
devices.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
gpmc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
id.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
io.c ARM: OMAP2: Clockdomain: Encode OMAP2/3 clockdomains 2008-08-19 11:08:44 +03:00
irq.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
Kconfig ARM: OMAP: Add minimal OMAP2430 support 2007-09-20 09:59:20 -07:00
mailbox.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
Makefile ARM: OMAP2: Clockdomain: Add base OMAP2/3 clockdomain code 2008-08-19 11:08:43 +03:00
Makefile.boot [ARM] 3145/1: OMAP 3a/5: Add support for omap24xx 2005-11-10 14:26:51 +00:00
mcbsp.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
memory.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
memory.h ARM: OMAP2: Change 24xx to use shared clock code and new reg access 2008-04-14 10:29:38 -07:00
mux.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pm.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
powerdomain.c [ARM] OMAP3 pwrdm: add hardware save-and-restore (SAR) support 2008-08-21 21:26:39 +01:00
powerdomains24xx.h ARM: OMAP2: Powerdomain: Add OMAP2 powerdomains 2008-08-19 11:08:42 +03:00
powerdomains34xx.h ARM: OMAP: Powerdomain: Add OMAP3 powerdomains 2008-08-19 11:08:43 +03:00
powerdomains.h ARM: OMAP: Powerdomain: Add OMAP3 powerdomains 2008-08-19 11:08:43 +03:00
prcm-common.h ARM: OMAP: Powerdomain: Add OMAP3 powerdomains 2008-08-19 11:08:43 +03:00
prcm.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
prm-regbits-24xx.h ARM: OMAP2: Powerdomain: Add OMAP2 powerdomains 2008-08-19 11:08:42 +03:00
prm-regbits-34xx.h ARM: OMAP: Powerdomain: Add OMAP3 powerdomains 2008-08-19 11:08:43 +03:00
prm.h ARM: OMAP2: Powerdomain: Add OMAP2/3 common powerdomains 2008-08-19 11:08:40 +03:00
sdrc.h [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
serial.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
sleep.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
sram242x.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
sram243x.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
timer-gp.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
usb-tusb6010.c usb: musb: pass configuration specifics via pdata 2008-08-13 17:33:01 -07:00