[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