[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