summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6/clock.c
diff options
context:
space:
mode:
authorTerry Lv <r65388@freescale.com>2012-03-09 11:25:31 +0800
committerTerry Lv <r65388@freescale.com>2012-03-13 15:40:16 +0800
commitbd6e7a4ef6b287dfe2f76567e5473a7423b6c0c5 (patch)
treecd4d3c0b00b6173f416c49866b1817ccac7b1e8b /arch/arm/mach-mx6/clock.c
parentafc29dea972ff6f4656f131bb60f334394d05509 (diff)
ENGR00176469-1: Improve the performance of MLB
Pll clock change to make pll clocked more stable. Signed-off-by: Terry Lv <r65388@freescale.com>
Diffstat (limited to 'arch/arm/mach-mx6/clock.c')
-rw-r--r--arch/arm/mach-mx6/clock.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/arch/arm/mach-mx6/clock.c b/arch/arm/mach-mx6/clock.c
index 813c55432d70..43d5bc86f490 100644
--- a/arch/arm/mach-mx6/clock.c
+++ b/arch/arm/mach-mx6/clock.c
@@ -1061,22 +1061,31 @@ static int _clk_pll_mlb_main_enable(struct clk *clk)
reg = __raw_readl(pllbase);
reg &= ~ANADIG_PLL_BYPASS;
- reg = 0x0da20000;
+ reg = 0x0da20800;
__raw_writel(reg, pllbase);
- /* Wait for PLL to lock */
- if (!WAIT(__raw_readl(pllbase) & ANADIG_PLL_LOCK,
- SPIN_DELAY))
- panic("pll enable failed\n");
-
return 0;
}
+static int _clk_pll_mlb_main_disable(struct clk *clk)
+{
+ unsigned int reg;
+ void __iomem *pllbase;
+
+ pllbase = _get_pll_base(clk);
+
+ reg = __raw_readl(pllbase);
+
+ reg |= ANADIG_PLL_BYPASS;
+
+ __raw_writel(reg, pllbase);
+}
+
static struct clk pll6_mlb150_main_clk = {
__INIT_CLK_DEBUG(pll6_mlb150_main_clk)
.parent = &osc_clk,
.enable = _clk_pll_mlb_main_enable,
- .disable = _clk_pll_disable,
+ .disable = _clk_pll_mlb_main_disable,
};
static unsigned long _clk_pll7_usb_otg_get_rate(struct clk *clk)