avr32: Power Management support ("standby" and "mem" modes)
authorHaavard Skinnemoen <hskinnemoen@atmel.com>
Sun, 24 Feb 2008 12:51:38 +0000 (13:51 +0100)
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Wed, 2 Jul 2008 09:05:01 +0000 (11:05 +0200)
commit02a00cf672a37292c31bbdde191712bfa40a4f1d
tree5588f7cd600056861fe1313abe7b47b9c051eab6
parentaa8e87ca619a3d1944874e85d74fda90607c73b9
avr32: Power Management support ("standby" and "mem" modes)

Implement Standby support. In this mode, we'll suspend all drivers,
put the SDRAM in self-refresh mode and switch off the HSB bus
("frozen" mode.)

Implement Suspend-to-mem support. In this mode, we suspend all
drivers, put the SDRAM into self-refresh mode and switch off all
internal clocks except the 32 kHz oscillator ("stop" mode.)

The lowest-level suspend code runs from a small portion of SRAM
allocated at startup time. This gets rid of a small potential race
with the SDRAM where we might try to enter self-refresh mode in the
middle of an icache burst. We also relocate all interrupt and
exception handlers to SRAM during the small window when we enter and
exit the low-power modes.

We don't need to do any special tricks to start and stop the PLL. The
main clock is automatically gated by hardware until the PLL is stable.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
arch/avr32/Kconfig
arch/avr32/mach-at32ap/Makefile
arch/avr32/mach-at32ap/intc.c
arch/avr32/mach-at32ap/pm-at32ap700x.S
arch/avr32/mach-at32ap/pm.c [new file with mode: 0644]
arch/avr32/mach-at32ap/sdramc.h [new file with mode: 0644]
include/asm-avr32/arch-at32ap/pm.h
include/asm-avr32/thread_info.h