1/* 2 * AP325RXA sdram self/auto-refresh setup code 3 * 4 * Copyright (C) 2009 Magnus Damm 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. 9 */ 10 11#include <linux/sys.h> 12#include <linux/errno.h> 13#include <linux/linkage.h> 14#include <asm/asm-offsets.h> 15#include <asm/suspend.h> 16#include <asm/romimage-macros.h> 17 18/* code to enter and leave self-refresh. must be self-contained. 19 * this code will be copied to on-chip memory and executed from there. 20 */ 21 .balign 4 22ENTRY(ap325rxa_sdram_enter_start) 23 24 /* SBSC: disable power down and put in self-refresh mode */ 25 mov.l 1f, r4 26 mov.l 2f, r1 27 mov.l @r4, r2 28 or r1, r2 29 mov.l 3f, r3 30 and r3, r2 31 mov.l r2, @r4 32 33 rts 34 nop 35 36 .balign 4 371: .long 0xfe400008 /* SDCR0 */ 382: .long 0x00000400 393: .long 0xffff7fff 40ENTRY(ap325rxa_sdram_enter_end) 41 42 .balign 4 43ENTRY(ap325rxa_sdram_leave_start) 44 45 /* SBSC: set auto-refresh mode */ 46 mov.l 1f, r4 47 mov.l @r4, r0 48 mov.l 4f, r1 49 and r1, r0 50 mov.l r0, @r4 51 mov.l 6f, r4 52 mov.l 8f, r0 53 mov.l @r4, r1 54 mov #-1, r4 55 add r4, r1 56 or r1, r0 57 mov.l 7f, r1 58 mov.l r0, @r1 59 60 rts 61 nop 62 63 .balign 4 641: .long 0xfe400008 /* SDCR0 */ 654: .long 0xfffffbff 666: .long 0xfe40001c /* RTCOR */ 677: .long 0xfe400018 /* RTCNT */ 688: .long 0xa55a0000 69ENTRY(ap325rxa_sdram_leave_end) 70