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>
Showing
- arch/avr32/Kconfig 5 additions, 0 deletionsarch/avr32/Kconfig
- arch/avr32/mach-at32ap/Makefile 5 additions, 0 deletionsarch/avr32/mach-at32ap/Makefile
- arch/avr32/mach-at32ap/intc.c 53 additions, 1 deletionarch/avr32/mach-at32ap/intc.c
- arch/avr32/mach-at32ap/pm-at32ap700x.S 108 additions, 0 deletionsarch/avr32/mach-at32ap/pm-at32ap700x.S
- arch/avr32/mach-at32ap/pm.c 245 additions, 0 deletionsarch/avr32/mach-at32ap/pm.c
- arch/avr32/mach-at32ap/sdramc.h 76 additions, 0 deletionsarch/avr32/mach-at32ap/sdramc.h
- include/asm-avr32/arch-at32ap/pm.h 3 additions, 0 deletionsinclude/asm-avr32/arch-at32ap/pm.h
- include/asm-avr32/thread_info.h 1 addition, 0 deletionsinclude/asm-avr32/thread_info.h
arch/avr32/mach-at32ap/pm.c
0 → 100644
arch/avr32/mach-at32ap/sdramc.h
0 → 100644
Please register or sign in to comment