if (policy->cpu == 0) {
int i;
struct clk *ddr_clk;
+ struct clk *aclk_vepu_clk;
+
gpu_clk = clk_get(NULL, "gpu");
if (!IS_ERR(gpu_clk))
clk_enable_dvfs(gpu_clk);
clk_enable_dvfs(ddr_clk);
}
+ aclk_vepu_clk = clk_get(NULL, "aclk_vepu");
+ if (!IS_ERR(aclk_vepu_clk))
+ clk_enable_dvfs(aclk_vepu_clk);
+
freq_wq = create_singlethread_workqueue("rk30_cpufreqd");
#ifdef CONFIG_RK30_CPU_FREQ_LIMIT_BY_TEMP
if (rk30_cpufreq_is_ondemand_policy(policy)) {
{.frequency = CPUFREQ_TABLE_END},\r
};\r
\r
+static struct cpufreq_frequency_table vpu_dvfs_table[] = {\r
+ {.frequency = 266 * DVFS_KHZ, .index = 1100 * DVFS_MV},\r
+ {.frequency = 300 * DVFS_KHZ, .index = 1100 * DVFS_MV},\r
+ {.frequency = 400 * DVFS_KHZ, .index = 1200 * DVFS_MV},\r
+ {.frequency = CPUFREQ_TABLE_END},\r
+};\r
+\r
static struct cpufreq_frequency_table dep_cpu2core_table[] = {\r
// {.frequency = 252 * DVFS_KHZ, .index = 1025 * DVFS_MV},\r
// {.frequency = 504 * DVFS_KHZ, .index = 1025 * DVFS_MV},\r
CLK_PDS(NULL),\r
};\r
\r
+static struct pds_list aclk_vepu_pds[] = {\r
+ CLK_PDS(&pd_video),\r
+ CLK_PDS(NULL),\r
+};\r
+\r
#define RK_CLKS(_clk_name, _ppds, _dvfs_table, _dvfs_nb) \\r
{ \\r
.name = _clk_name, \\r
RK_CLKS("cpu", cpu_pds, cpu_dvfs_table, &rk_dvfs_clk_notifier),\r
RK_CLKS("ddr", ddr_pds, ddr_dvfs_table, &rk_dvfs_clk_notifier),\r
RK_CLKS("gpu", gpu_pds, gpu_dvfs_table, &rk_dvfs_clk_notifier),\r
+ RK_CLKS("aclk_vepu", aclk_vepu_pds, vpu_dvfs_table, &rk_dvfs_clk_notifier),\r
//RK_CLKS("aclk_periph", aclk_periph_pds, peri_aclk_dvfs_table, &rk_dvfs_clk_notifier),\r
};\r
\r