[U-Boot] [PATCH] DaVinci DA8xx: fix set_cpu_clk_info()

Prabhakar Lad prabhakar.csengg at gmail.com
Sat Jul 28 09:19:55 CEST 2012


Hi Laurence,

Thanks for the patch. I have tested this patch, below are few comments.

On Fri, Jul 27, 2012 at 4:19 PM, Laurence Withers <lwithers at guralp.com> wrote:
> For the DA8xx family of SoCs, the set_cpu_clk_info() function was not
> initialising the DSP frequency, leading to 'bdinfo' command output such as:
>
>   [...snip...]
>   ARM frequency = 300 MHz
>   DSP frequency = -536870913 MHz
>   DDR frequency = 300 MHz
>
> This commit provides a separate implementation of set_cpu_clk_info() for
> the DA8xx SoCs that initialises the DSP frequency to zero (since
> currently the DSP is not enabled by U-Boot on any DA8xx platform). The
> separate implementation is justified because there is no common code
> between DA8xx and the other SoC families. It is now much easier to
> understand the flow of the two separate functions.
>
> Signed-off-by: Laurence Withers <lwithers at guralp.com>
> Cc: Tom Rini <trini at ti.com>
> Cc: Hadli, Manjunath <manjunath.hadli at ti.com>
> Cc: Heiko Schocher <hs at denx.de>
> ---
>  arch/arm/cpu/arm926ejs/davinci/cpu.c |   21 +++++++++++++--------
>  1 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm/cpu/arm926ejs/davinci/cpu.c b/arch/arm/cpu/arm926ejs/davinci/cpu.c
> index 6cb857a..4bdb08b 100644
> --- a/arch/arm/cpu/arm926ejs/davinci/cpu.c
> +++ b/arch/arm/cpu/arm926ejs/davinci/cpu.c
> @@ -117,6 +117,16 @@ int clk_get(enum davinci_clk_ids id)
>  out:
>         return pll_out;
>  }
> +
> +int set_cpu_clk_info(void)
> +{
> +       gd->bd->bi_arm_freq = clk_get(DAVINCI_ARM_CLKID) / 1000000;
> +       /* DDR PHY uses an x2 input clock */
> +       gd->bd->bi_ddr_freq = clk_get(0x10001) / 1000000;

     Can you define a macro for this 0x10001 ?

    With that change you can add my ACK:
Acked-by: Prabhakar Lad <prabhakar.lad at ti.com>

Thx,
--Prabhakar Lad

> +       gd->bd->bi_dsp_freq = 0;
> +       return 0;
> +}
> +
>  #else /* CONFIG_SOC_DA8XX */
>
>  static unsigned pll_div(volatile void *pllbase, unsigned offset)
> @@ -187,16 +197,9 @@ unsigned int davinci_clk_get(unsigned int div)
>         return pll_sysclk_mhz(DAVINCI_PLL_CNTRL0_BASE, div) * 1000000;
>  }
>  #endif
> -#endif /* !CONFIG_SOC_DA8XX */
>
>  int set_cpu_clk_info(void)
>  {
> -#ifdef CONFIG_SOC_DA8XX
> -       gd->bd->bi_arm_freq = clk_get(DAVINCI_ARM_CLKID) / 1000000;
> -       /* DDR PHY uses an x2 input clock */
> -       gd->bd->bi_ddr_freq = clk_get(0x10001) / 1000000;
> -#else
> -
>         unsigned int pllbase = DAVINCI_PLL_CNTRL0_BASE;
>  #if defined(CONFIG_SOC_DM365)
>         pllbase = DAVINCI_PLL_CNTRL1_BASE;
> @@ -215,10 +218,12 @@ int set_cpu_clk_info(void)
>         pllbase = DAVINCI_PLL_CNTRL0_BASE;
>  #endif
>         gd->bd->bi_ddr_freq = pll_sysclk_mhz(pllbase, DDR_PLLDIV) / 2;
> -#endif
> +
>         return 0;
>  }
>
> +#endif /* !CONFIG_SOC_DA8XX */
> +
>  /*
>   * Initializes on-chip ethernet controllers.
>   * to override, implement board_eth_init()
> --
> 1.7.2.5
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


More information about the U-Boot mailing list