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;
*/
if (dev_pm_opp_of_add_table(dev)) {
dev_err(dev, "Invalid operating-points in device tree.\n");
- rcu_read_unlock();
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",
data->volt = regulator_get_voltage(data->vdd_center);
devp->initial_freq = data->rate;
- data->devfreq = devfreq_add_device(dev, devp,
+ data->devfreq = devm_devfreq_add_device(dev, devp,
"simple_ondemand",
&data->ondemand_data);
if (IS_ERR(data->devfreq))
return 0;
}
-static int rk3399_dmcfreq_remove(struct platform_device *pdev)
-{
- struct rk3399_dmcfreq *dmcfreq = platform_get_drvdata(pdev);
-
- regulator_put(dmcfreq->vdd_center);
-
- return 0;
-}
-
static const struct of_device_id rk3399dmc_devfreq_of_match[] = {
{ .compatible = "rockchip,rk3399-dmc" },
{ },
};
+MODULE_DEVICE_TABLE(of, rk3399dmc_devfreq_of_match);
static struct platform_driver rk3399_dmcfreq_driver = {
.probe = rk3399_dmcfreq_probe,
- .remove = rk3399_dmcfreq_remove,
.driver = {
.name = "rk3399-dmc-freq",
.pm = &rk3399_dmcfreq_pm,