From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] ARM: AT91: pm: factorize standby function
Date: Wed, 16 Oct 2013 17:04:24 +0200 [thread overview]
Message-ID: <525EAAF8.8080005@linaro.org> (raw)
In-Reply-To: <1381933497-20262-1-git-send-email-plagnioj@jcrosoft.com>
On 10/16/2013 04:24 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
> Detect presence of second bank. So we do not need to have on function per SoC
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
> arch/arm/mach-at91/at91sam9260.c | 2 +-
> arch/arm/mach-at91/at91sam9261.c | 2 +-
> arch/arm/mach-at91/at91sam9263.c | 2 +-
> arch/arm/mach-at91/at91sam9g45.c | 2 +-
> arch/arm/mach-at91/at91sam9rl.c | 2 +-
> arch/arm/mach-at91/pm.h | 55 ++++++++++++++++++----------------------
> 6 files changed, 29 insertions(+), 36 deletions(-)
>
> diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
> index ffe9ce7..3b43d56 100644
> --- a/arch/arm/mach-at91/at91sam9260.c
> +++ b/arch/arm/mach-at91/at91sam9260.c
> @@ -353,7 +353,7 @@ static void __init at91sam9260_initialize(void)
> /* Register GPIO subsystem */
> at91_gpio_init(at91sam9260_gpio, 3);
>
> - at91_pm_set_standby(at91sam9_standby);
> + at91_pm_set_standby(at91sam9_sdram_standby);
> }
>
> /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c
> index 1edbb6f..a0857c3 100644
> --- a/arch/arm/mach-at91/at91sam9261.c
> +++ b/arch/arm/mach-at91/at91sam9261.c
> @@ -295,7 +295,7 @@ static void __init at91sam9261_initialize(void)
> /* Register GPIO subsystem */
> at91_gpio_init(at91sam9261_gpio, 3);
>
> - at91_pm_set_sandby(at91sam9_standby);
> + at91_pm_set_standby(at91sam9_sdram_standby);
> }
>
> /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
> index 8c81c89..103a95b 100644
> --- a/arch/arm/mach-at91/at91sam9263.c
> +++ b/arch/arm/mach-at91/at91sam9263.c
> @@ -332,7 +332,7 @@ static void __init at91sam9263_initialize(void)
> /* Register GPIO subsystem */
> at91_gpio_init(at91sam9263_gpio, 5);
>
> - at91_pm_set_standby(at91sam9263_standby);
> + at91_pm_set_standby(at91sam9_sdram_standby);
> }
>
> /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
> index 8460f52..f29731e 100644
> --- a/arch/arm/mach-at91/at91sam9g45.c
> +++ b/arch/arm/mach-at91/at91sam9g45.c
> @@ -381,7 +381,7 @@ static void __init at91sam9g45_initialize(void)
> /* Register GPIO subsystem */
> at91_gpio_init(at91sam9g45_gpio, 5);
>
> - at91_pm_set_standby(at91sam9g45_standby);
> + at91_pm_set_standby(at91_ddr_standby);
> }
>
> /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c
> index c7986e4..9e28f41 100644
> --- a/arch/arm/mach-at91/at91sam9rl.c
> +++ b/arch/arm/mach-at91/at91sam9rl.c
> @@ -298,7 +298,7 @@ static void __init at91sam9rl_initialize(void)
> /* Register GPIO subsystem */
> at91_gpio_init(at91sam9rl_gpio, 4);
>
> - at91_pm_set_standby(at91sam9_standby);
> + at91_pm_set_standby(at91sam9_sdram_standby);
> }
>
> /* --------------------------------------------------------------------
> diff --git a/arch/arm/mach-at91/pm.h b/arch/arm/mach-at91/pm.h
> index 76dd1a7..3ed190c 100644
> --- a/arch/arm/mach-at91/pm.h
> +++ b/arch/arm/mach-at91/pm.h
> @@ -49,16 +49,18 @@ static inline void at91rm9200_standby(void)
> /* We manage both DDRAM/SDRAM controllers, we need more than one value to
> * remember.
> */
> -static inline void at91sam9g45_standby(void)
> +static inline void at91_ddr_standby(void)
> {
> /* Those two values allow us to delay self-refresh activation
> * to the maximum. */
> - u32 lpr0, lpr1;
> - u32 saved_lpr0, saved_lpr1;
> + u32 lpr0, lpr1 = 0;
> + u32 saved_lpr0, saved_lpr1 = 0;
>
> - saved_lpr1 = at91_ramc_read(1, AT91_DDRSDRC_LPR);
> - lpr1 = saved_lpr1 & ~AT91_DDRSDRC_LPCB;
> - lpr1 |= AT91_DDRSDRC_LPCB_SELF_REFRESH;
> + if (at91_ramc_base[1]) {
> + saved_lpr1 = at91_ramc_read(1, AT91_DDRSDRC_LPR);
> + lpr1 = saved_lpr1 & ~AT91_DDRSDRC_LPCB;
> + lpr1 |= AT91_DDRSDRC_LPCB_SELF_REFRESH;
> + }
>
> saved_lpr0 = at91_ramc_read(0, AT91_DDRSDRC_LPR);
> lpr0 = saved_lpr0 & ~AT91_DDRSDRC_LPCB;
> @@ -66,25 +68,29 @@ static inline void at91sam9g45_standby(void)
>
> /* self-refresh mode now */
> at91_ramc_write(0, AT91_DDRSDRC_LPR, lpr0);
> - at91_ramc_write(1, AT91_DDRSDRC_LPR, lpr1);
> + if (at91_ramc_base[1])
> + at91_ramc_write(1, AT91_DDRSDRC_LPR, lpr1);
>
> cpu_do_idle();
>
> at91_ramc_write(0, AT91_DDRSDRC_LPR, saved_lpr0);
> - at91_ramc_write(1, AT91_DDRSDRC_LPR, saved_lpr1);
> + if (at91_ramc_base[1])
> + at91_ramc_write(1, AT91_DDRSDRC_LPR, saved_lpr1);
> }
>
> /* We manage both DDRAM/SDRAM controllers, we need more than one value to
> * remember.
> */
> -static inline void at91sam9263_standby(void)
> +static inline void at91sam9_sdram_standby(void)
> {
> - u32 lpr0, lpr1;
> - u32 saved_lpr0, saved_lpr1;
> + u32 lpr0, lpr1 = 0;
> + u32 saved_lpr0, saved_lpr1 = 0;
>
> - saved_lpr1 = at91_ramc_read(1, AT91_SDRAMC_LPR);
> - lpr1 = saved_lpr1 & ~AT91_SDRAMC_LPCB;
> - lpr1 |= AT91_SDRAMC_LPCB_SELF_REFRESH;
> + if (at91_ramc_base[1]) {
> + 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;
> @@ -92,27 +98,14 @@ static inline void at91sam9263_standby(void)
>
> /* self-refresh mode now */
> at91_ramc_write(0, AT91_SDRAMC_LPR, lpr0);
> - at91_ramc_write(1, AT91_SDRAMC_LPR, lpr1);
> + if (at91_ramc_base[1])
> + 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)
> -{
> - u32 saved_lpr, lpr;
> -
> - saved_lpr = at91_ramc_read(0, AT91_SDRAMC_LPR);
> -
> - lpr = saved_lpr & ~AT91_SDRAMC_LPCB;
> - at91_ramc_write(0, AT91_SDRAMC_LPR, lpr |
> - AT91_SDRAMC_LPCB_SELF_REFRESH);
> -
> - cpu_do_idle();
> -
> - at91_ramc_write(0, AT91_SDRAMC_LPR, saved_lpr);
> + if (at91_ramc_base[1])
> + at91_ramc_write(1, AT91_SDRAMC_LPR, saved_lpr1);
> }
>
> #endif
>
--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
next prev parent reply other threads:[~2013-10-16 15:04 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-15 9:41 [PATCH V4 1/2] ARM: at91: cpuidle: convert to platform driver Daniel Lezcano
2013-10-15 9:41 ` Daniel Lezcano
2013-10-15 9:41 ` [PATCH V4 2/2] ARM: at91: cpuidle: Move driver to drivers/cpuidle Daniel Lezcano
2013-10-15 9:41 ` Daniel Lezcano
2013-10-16 14:24 ` [PATCH 1/2] ARM: AT91: pm: factorize standby function Jean-Christophe PLAGNIOL-VILLARD
2013-10-16 14:24 ` [PATCH 2/2] ARM: AT91: DT: pm: select ram controller standby based on DT Jean-Christophe PLAGNIOL-VILLARD
2013-10-16 15:04 ` Daniel Lezcano [this message]
2013-10-16 15:48 ` [PATCH 1/2] ARM: AT91: pm: factorize standby function Jean-Christophe PLAGNIOL-VILLARD
2013-10-16 16:04 ` Daniel Lezcano
2013-10-16 16:07 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-16 16:25 ` [PATCH V4 1/2] ARM: at91: cpuidle: convert to platform driver Nicolas Ferre
2013-10-16 16:25 ` Nicolas Ferre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=525EAAF8.8080005@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.