summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx6/clock.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/arm/mach-mx6/clock.c b/arch/arm/mach-mx6/clock.c
index 0a01c3176eb1..d9af9f6909c1 100644
--- a/arch/arm/mach-mx6/clock.c
+++ b/arch/arm/mach-mx6/clock.c
@@ -505,6 +505,15 @@ static void _clk_pll_disable(struct clk *clk)
if ((arm_needs_pll2_400) && (clk == &pll2_528_bus_main_clk))
return;
+ /*
+ * To support USB remote wake up, need always keep power and enable bit
+ * BM_ANADIG_ANA_MISC2_CONTROL0 will power off PLL3's power
+ * Please see TKT064178 for detail.
+ */
+ if (clk == &pll3_usb_otg_main_clk) {
+ __raw_writel(BM_ANADIG_ANA_MISC2_CONTROL0, apll_base + HW_ANADIG_ANA_MISC2_SET);
+ return;
+ }
pllbase = _get_pll_base(clk);
@@ -514,12 +523,6 @@ static void _clk_pll_disable(struct clk *clk)
__raw_writel(reg, pllbase);
- /*
- * It will power off PLL3's power, it is the TO1.1 fix
- * Please see TKT064178 for detail.
- */
- if (clk == &pll3_usb_otg_main_clk)
- __raw_writel(BM_ANADIG_ANA_MISC2_CONTROL0, apll_base + HW_ANADIG_ANA_MISC2_SET);
}
static unsigned long _clk_pll1_main_get_rate(struct clk *clk)