summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx3/dvfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-mx3/dvfs.c')
-rw-r--r--arch/arm/mach-mx3/dvfs.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/arch/arm/mach-mx3/dvfs.c b/arch/arm/mach-mx3/dvfs.c
index 3d1026d717f9..0c0baab64f97 100644
--- a/arch/arm/mach-mx3/dvfs.c
+++ b/arch/arm/mach-mx3/dvfs.c
@@ -116,6 +116,11 @@ pmcr0 = ((pmcr0 & ~MXC_CCM_PMCR0_VSCNT_MASK) | x << MXC_CCM_PMCR0_VSCNT_OFFSET)
dvfs_states_table *dvfs_states_tbl;
+static struct clk *pll_clk;
+static struct clk *cpu_clk;
+static struct clk *ckih_clk;
+static struct clk *ckil_clk;
+
/*!
* The dvfs_dptc_params structure holds all the internal DPTC driver parameters
* (current working point, current frequency, translation table and DPTC
@@ -441,16 +446,10 @@ unsigned long dvfs_get_clock(unsigned long reg, unsigned long pdr0)
unsigned long pll, ret_val = 0;
signed long mcu_pdf;
signed long pdf, mfd, mfi, mfn, ref_clk;
- struct clk *pll_clk;
- struct clk *parent_clk;
-
- pll_clk = clk_get(NULL, "mcu_pll");
- parent_clk = clk_get(NULL, "ckih");
- if (parent_clk == clk_get_parent(pll_clk)) {
- ref_clk = clk_get_rate(parent_clk);
+ if (ckih_clk == clk_get_parent(pll_clk)) {
+ ref_clk = clk_get_rate(ckih_clk);
} else { /* parent is ckil/fpm */
- parent_clk = clk_get(NULL, "ckil");
- ref_clk = clk_get_rate(parent_clk) * 1024;
+ ref_clk = clk_get_rate(ckil_clk) * 1024;
}
pdf = (signed long)
@@ -491,6 +490,11 @@ int __init init_dvfs_controller(dvfs_dptc_params_s * params)
int i;
int res = 0;
+ pll_clk = clk_get(NULL, "mcu_pll");
+ cpu_clk = clk_get(NULL, "cpu_pll");
+ ckih_clk = clk_get(NULL, "ckih");
+ ckil_clk = clk_get(NULL, "ckil");
+
/* Configure 2 MC13783 DVFS pins */
mxc_request_iomux(MX31_PIN_DVFS0, OUTPUTCONFIG_FUNC, INPUTCONFIG_NONE);
mxc_request_iomux(MX31_PIN_DVFS1, OUTPUTCONFIG_FUNC, INPUTCONFIG_NONE);
@@ -797,8 +801,9 @@ void set_freq(dvfs_dptc_params_s * params, int fsvai)
}
pr_debug(KERN_INFO "ARM frequency: %dMHz CKIH frequency: %dMHz(%d)\n",
- (int)mxc_get_clocks(CPU_CLK) / 1000000,
- (int)mxc_get_clocks(CKIH_CLK) / 1000000, (int)jiffies);
+ (int)clk_get_rate(cpu_clk) / 1000000,
+ (int)clk_get_rate(ckih_clk) / 1000000,
+ (int)jiffies);
}
/*!