Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 374169
b: refs/heads/master
c: f5fa409
h: refs/heads/master
i:
  374167: b4979ed
v: v3
  • Loading branch information
Arnd Bergmann authored and Nicolas Ferre committed Apr 18, 2013
1 parent ddc9c4f commit d4c3d4b
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 13ab6aeb49663b0ca0f0eed3560fbaecacf4858f
refs/heads/master: f5fa4098c3fcc0e504fbc0682dccd331dbbcf197
2 changes: 2 additions & 0 deletions trunk/arch/arm/mach-at91/cpuidle.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ static int at91_enter_idle(struct cpuidle_device *dev,
at91rm9200_standby();
else if (cpu_is_at91sam9g45())
at91sam9g45_standby();
else if (cpu_is_at91sam9263())
at91sam9263_standby();
else
at91sam9_standby();

Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/arm/mach-at91/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,8 @@ static int at91_pm_enter(suspend_state_t state)
at91rm9200_standby();
else if (cpu_is_at91sam9g45())
at91sam9g45_standby();
else if (cpu_is_at91sam9263())
at91sam9263_standby();
else
at91sam9_standby();
break;
Expand Down
30 changes: 24 additions & 6 deletions trunk/arch/arm/mach-at91/pm.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,31 @@ static inline void at91sam9g45_standby(void)
at91_ramc_write(1, AT91_DDRSDRC_LPR, saved_lpr1);
}

#ifdef CONFIG_SOC_AT91SAM9263
/*
* FIXME either or both the SDRAM controllers (EB0, EB1) might be in use;
* handle those cases both here and in the Suspend-To-RAM support.
/* We manage both DDRAM/SDRAM controllers, we need more than one value to
* remember.
*/
#warning Assuming EB1 SDRAM controller is *NOT* used
#endif
static inline void at91sam9263_standby(void)
{
u32 lpr0, lpr1;
u32 saved_lpr0, saved_lpr1;

saved_lpr1 = at91_ramc_read(1, AT91_SDRAMC_LPR);
lpr1 = saved_lpr1 & ~AT91_SDRAMC_LPCB;
lpr1 |= AT91_SDRAMC_LPCB_SELF_REFRESH;

saved_lpr0 = at91_ramc_read(0, AT91_SDRAMC_LPR);
lpr0 = saved_lpr0 & ~AT91_SDRAMC_LPCB;
lpr0 |= AT91_SDRAMC_LPCB_SELF_REFRESH;

/* self-refresh mode now */
at91_ramc_write(0, AT91_SDRAMC_LPR, lpr0);
at91_ramc_write(1, AT91_SDRAMC_LPR, lpr1);

cpu_do_idle();

at91_ramc_write(0, AT91_SDRAMC_LPR, saved_lpr0);
at91_ramc_write(1, AT91_SDRAMC_LPR, saved_lpr1);
}

static inline void at91sam9_standby(void)
{
Expand Down

0 comments on commit d4c3d4b

Please sign in to comment.