diff mbox

[U-Boot,1/2] ARM: mxs: Enable DCDC converter for battery boot

Message ID 1382959771-8983-1-git-send-email-marex@denx.de
State Accepted
Delegated to: Stefano Babic
Headers show

Commit Message

Marek Vasut Oct. 28, 2013, 11:29 a.m. UTC
In case the board detected sufficient voltage for battery boot,
make sure the DCDC converter is ON and the board is not running
only from linregs, otherwise an instability will be observed.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/cpu/arm926ejs/mxs/spl_power_init.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Fabio Estevam Oct. 29, 2013, 1:46 a.m. UTC | #1
Hi Marek,

On Mon, Oct 28, 2013 at 9:29 AM, Marek Vasut <marex@denx.de> wrote:
> In case the board detected sufficient voltage for battery boot,
> make sure the DCDC converter is ON and the board is not running
> only from linregs, otherwise an instability will be observed.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> ---
>  arch/arm/cpu/arm926ejs/mxs/spl_power_init.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c b/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> index 8ea45be..d25019a 100644
> --- a/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> +++ b/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> @@ -654,6 +654,8 @@ static void mxs_batt_boot(void)
>         clrsetbits_le32(&power_regs->hw_power_5vctrl,
>                 POWER_5VCTRL_CHARGE_4P2_ILIMIT_MASK,
>                 0x8 << POWER_5VCTRL_CHARGE_4P2_ILIMIT_OFFSET);
> +
> +       mxs_power_enable_4p2();

Shouldn't this be conditional?

#if defined CONFIG_MXS_ENABLE_4P2
mxs_power_enable_4p2();
#endif

Then the boards that need this power supply enable
CONFIG_MXS_ENABLE_4P2 in its config file.

Regards,

Fabio Estevam
Marek Vasut Oct. 29, 2013, 3:28 p.m. UTC | #2
Dear Fabio Estevam,

> Hi Marek,
> 
> On Mon, Oct 28, 2013 at 9:29 AM, Marek Vasut <marex@denx.de> wrote:
> > In case the board detected sufficient voltage for battery boot,
> > make sure the DCDC converter is ON and the board is not running
> > only from linregs, otherwise an instability will be observed.
> > 
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Stefano Babic <sbabic@denx.de>
> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> > ---
> > 
> >  arch/arm/cpu/arm926ejs/mxs/spl_power_init.c | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> > b/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c index 8ea45be..d25019a
> > 100644
> > --- a/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> > +++ b/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> > @@ -654,6 +654,8 @@ static void mxs_batt_boot(void)
> > 
> >         clrsetbits_le32(&power_regs->hw_power_5vctrl,
> >         
> >                 POWER_5VCTRL_CHARGE_4P2_ILIMIT_MASK,
> >                 0x8 << POWER_5VCTRL_CHARGE_4P2_ILIMIT_OFFSET);
> > 
> > +
> > +       mxs_power_enable_4p2();
> 
> Shouldn't this be conditional?
> 
> #if defined CONFIG_MXS_ENABLE_4P2
> mxs_power_enable_4p2();
> #endif
> 
> Then the boards that need this power supply enable
> CONFIG_MXS_ENABLE_4P2 in its config file.

No, we want to start the DCDC converter unconditionally when running on battery 
power to increase efficiency.

Best regards,
Marek Vasut
Stefano Babic Oct. 31, 2013, 5:02 p.m. UTC | #3
On 28/10/2013 12:29, Marek Vasut wrote:
> In case the board detected sufficient voltage for battery boot,
> make sure the DCDC converter is ON and the board is not running
> only from linregs, otherwise an instability will be observed.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> ---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic
Michael Thalmeier Oct. 23, 2014, 7:07 a.m. UTC | #4
Hi Marek, and Fabio

> > Shouldn't this be conditional?
> > 
> > #if defined CONFIG_MXS_ENABLE_4P2
> > mxs_power_enable_4p2();
> > #endif
> > 
> > Then the boards that need this power supply enable
> > CONFIG_MXS_ENABLE_4P2 in its config file.
> 
> No, we want to start the DCDC converter unconditionally when running on
battery 
> power to increase efficiency.
> 

