[U-Boot] [PATCH] i.MX28: Fix VDDIO and VDDA setup
Marek Vasut
marek.vasut at gmail.com
Tue Jan 31 12:38:04 CET 2012
> I tested both patch on my mx28evk. At least I cannot notice any
> missbehavior :-) Downloading the patched u-boot via USB recovery
> download still does not work.
Good, any improvements though?
>
> Marek, did you find any further mentionable difference between bootlets
> code and current u-boot implementation?
Not yet.
>
> Matthias
M
>
> On 31.01.2012 01:00, Marek Vasut wrote:
> > The DC power STS shouldn't be checked if booting off 5V supply.
> >
> > Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
> > Cc: Wolfgang Denk <wd at denx.de>
> > Cc: Detlev Zundel <dzu at denx.de>
> > Cc: Stefano Babic <sbabic at denx.de>
> > Cc: Robert Deliën <robert at delien.nl>
> > Cc: Fabio Estevam <festevam at gmail.com>
> > Cc: Matthias Fuchs <matthias.fuchs at esd.eu>
> > ---
> >
> > arch/arm/cpu/arm926ejs/mx28/spl_power_init.c | 16 ++++++++++++----
> > 1 files changed, 12 insertions(+), 4 deletions(-)
> >
> > Note: Guys, please give this a testrun. I think it might fix the issue
> > Robert was observing. I dug into the imx-bootlets and the bootrom
> > X-Files and found this paranormal piece of code. Adding it fixes the
> > boot issue on my crappy board.
> >
> > M
> >
> > diff --git a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
> > b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c index ee0f237..c6c25d9
> > 100644
> > --- a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
> > +++ b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
> > @@ -802,7 +802,9 @@ void mx28_power_set_vddio(uint32_t new_target,
> > uint32_t new_brownout)
> >
> > clrsetbits_le32(&power_regs->hw_power_vddioctrl,
> >
> > POWER_VDDIOCTRL_TRG_MASK, diff);
> >
> > - if (powered_by_linreg)
> > + if (powered_by_linreg ||
> > + (readl(&power_regs->hw_power_sts) &
> > + POWER_STS_VDD5V_GT_VDDIO))
> >
> > early_delay(1500);
> >
> > else {
> >
> > while (!(readl(&power_regs->hw_power_sts) &
> >
> > @@ -837,7 +839,9 @@ void mx28_power_set_vddio(uint32_t new_target,
> > uint32_t new_brownout)
> >
> > clrsetbits_le32(&power_regs->hw_power_vddioctrl,
> >
> > POWER_VDDIOCTRL_TRG_MASK, diff);
> >
> > - if (powered_by_linreg)
> > + if (powered_by_linreg ||
> > + (readl(&power_regs->hw_power_sts) &
> > + POWER_STS_VDD5V_GT_VDDIO))
> >
> > early_delay(1500);
> >
> > else {
> >
> > while (!(readl(&power_regs->hw_power_sts) &
> >
> > @@ -895,7 +899,9 @@ void mx28_power_set_vddd(uint32_t new_target,
> > uint32_t new_brownout)
> >
> > clrsetbits_le32(&power_regs->hw_power_vdddctrl,
> >
> > POWER_VDDDCTRL_TRG_MASK, diff);
> >
> > - if (powered_by_linreg)
> > + if (powered_by_linreg ||
> > + (readl(&power_regs->hw_power_sts) &
> > + POWER_STS_VDD5V_GT_VDDIO))
> >
> > early_delay(1500);
> >
> > else {
> >
> > while (!(readl(&power_regs->hw_power_sts) &
> >
> > @@ -930,7 +936,9 @@ void mx28_power_set_vddd(uint32_t new_target,
> > uint32_t new_brownout)
> >
> > clrsetbits_le32(&power_regs->hw_power_vdddctrl,
> >
> > POWER_VDDDCTRL_TRG_MASK, diff);
> >
> > - if (powered_by_linreg)
> > + if (powered_by_linreg ||
> > + (readl(&power_regs->hw_power_sts) &
> > + POWER_STS_VDD5V_GT_VDDIO))
> >
> > early_delay(1500);
> >
> > else {
> >
> > while (!(readl(&power_regs->hw_power_sts) &
More information about the U-Boot
mailing list