Lines Matching refs:data

313 	struct rk3399_dmcfreq *data;
320 data = devm_kzalloc(dev, sizeof(struct rk3399_dmcfreq), GFP_KERNEL);
321 if (!data)
324 mutex_init(&data->lock);
326 data->vdd_center = devm_regulator_get(dev, "center");
327 if (IS_ERR(data->vdd_center)) {
328 if (PTR_ERR(data->vdd_center) == -EPROBE_DEFER)
332 return PTR_ERR(data->vdd_center);
335 data->dmc_clk = devm_clk_get(dev, "dmc_clk");
336 if (IS_ERR(data->dmc_clk)) {
337 if (PTR_ERR(data->dmc_clk) == -EPROBE_DEFER)
341 return PTR_ERR(data->dmc_clk);
344 data->edev = devfreq_event_get_edev_by_phandle(dev, "devfreq-events", 0);
345 if (IS_ERR(data->edev))
348 ret = devfreq_event_enable_edev(data->edev);
359 if (!of_get_ddr_timings(&data->timing, np)) {
360 timing = &data->timing.ddr3_speed_bin;
379 data->regmap_pmu = syscon_node_to_regmap(node);
381 if (IS_ERR(data->regmap_pmu)) {
382 ret = PTR_ERR(data->regmap_pmu);
386 regmap_read(data->regmap_pmu, RK3399_PMUGRF_OS_REG2, &val);
392 data->odt_dis_freq = data->timing.ddr3_odt_dis_freq;
395 data->odt_dis_freq = data->timing.lpddr3_odt_dis_freq;
398 data->odt_dis_freq = data->timing.lpddr4_odt_dis_freq;
425 data->odt_pd_arg0 = (data->timing.sr_idle & 0xff) |
426 ((data->timing.sr_mc_gate_idle & 0xff) << 8) |
427 ((data->timing.standby_idle & 0xffff) << 16);
428 data->odt_pd_arg1 = (data->timing.pd_idle & 0xfff) |
429 ((data->timing.srpd_lite_idle & 0xfff) << 16);
442 &data->ondemand_data.upthreshold);
444 &data->ondemand_data.downdifferential);
446 data->rate = clk_get_rate(data->dmc_clk);
448 opp = devfreq_recommended_opp(dev, &data->rate, 0);
454 data->rate = dev_pm_opp_get_freq(opp);
455 data->volt = dev_pm_opp_get_voltage(opp);
458 rk3399_devfreq_dmc_profile.initial_freq = data->rate;
460 data->devfreq = devm_devfreq_add_device(dev,
463 &data->ondemand_data);
464 if (IS_ERR(data->devfreq)) {
465 ret = PTR_ERR(data->devfreq);
469 devm_devfreq_register_opp_notifier(dev, data->devfreq);
471 data->dev = dev;
472 platform_set_drvdata(pdev, data);
479 devfreq_event_disable_edev(data->edev);