[U-Boot] [U-Boot, v3, 1/3] ARM: at91: clock: add PMC_PLLICPR init function

Andreas Bießmann andreas.devel at googlemail.com
Thu Feb 18 21:26:30 CET 2016


On Tue, Feb 02, 2016 at 12:46:12PM +0800, Wenyou Yang wrote:
> To avoid the duplicated code, add the PMC_PLLICPR init function.
> 
> Signed-off-by: Wenyou Yang <wenyou.yang at atmel.com>
> Tested-by: Heiko Schocher <hs at denx.de>

Reviewed-by: Andreas Bießmann <andreas.devel at googlemail.com>

> ---
> 
> Changes in v3: None
> Changes in v2:
>  - move at91_pllicpr_init() definition to the common file, clock.c.
>  - fix checkpatch errors.
> 
>  arch/arm/mach-at91/clock.c                 |    7 +++++++
>  arch/arm/mach-at91/include/mach/at91_pmc.h |    7 +++++++
>  arch/arm/mach-at91/include/mach/clk.h      |    1 +
>  3 files changed, 15 insertions(+)
> 
> diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c
> index 6d115c9..8a6149e 100644
> --- a/arch/arm/mach-at91/clock.c
> +++ b/arch/arm/mach-at91/clock.c
> @@ -118,3 +118,10 @@ void at91_usb_clk_init(u32 value)
>  
>  	writel(value, &pmc->usb);
>  }
> +
> +void at91_pllicpr_init(u32 icpr)
> +{
> +	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
> +
> +	writel(icpr, &pmc->pllicpr);
> +}
> diff --git a/arch/arm/mach-at91/include/mach/at91_pmc.h b/arch/arm/mach-at91/include/mach/at91_pmc.h
> index eb40194..7684f09 100644
> --- a/arch/arm/mach-at91/include/mach/at91_pmc.h
> +++ b/arch/arm/mach-at91/include/mach/at91_pmc.h
> @@ -246,4 +246,11 @@ typedef struct at91_pmc {
>  #define		AT91_PMC_GCKRDY		(1 << 24)
>  
>  #define		AT91_PMC_PROTKEY	0x504d4301	/* Activation Code */
> +
> +/* PLL Charge Pump Current Register (PMC_PLLICPR) */
> +#define AT91_PMC_ICP_PLLA(x)		(((x) & 0x3) << 0)
> +#define AT91_PMC_IPLL_PLLA(x)		(((x) & 0x7) << 8)
> +#define AT91_PMC_ICP_PLLU(x)		(((x) & 0x3) << 16)
> +#define AT91_PMC_IVCO_PLLU(x)		(((x) & 0x3) << 24)
> +
>  #endif
> diff --git a/arch/arm/mach-at91/include/mach/clk.h b/arch/arm/mach-at91/include/mach/clk.h
> index 64dec52..8577c74 100644
> --- a/arch/arm/mach-at91/include/mach/clk.h
> +++ b/arch/arm/mach-at91/include/mach/clk.h
> @@ -135,5 +135,6 @@ int at91_upll_clk_disable(void);
>  void at91_usb_clk_init(u32 value);
>  int at91_pllb_clk_enable(u32 pllbr);
>  int at91_pllb_clk_disable(void);
> +void at91_pllicpr_init(u32 icpr);
>  
>  #endif /* __ASM_ARM_ARCH_CLK_H__ */


More information about the U-Boot mailing list