From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Thu, 10 Dec 2015 10:35:14 +0100 Subject: [U-Boot] [PATCH v2 1/3] ARM: at91: clock: add PMC_PLLICPR init function In-Reply-To: <1449646720-30057-2-git-send-email-wenyou.yang@atmel.com> References: <1449646720-30057-1-git-send-email-wenyou.yang@atmel.com> <1449646720-30057-2-git-send-email-wenyou.yang@atmel.com> Message-ID: <56694752.3080209@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > > 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 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