I just stumbled upon this, because our board does not boot reliably any more
with this change.
Perhaps we have a special situation in that our board is powered via
DCDC_BATT only by an external power source (no battery).

I am currently working on creating a patch to only conditionally enabling
this feature, or to enable it by default and have it conditionally be
disabled for boards that are known to have problems with this.

Which approach seems to be more feasible to you?

Regards Michael
Fabio Estevam Oct. 25, 2014, 9:43 p.m. UTC | #5
Hi Michael,

On Thu, Oct 23, 2014 at 5:07 AM, Michael Thalmeier
<michael.thalmeier@hale.at> wrote:
> Hi Marek, and Fabio
>
>> > Shouldn't this be conditional?
>> >
>> > #if defined CONFIG_MXS_ENABLE_4P2
>> > mxs_power_enable_4p2();
>> > #endif
>> >
>> > Then the boards that need this power supply enable
>> > CONFIG_MXS_ENABLE_4P2 in its config file.
>>
>> No, we want to start the DCDC converter unconditionally when running on
> battery
>> power to increase efficiency.
>>
>
> I just stumbled upon this, because our board does not boot reliably any more
> with this change.
> Perhaps we have a special situation in that our board is powered via
> DCDC_BATT only by an external power source (no battery).
>
> I am currently working on creating a patch to only conditionally enabling
> this feature, or to enable it by default and have it conditionally be
> disabled for boards that are known to have problems with this.
>
> Which approach seems to be more feasible to you?

Initially I proposed something like:

#if defined CONFIG_MXS_ENABLE_4P2
mxs_power_enable_4p2();
#endif

,but Marek was not happy about it, so let's wait for his thoughts. Marek?

Regards,

Fabio Estevam
Marek Vasut Oct. 25, 2014, 10:42 p.m. UTC | #6
On Saturday, October 25, 2014 at 11:43:05 PM, Fabio Estevam wrote:
> Hi Michael,
> 
> On Thu, Oct 23, 2014 at 5:07 AM, Michael Thalmeier
> 
> <michael.thalmeier@hale.at> wrote:
> > Hi Marek, and Fabio
> > 
> >> > Shouldn't this be conditional?
> >> > 
> >> > #if defined CONFIG_MXS_ENABLE_4P2
> >> > mxs_power_enable_4p2();
> >> > #endif
> >> > 
> >> > Then the boards that need this power supply enable
> >> > CONFIG_MXS_ENABLE_4P2 in its config file.
> >> 
> >> No, we want to start the DCDC converter unconditionally when running on
> > 
> > battery
> > 
> >> power to increase efficiency.
> > 
> > I just stumbled upon this, because our board does not boot reliably any
> > more with this change.
> > Perhaps we have a special situation in that our board is powered via
> > DCDC_BATT only by an external power source (no battery).
> > 
> > I am currently working on creating a patch to only conditionally enabling
> > this feature, or to enable it by default and have it conditionally be
> > disabled for boards that are known to have problems with this.
> > 
> > Which approach seems to be more feasible to you?
> 
> Initially I proposed something like:
> 
> #if defined CONFIG_MXS_ENABLE_4P2
> mxs_power_enable_4p2();
> #endif
> 
> ,but Marek was not happy about it, so let's wait for his thoughts. Marek?

Can you share the schematic of your power distribution network ? I would like
to check a couple of things in there. I suspect there is a common problem with
MX23 and MX28 based designs discovered by Juha and I'd like to make sure you
don't suffer from it.

It's OK to send the schematic off-list.

Thanks!

Best regards,
Marek Vasut
diff mbox

Patch

diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c b/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
index 8ea45be..d25019a 100644
--- a/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
+++ b/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
@@ -654,6 +654,8 @@  static void mxs_batt_boot(void)
 	clrsetbits_le32(&power_regs->hw_power_5vctrl,
 		POWER_5VCTRL_CHARGE_4P2_ILIMIT_MASK,
 		0x8 << POWER_5VCTRL_CHARGE_4P2_ILIMIT_OFFSET);
+
+	mxs_power_enable_4p2();
 }
 
 /**