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 <[email protected]>
---

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 <[email protected]>

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
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to