root/arch/sh/boards/mach-migor/sdram.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0
   2  *
   3  * Migo-R sdram self/auto-refresh setup code
   4  *
   5  *  Copyright (C) 2009 Magnus Damm
   6  */
   7 
   8 #include <linux/sys.h>
   9 #include <linux/errno.h>
  10 #include <linux/linkage.h>
  11 #include <asm/asm-offsets.h>
  12 #include <asm/suspend.h>
  13 #include <asm/romimage-macros.h>
  14 
  15 /* code to enter and leave self-refresh. must be self-contained.
  16  * this code will be copied to on-chip memory and executed from there.
  17  */
  18         .balign 4
  19 ENTRY(migor_sdram_enter_start)
  20 
  21         /* SBSC: disable power down and put in self-refresh mode */
  22         mov.l   1f, r4
  23         mov.l   2f, r1
  24         mov.l   @r4, r2
  25         or      r1, r2
  26         mov.l   3f, r3
  27         and     r3, r2
  28         mov.l   r2, @r4
  29 
  30         rts
  31          nop
  32 
  33         .balign 4
  34 1:      .long   0xfe400008 /* SDCR0 */
  35 2:      .long   0x00000400
  36 3:      .long   0xffff7fff
  37 ENTRY(migor_sdram_enter_end)
  38 
  39         .balign 4
  40 ENTRY(migor_sdram_leave_start)
  41 
  42         /* SBSC: set auto-refresh mode */
  43         mov.l   1f, r4
  44         mov.l   @r4, r0
  45         mov.l   4f, r1
  46         and     r1, r0
  47         mov.l   r0, @r4
  48         mov.l   6f, r4
  49         mov.l   8f, r0
  50         mov.l   @r4, r1
  51         mov     #-1, r4
  52         add     r4, r1
  53         or      r1, r0
  54         mov.l   7f, r1
  55         mov.l   r0, @r1
  56 
  57         rts
  58          nop
  59 
  60         .balign 4
  61 1:      .long   0xfe400008 /* SDCR0 */
  62 4:      .long   0xfffffbff
  63 6:      .long   0xfe40001c /* RTCOR */
  64 7:      .long   0xfe400018 /* RTCNT */
  65 8:      .long   0xa55a0000
  66 ENTRY(migor_sdram_leave_end)

/* [<][>][^][v][top][bottom][index][help] */