summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRanjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>2015-01-30 13:51:17 -0600
committerBai Ping <b51503@freescale.com>2015-02-11 18:46:01 +0800
commitca821e2dda5f7aa475c232df8ef7be183a317971 (patch)
tree45f2d6ee111edc688a13c5f728411ab37ddc766e /arch
parent1bcb1c9bc436462f2db56e448b65a7e4f2fb3612 (diff)
MLK-9961-2 Revert "MLK-10007-02 arm: imx: enable pll1 when changing arm_podf value"
This reverts commit 09bcfcabc08a57bce3000677052d5a2fcc2b1b68. Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/busfreq-imx6.c13
-rw-r--r--arch/arm/mach-imx/clk-imx6sl.c7
-rw-r--r--arch/arm/mach-imx/common.h1
3 files changed, 5 insertions, 16 deletions
diff --git a/arch/arm/mach-imx/busfreq-imx6.c b/arch/arm/mach-imx/busfreq-imx6.c
index 0d74b9671d47..5f7649bc5a1a 100644
--- a/arch/arm/mach-imx/busfreq-imx6.c
+++ b/arch/arm/mach-imx/busfreq-imx6.c
@@ -288,13 +288,9 @@ static void enter_lpm_imx6sl(void)
imx_clk_set_parent(pll1_sw_clk, step_clk);
/*
* Ensure that the clock will be
- * at original speed. the arm_podf can only be
- * changed when the pll1 output is enabled. So
- * enable pll1 output before change cpu_clk.
+ * at original speed.
*/
- imx6sl_enable_pll_arm(true);
imx_clk_set_rate(cpu_clk, org_arm_rate);
- imx6sl_enable_pll_arm(false);
}
low_bus_freq_mode = 0;
ultra_low_bus_freq_mode = 0;
@@ -406,14 +402,7 @@ static void exit_lpm_imx6sl(void)
/* Move ARM from PLL1_SW_CLK to PLL2_400. */
imx_clk_set_parent(step_clk, pll2_400);
imx_clk_set_parent(pll1_sw_clk, step_clk);
- /*
- * arm_podf can only be changed when pll1 output
- * is enabled. Enable pll1 output before changing
- * cpu_clk rate.
- */
- imx6sl_enable_pll_arm(true);
imx_clk_set_rate(cpu_clk, org_arm_rate);
- imx6sl_enable_pll_arm(false);
ultra_low_bus_freq_mode = 0;
}
}
diff --git a/arch/arm/mach-imx/clk-imx6sl.c b/arch/arm/mach-imx/clk-imx6sl.c
index 78961c50c197..17ebe1b748b5 100644
--- a/arch/arm/mach-imx/clk-imx6sl.c
+++ b/arch/arm/mach-imx/clk-imx6sl.c
@@ -35,7 +35,6 @@
#define BM_PLL_ARM_DIV_SELECT (0x7f << 0)
#define BM_PLL_ARM_POWERDOWN (1 << 12)
#define BM_PLL_ARM_ENABLE (1 << 13)
-#define BM_PLL_ARM_BYPASS (1 << 16)
#define BM_PLL_ARM_LOCK (1 << 31)
#define PLL_ARM_DIV_792M 66
@@ -151,7 +150,7 @@ static int imx6sl_get_arm_divider_for_wait(void)
}
}
-void imx6sl_enable_pll_arm(bool enable)
+static void imx6sl_enable_pll_arm(bool enable)
{
static u32 saved_pll_arm;
u32 val;
@@ -159,8 +158,10 @@ void imx6sl_enable_pll_arm(bool enable)
if (enable) {
saved_pll_arm = val = readl_relaxed(anatop_base + PLL_ARM);
val |= BM_PLL_ARM_ENABLE;
- val |= BM_PLL_ARM_BYPASS;
+ val &= ~BM_PLL_ARM_POWERDOWN;
writel_relaxed(val, anatop_base + PLL_ARM);
+ while (!(__raw_readl(anatop_base + PLL_ARM) & BM_PLL_ARM_LOCK))
+ ;
} else {
writel_relaxed(saved_pll_arm, anatop_base + PLL_ARM);
}
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h
index 54201afeb755..1d2cd61e5084 100644
--- a/arch/arm/mach-imx/common.h
+++ b/arch/arm/mach-imx/common.h
@@ -154,7 +154,6 @@ void imx_anatop_pre_suspend(void);
void imx_anatop_post_resume(void);
int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode);
void imx6q_set_int_mem_clk_lpm(bool enable);
-void imx6sl_enable_pll_arm(bool enable);
void imx6sl_set_wait_clk(bool enter);
void imx6_enet_mac_init(const char *compatible);
int imx_mmdc_get_ddr_type(void);