summaryrefslogtreecommitdiff
path: root/arch/arm/mach-at91/armv7
diff options
context:
space:
mode:
authorWenyou Yang <wenyou.yang@atmel.com>2016-04-11 16:41:31 +0800
committerAndreas Bießmann <andreas@biessmann.org>2016-05-24 08:08:36 +0200
commit4adf6a715796de4f0e858e0246c3abf5e3c118f3 (patch)
tree7e92bdfef1df7c5cf29d973ca67e5d25765d28ff /arch/arm/mach-at91/armv7
parenta9c89bf1669cbeb7bce6ae7a626eb9f2120af73f (diff)
ARM: at91: clock: fix the GCK's clock source
Before enabling a generated clock whose source is from the UPLL clock, check and enable the UPLL clock. Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
Diffstat (limited to 'arch/arm/mach-at91/armv7')
-rw-r--r--arch/arm/mach-at91/armv7/clock.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/armv7/clock.c b/arch/arm/mach-at91/armv7/clock.c
index 81e9f69c94..27372b3f31 100644
--- a/arch/arm/mach-at91/armv7/clock.c
+++ b/arch/arm/mach-at91/armv7/clock.c
@@ -162,6 +162,11 @@ int at91_enable_periph_generated_clk(u32 id, u32 clk_source, u32 div)
if (div > 0xff)
return -EINVAL;
+ if (clk_source == GCK_CSS_UPLL_CLK) {
+ if (at91_upll_clk_enable())
+ return -ENODEV;
+ }
+
writel(id, &pmc->pcr);
regval = readl(&pmc->pcr);
regval &= ~AT91_PMC_PCR_GCKCSS;