All of lore.kernel.org
 help / color / mirror / Atom feed
From: nsekhar@ti.com (Sekhar Nori)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: davinci: turn off DDR PHY when entering deep sleep
Date: Thu, 24 May 2012 23:11:09 +0530	[thread overview]
Message-ID: <4FBE72B5.2000106@ti.com> (raw)
In-Reply-To: <CAM8FrKJijXr1nJFhJZDSufHmfRQXL1RPwUA7OsSTVAiGPhECuA@mail.gmail.com>

Hi Marcus,

On 5/24/2012 5:16 PM, Marcus Folkesson wrote:

>>> diff --git a/arch/arm/mach-davinci/sleep.S b/arch/arm/mach-davinci/sleep.S
>>> index 5f1e045..30713b2 100644
>>> --- a/arch/arm/mach-davinci/sleep.S
>>> +++ b/arch/arm/mach-davinci/sleep.S
>>> @@ -57,6 +57,11 @@ ENTRY(davinci_cpu_suspend)
>>>
>>>       ldmia   r0, {r0-r4}
>>>
>>> +     /* Turn PHY off */
>>> +     ldr     ip, [r0, #DDR2_DRPHYC1R_OFFSET]
>>> +     orr     ip, ip, #DDR_PWRDNEN_BIT
>>> +     str     ip, [r0, #DDR2_DRPHYC1R_OFFSET]
>>
>> Current TRM (section 14.2.13.1) specifies that this bit be set during
>> DDR initialization sequence itself (done in UBL or U-Boot/SPL). I am
>> checking with folks from the TI design team on whether it can be done
>> later on as part of the DeepSleep sequence.
>>
>> It looks like IOPWRDN bit in VTPIO_CTL also needs to be set for this
>> configuration take effect. You probably did not have to do it because
>> the bootloader you are using already has this set?
>>
>> How much testing has this patch undergone? Have you tested it across
>> multiple suspend-resume cycles? How much does the power consumed by DDR
>> PHY go down by (and which type of DDR)?
> 
> You are right.
> 
> I now see that it is possible to set all those bits in the bootloader
> and let the PHY automatically go down in idle.
> This patch is therefore unnecessary.

It will be great if you can check if the current U-Boot/SPL for AM18x
sets these bits as part of the DDR initialization and if not, submit a
patch to U-Boot list for that?

BTW, I am yet to hear from the designers on whether this can be done
outside of DDR initialization step. If they confirm this can be done, it
will be useful to take this patch in to minimize the bootloader dependency.

Thanks,
Sekhar

WARNING: multiple messages have this Message-ID (diff)
From: Sekhar Nori <nsekhar@ti.com>
To: Marcus Folkesson <marcus.folkesson@gmail.com>
Cc: Kevin Hilman <khilman@ti.com>,
	Russell King <linux@arm.linux.org.uk>,
	Nicolas Pitre <nicolas.pitre@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ARM: davinci: turn off DDR PHY when entering deep sleep
Date: Thu, 24 May 2012 23:11:09 +0530	[thread overview]
Message-ID: <4FBE72B5.2000106@ti.com> (raw)
In-Reply-To: <CAM8FrKJijXr1nJFhJZDSufHmfRQXL1RPwUA7OsSTVAiGPhECuA@mail.gmail.com>

Hi Marcus,

On 5/24/2012 5:16 PM, Marcus Folkesson wrote:

>>> diff --git a/arch/arm/mach-davinci/sleep.S b/arch/arm/mach-davinci/sleep.S
>>> index 5f1e045..30713b2 100644
>>> --- a/arch/arm/mach-davinci/sleep.S
>>> +++ b/arch/arm/mach-davinci/sleep.S
>>> @@ -57,6 +57,11 @@ ENTRY(davinci_cpu_suspend)
>>>
>>>       ldmia   r0, {r0-r4}
>>>
>>> +     /* Turn PHY off */
>>> +     ldr     ip, [r0, #DDR2_DRPHYC1R_OFFSET]
>>> +     orr     ip, ip, #DDR_PWRDNEN_BIT
>>> +     str     ip, [r0, #DDR2_DRPHYC1R_OFFSET]
>>
>> Current TRM (section 14.2.13.1) specifies that this bit be set during
>> DDR initialization sequence itself (done in UBL or U-Boot/SPL). I am
>> checking with folks from the TI design team on whether it can be done
>> later on as part of the DeepSleep sequence.
>>
>> It looks like IOPWRDN bit in VTPIO_CTL also needs to be set for this
>> configuration take effect. You probably did not have to do it because
>> the bootloader you are using already has this set?
>>
>> How much testing has this patch undergone? Have you tested it across
>> multiple suspend-resume cycles? How much does the power consumed by DDR
>> PHY go down by (and which type of DDR)?
> 
> You are right.
> 
> I now see that it is possible to set all those bits in the bootloader
> and let the PHY automatically go down in idle.
> This patch is therefore unnecessary.

It will be great if you can check if the current U-Boot/SPL for AM18x
sets these bits as part of the DDR initialization and if not, submit a
patch to U-Boot list for that?

BTW, I am yet to hear from the designers on whether this can be done
outside of DDR initialization step. If they confirm this can be done, it
will be useful to take this patch in to minimize the bootloader dependency.

Thanks,
Sekhar

  reply	other threads:[~2012-05-24 17:41 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <marcus.folkesson@gmail.com>
2012-05-10 17:52 ` [PATCH] ARM: davinci: turn off DDR PHY when entering deep sleep Marcus Folkesson
2012-05-10 17:52   ` Marcus Folkesson
2012-05-21 17:38   ` Sekhar Nori
2012-05-21 17:38     ` Sekhar Nori
2012-05-24 11:46     ` Marcus Folkesson
2012-05-24 11:46       ` Marcus Folkesson
2012-05-24 17:41       ` Sekhar Nori [this message]
2012-05-24 17:41         ` Sekhar Nori
2018-02-09 19:27 ` [PATCH 0/7] watchdog: make use of timeout-secs Marcus Folkesson
2018-02-09 19:27   ` Marcus Folkesson
2018-02-09 19:27   ` Marcus Folkesson
2018-02-09 19:27   ` Marcus Folkesson
2018-02-09 19:27   ` [PATCH 1/7] watchdog: sama5d4: make use of timeout-secs provided in devicetree Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:32     ` Marcus Folkesson
2018-02-09 19:32       ` Marcus Folkesson
2018-02-09 19:32       ` Marcus Folkesson
2018-02-09 19:32       ` Marcus Folkesson
2018-02-09 22:38     ` Guenter Roeck
2018-02-09 22:38       ` Guenter Roeck
2018-02-09 22:38       ` Guenter Roeck
2018-02-09 22:38       ` Guenter Roeck
2018-02-11 17:38     ` [1/7] " Guenter Roeck
2018-02-11 17:38       ` Guenter Roeck
2018-02-11 17:38       ` Guenter Roeck
2018-02-11 17:38       ` Guenter Roeck
2018-02-09 19:27   ` [PATCH 2/7] watchdog: sunxi: allow setting timeout " Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 22:39     ` Guenter Roeck
2018-02-09 22:39       ` Guenter Roeck
2018-02-09 22:39       ` Guenter Roeck
2018-02-09 22:39       ` Guenter Roeck
2018-02-09 19:27   ` [PATCH 3/7] watchdog: sirfsoc: " Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 22:40     ` Guenter Roeck
2018-02-09 22:40       ` Guenter Roeck
2018-02-09 22:40       ` Guenter Roeck
2018-02-09 19:27   ` [PATCH 4/7] watchdog: pnx4008: make use of timeout-secs provided " Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 22:41     ` Guenter Roeck
2018-02-09 22:41       ` Guenter Roeck
2018-02-09 22:41       ` Guenter Roeck
2018-02-09 22:41       ` Guenter Roeck
2018-02-09 22:43     ` Guenter Roeck
2018-02-09 22:43       ` Guenter Roeck
2018-02-09 22:43       ` Guenter Roeck
2018-02-09 22:43       ` Guenter Roeck
2018-02-09 19:27   ` [PATCH 5/7] watchdog: mtk: allow setting timeout " Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 22:43     ` Guenter Roeck
2018-02-09 22:43       ` Guenter Roeck
2018-02-09 22:43       ` Guenter Roeck
2018-02-09 22:43       ` Guenter Roeck
2018-02-09 19:27   ` [PATCH 6/7] watchdog: meson: " Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 22:48     ` Guenter Roeck
2018-02-09 22:48       ` Guenter Roeck
2018-02-09 22:48       ` Guenter Roeck
2018-02-09 22:48       ` Guenter Roeck
2018-02-09 23:19       ` Alexandre Belloni
2018-02-09 23:19         ` Alexandre Belloni
2018-02-09 23:19         ` Alexandre Belloni
2018-02-10  0:04         ` Guenter Roeck
2018-02-10  0:04           ` Guenter Roeck
2018-02-10  0:04           ` Guenter Roeck
2018-02-10  0:04           ` Guenter Roeck
2018-02-09 19:27   ` [PATCH 7/7] watchdog: coh901327: make use of timeout-secs provided " Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 19:27     ` Marcus Folkesson
2018-02-09 22:52     ` Guenter Roeck
2018-02-09 22:52       ` Guenter Roeck
2018-02-09 22:52       ` Guenter Roeck
2018-02-09 22:52       ` Guenter Roeck
2018-02-10  8:54       ` Marcus Folkesson
2018-02-10  8:54         ` Marcus Folkesson
2018-02-10  8:54         ` Marcus Folkesson
2018-02-10  8:54         ` Marcus Folkesson

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=4FBE72B5.2000106@ti.com \
    --to=nsekhar@ti.com \
    --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.