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

Heiko Schocher hs at denx.de
Thu Dec 10 10:35:14 CET 2015


Hello Wenyou,

Am 09.12.2015 um 08:38 schrieb Wenyou Yang:
> To avoid the duplicated code, add the PMC_PLLICPR init function.
>
> Signed-off-by: Wenyou Yang <wenyou.yang at atmel.com>
> ---
>
> 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(+)

Tested on the smartweb board, see log:
http://xeidos.ddns.net/buildbot/builders/smartweb_dfu/builds/29/steps/shell/logs/tbotlog

Tested-by: Heiko Schocher <hs at denx.de>

bye,
Heiko
>
> diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c
> index b8f8d48..885d6fe 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__ */
>

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list