struct devfreq_event_dev *edev;
struct mutex lock;
struct dram_timing *timing;
-
- /*
- * DDR Converser of Frequency (DCF) is used to implement DDR frequency
- * conversion without the participation of CPU, we will implement and
- * control it in arm trust firmware.
- */
- wait_queue_head_t wait_dcf_queue;
- int irq;
- int wait_dcf_flag;
struct regulator *vdd_center;
unsigned long rate, target_rate;
unsigned long volt, target_volt;
err = regulator_set_voltage(dmcfreq->vdd_center, target_volt,
INT_MAX);
if (err) {
- dev_err(dev, "Cannot to set voltage %lu uV\n",
+ dev_err(dev, "Cannot set voltage %lu uV\n",
target_volt);
goto out;
}
}
-
mutex_lock(&dmcfreq->lock);
/*
err = regulator_set_voltage(dmcfreq->vdd_center, target_volt,
INT_MAX);
if (err) {
- dev_err(dev, "Cannot to set voltage %lu uV\n",
+ dev_err(dev, "Cannot set voltage %lu uV\n",
target_volt);
goto out;
}
err = clk_set_rate(dmcfreq->dmc_clk, target_rate);
if (err) {
- dev_err(dev, "Cannot to set frequency %lu (%d)\n",
+ dev_err(dev, "Cannot set frequency %lu (%d)\n",
target_rate, err);
regulator_set_voltage(dmcfreq->vdd_center, dmcfreq->volt,
INT_MAX);
/* If get the incorrect rate, set voltage to old value. */
if (dmcfreq->rate != target_rate) {
- dev_err(dev, "Get wrong ddr frequency, Request frequency %lu,\
- Current frequency %lu\n", target_rate, dmcfreq->rate);
+ dev_err(dev, "Get wrong frequency, Request %lu, Current %lu\n",
+ target_rate, dmcfreq->rate);
regulator_set_voltage(dmcfreq->vdd_center, dmcfreq->volt,
INT_MAX);
goto out;
err = regulator_set_voltage(dmcfreq->vdd_center, target_volt,
INT_MAX);
if (err) {
- dev_err(dev, "Cannot to set vol %lu uV\n", target_volt);
+ dev_err(dev, "Cannot set vol %lu uV\n", target_volt);
goto out;
}
}
return timing;
}
-static int of_get_opp_table(struct device *dev,
- struct devfreq_dev_profile *devp)
+static int rk3399_dmcfreq_init_freq_table(struct device *dev,
+ struct devfreq_dev_profile *devp)
{
int count;
int i = 0;
return -EINVAL;
}
- if (of_get_opp_table(dev, devp))
+ if (rk3399_dmcfreq_init_freq_table(dev, devp))
return -EFAULT;
of_property_read_u32(np, "upthreshold",
return PTR_ERR(data->devfreq);
devm_devfreq_register_opp_notifier(dev, data->devfreq);
+ data->devfreq->min_freq = devp->freq_table[0];
+ data->devfreq->max_freq =
+ devp->freq_table[devp->max_state ? devp->max_state - 1 : 0];
+
data->dev = dev;
platform_set_drvdata(pdev, data);