|
@@ -310,17 +310,24 @@ static int mtk_cpufreq_set_target(struct cpufreq_policy *policy,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+#define DYNAMIC_POWER "dynamic-power-coefficient"
|
|
|
+
|
|
|
static void mtk_cpufreq_ready(struct cpufreq_policy *policy)
|
|
|
{
|
|
|
struct mtk_cpu_dvfs_info *info = policy->driver_data;
|
|
|
struct device_node *np = of_node_get(info->cpu_dev->of_node);
|
|
|
+ u32 capacitance = 0;
|
|
|
|
|
|
if (WARN_ON(!np))
|
|
|
return;
|
|
|
|
|
|
if (of_find_property(np, "#cooling-cells", NULL)) {
|
|
|
- info->cdev = of_cpufreq_cooling_register(np,
|
|
|
- policy->related_cpus);
|
|
|
+ of_property_read_u32(np, DYNAMIC_POWER, &capacitance);
|
|
|
+
|
|
|
+ info->cdev = of_cpufreq_power_cooling_register(np,
|
|
|
+ policy->related_cpus,
|
|
|
+ capacitance,
|
|
|
+ NULL);
|
|
|
|
|
|
if (IS_ERR(info->cdev)) {
|
|
|
dev_err(info->cpu_dev,
|