aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRanjani Vaidyanathan <ra5478@freescale.com>2011-11-15 16:59:38 -0600
committerEric Miao <eric.miao@linaro.org>2011-12-01 11:36:34 +0800
commitaa3e42d091076bc46077413b9b7848915cfa6a93 (patch)
treede7923c326283dfc05cea3d6aa9739d74b0ec063 /arch
parent014e8d0184878426344e007db97b34a6583e52a6 (diff)
ENGR00162318: MX6: Donot power down PLL when PLL is disabled
Relocking of PLL sometimes takes longer than 1msec when PLL is enabled after a power down. The kernel panics if the PLL is not locked in 1ms. Max time expected by HW is only 500us. Workaround is to disable the output of the PLL and set it in bypass mode when its output is not being used. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx6/clock.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/arch/arm/mach-mx6/clock.c b/arch/arm/mach-mx6/clock.c
index d9d9ce91d79..01469475b8a 100644
--- a/arch/arm/mach-mx6/clock.c
+++ b/arch/arm/mach-mx6/clock.c
@@ -62,7 +62,7 @@ static struct clk usdhc3_clk;
static struct cpu_op *cpu_op_tbl;
static int cpu_op_nr;
-#define SPIN_DELAY 1000000 /* in nanoseconds */
+#define SPIN_DELAY 1200000 /* in nanoseconds */
#define AUDIO_VIDEO_MIN_CLK_FREQ 650000000
#define AUDIO_VIDEO_MAX_CLK_FREQ 1300000000
@@ -407,13 +407,8 @@ static void _clk_pll_disable(struct clk *clk)
reg = __raw_readl(pllbase);
reg |= ANADIG_PLL_BYPASS;
- reg |= ANADIG_PLL_POWER_DOWN;
+ reg &= ~ANADIG_PLL_ENABLE;
- /* The 480MHz PLLs, pll3 & pll7, have the opposite
- * definition for power bit.
- */
- if (clk == &pll3_usb_otg_main_clk || clk == &pll7_usb_host_main_clk)
- reg &= ~ANADIG_PLL_POWER_DOWN;
__raw_writel(reg, pllbase);
}