[U-Boot] [PATCH] i.MX28: bug fixes in PMU configuration code
Marek Vasut
marex at denx.de
Wed Jun 27 14:36:54 CEST 2012
Dear Stathis Voukelatos,
> Fixed some typos in the i.MX28 PMU code that sets up the VDDD
> and VDDIO power rails. In addition the VDDD and VDDIO brownout
> offset values should be divided by a step size before being
> programmed to the corresponding registers.
>
> Signed-off-by: Stathis Voukelatos <stathis.voukelatos at linn.co.uk>
> Cc: Stefano Babic <sbabic at denx.de>
> Cc: Marek Vasut <marek.vasut at gmail.com>
Will test it ASAP. I should be getting new board by next week, so I'll test-
drive it on that one too.
Thanks for finding those!
> ---
> arch/arm/cpu/arm926ejs/mx28/spl_power_init.c | 12 ++++++------
> 1 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
> b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c index 4b09b0c..cc71af8
> 100644
> --- a/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
> +++ b/arch/arm/cpu/arm926ejs/mx28/spl_power_init.c
> @@ -716,7 +716,7 @@ int mx28_get_vddio_power_source_off(void)
> tmp = readl(&power_regs->hw_power_vddioctrl);
> if (tmp & POWER_VDDIOCTRL_DISABLE_FET) {
> if ((tmp & POWER_VDDIOCTRL_LINREG_OFFSET_MASK) ==
> - POWER_VDDDCTRL_LINREG_OFFSET_0STEPS) {
> + POWER_VDDIOCTRL_LINREG_OFFSET_0STEPS) {
> return 1;
> }
> }
> @@ -724,7 +724,7 @@ int mx28_get_vddio_power_source_off(void)
> if (!(readl(&power_regs->hw_power_5vctrl) &
> POWER_5VCTRL_ENABLE_DCDC)) {
> if ((tmp & POWER_VDDIOCTRL_LINREG_OFFSET_MASK) ==
> - POWER_VDDDCTRL_LINREG_OFFSET_0STEPS) {
> + POWER_VDDIOCTRL_LINREG_OFFSET_0STEPS) {
> return 1;
> }
> }
> @@ -772,7 +772,7 @@ void mx28_power_set_vddio(uint32_t new_target, uint32_t
> new_brownout) uint32_t cur_target, diff, bo_int = 0;
> uint32_t powered_by_linreg = 0;
>
> - new_brownout = new_target - new_brownout;
> + new_brownout = (new_target - new_brownout + 25) / 50;
>
> cur_target = readl(&power_regs->hw_power_vddioctrl);
> cur_target &= POWER_VDDIOCTRL_TRG_MASK;
> @@ -858,8 +858,8 @@ void mx28_power_set_vddio(uint32_t new_target, uint32_t
> new_brownout) }
>
> clrsetbits_le32(&power_regs->hw_power_vddioctrl,
> - POWER_VDDDCTRL_BO_OFFSET_MASK,
> - new_brownout << POWER_VDDDCTRL_BO_OFFSET_OFFSET);
> + POWER_VDDIOCTRL_BO_OFFSET_MASK,
> + new_brownout << POWER_VDDIOCTRL_BO_OFFSET_OFFSET);
> }
>
> void mx28_power_set_vddd(uint32_t new_target, uint32_t new_brownout)
> @@ -869,7 +869,7 @@ void mx28_power_set_vddd(uint32_t new_target, uint32_t
> new_brownout) uint32_t cur_target, diff, bo_int = 0;
> uint32_t powered_by_linreg = 0;
>
> - new_brownout = new_target - new_brownout;
> + new_brownout = (new_target - new_brownout + 12) / 25;
>
> cur_target = readl(&power_regs->hw_power_vdddctrl);
> cur_target &= POWER_VDDDCTRL_TRG_MASK;
Best regards,
Marek Vasut
More information about the U-Boot
mailing list