[U-Boot] [PATCH] ARM: mxs: rename function that sets AUTO_RESTART flag

Marek Vasut marex at denx.de
Wed Jul 24 17:54:35 CEST 2013


Dear Hector Palacios,

> The AUTO_RESTART flag of HW_RTC_PERSISTENT0 register will
> power up the chip automatically 180ms after power down.
> This bit must be enabled by the boot loader to ensure the
> target can start upon hardware reset or watchdog reset
> even when powered from a battery.
> 
> Currently the function named 'mxs_power_clear_auto_restart()'
> is setting this flag although the 'clear' in its name suggest
> the opposite.
> 
> This patch renames the function to 'mxs_power_set_auto_restart()'
> and removes the comment about EVK revision A which was confusing
> because the function indeed was setting the flag.

Why? The comment seems fully valid to me.

> Signed-off-by: Hector Palacios <hector.palacios at digi.com>
> ---
>  arch/arm/cpu/arm926ejs/mxs/spl_power_init.c | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> b/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c index 5ee2d88..285ac79
> 100644
> --- a/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> +++ b/arch/arm/cpu/arm926ejs/mxs/spl_power_init.c
> @@ -52,7 +52,7 @@ static void mxs_power_clock2pll(void)
>  			CLKCTRL_CLKSEQ_BYPASS_CPU);
>  }
> 
> -static void mxs_power_clear_auto_restart(void)
> +static void mxs_power_set_auto_restart(void)
>  {
>  	struct mxs_rtc_regs *rtc_regs =
>  		(struct mxs_rtc_regs *)MXS_RTC_BASE;
> @@ -65,10 +65,7 @@ static void mxs_power_clear_auto_restart(void)
>  	while (readl(&rtc_regs->hw_rtc_ctrl) & RTC_CTRL_CLKGATE)
>  		;
> 
> -	/*
> -	 * Due to the hardware design bug of mx28 EVK-A
> -	 * we need to set the AUTO_RESTART bit.
> -	 */
> +	/* Do nothing if flag already set */

You're changing the behavior here and it's not documented. I see no point in 
this change while at it.

>  	if (readl(&rtc_regs->hw_rtc_persistent0) & RTC_PERSISTENT0_AUTO_RESTART)
>  		return;
> 
> @@ -903,7 +900,7 @@ void mxs_power_init(void)
>  		(struct mxs_power_regs *)MXS_POWER_BASE;
> 
>  	mxs_power_clock2xtal();
> -	mxs_power_clear_auto_restart();
> +	mxs_power_set_auto_restart();
>  	mxs_power_set_linreg();
>  	mxs_power_setup_5v_detect();

Best regards,
Marek Vasut


More information about the U-Boot mailing list