Lines Matching refs:data
78 static int exynos5_int_setvolt(struct busfreq_data_int *data, in exynos5_int_setvolt() argument
81 return regulator_set_voltage(data->vdd_int, volt, MAX_SAFEVOLT); in exynos5_int_setvolt()
90 struct busfreq_data_int *data = platform_get_drvdata(pdev); in exynos5_busfreq_int_target() local
107 old_freq = data->curr_freq; in exynos5_busfreq_int_target()
114 mutex_lock(&data->lock); in exynos5_busfreq_int_target()
116 if (data->disabled) in exynos5_busfreq_int_target()
120 pm_qos_update_request(&data->int_req, freq * 16 / 1000); in exynos5_busfreq_int_target()
122 pm_qos_update_request(&data->int_req, -1); in exynos5_busfreq_int_target()
125 err = exynos5_int_setvolt(data, volt); in exynos5_busfreq_int_target()
129 err = clk_set_rate(data->int_clk, freq * 1000); in exynos5_busfreq_int_target()
135 err = exynos5_int_setvolt(data, volt); in exynos5_busfreq_int_target()
139 data->curr_freq = freq; in exynos5_busfreq_int_target()
141 mutex_unlock(&data->lock); in exynos5_busfreq_int_target()
150 struct busfreq_data_int *data = platform_get_drvdata(pdev); in exynos5_int_get_dev_status() local
151 struct busfreq_ppmu_data *ppmu_data = &data->ppmu_data; in exynos5_int_get_dev_status()
157 stat->current_frequency = data->curr_freq; in exynos5_int_get_dev_status()
174 static int exynos5250_init_int_tables(struct busfreq_data_int *data) in exynos5250_init_int_tables() argument
179 err = dev_pm_opp_add(data->dev, exynos5_int_opp_table[i].clk, in exynos5250_init_int_tables()
182 dev_err(data->dev, "Cannot add opp entries.\n"); in exynos5250_init_int_tables()
193 struct busfreq_data_int *data = container_of(this, in exynos5_busfreq_int_pm_notifier_event() local
204 mutex_lock(&data->lock); in exynos5_busfreq_int_pm_notifier_event()
206 data->disabled = true; in exynos5_busfreq_int_pm_notifier_event()
209 opp = dev_pm_opp_find_freq_floor(data->dev, &maxfreq); in exynos5_busfreq_int_pm_notifier_event()
219 err = exynos5_int_setvolt(data, volt); in exynos5_busfreq_int_pm_notifier_event()
223 err = clk_set_rate(data->int_clk, freq * 1000); in exynos5_busfreq_int_pm_notifier_event()
228 data->curr_freq = freq; in exynos5_busfreq_int_pm_notifier_event()
230 mutex_unlock(&data->lock); in exynos5_busfreq_int_pm_notifier_event()
237 mutex_lock(&data->lock); in exynos5_busfreq_int_pm_notifier_event()
238 data->disabled = false; in exynos5_busfreq_int_pm_notifier_event()
239 mutex_unlock(&data->lock); in exynos5_busfreq_int_pm_notifier_event()
248 struct busfreq_data_int *data; in exynos5_busfreq_int_probe() local
258 data = devm_kzalloc(&pdev->dev, sizeof(struct busfreq_data_int), in exynos5_busfreq_int_probe()
260 if (data == NULL) { in exynos5_busfreq_int_probe()
265 ppmu_data = &data->ppmu_data; in exynos5_busfreq_int_probe()
289 data->pm_notifier.notifier_call = exynos5_busfreq_int_pm_notifier_event; in exynos5_busfreq_int_probe()
290 data->dev = dev; in exynos5_busfreq_int_probe()
291 mutex_init(&data->lock); in exynos5_busfreq_int_probe()
293 err = exynos5250_init_int_tables(data); in exynos5_busfreq_int_probe()
297 data->vdd_int = devm_regulator_get(dev, "vdd_int"); in exynos5_busfreq_int_probe()
298 if (IS_ERR(data->vdd_int)) { in exynos5_busfreq_int_probe()
300 return PTR_ERR(data->vdd_int); in exynos5_busfreq_int_probe()
303 data->int_clk = devm_clk_get(dev, "int_clk"); in exynos5_busfreq_int_probe()
304 if (IS_ERR(data->int_clk)) { in exynos5_busfreq_int_probe()
306 return PTR_ERR(data->int_clk); in exynos5_busfreq_int_probe()
321 data->curr_freq = initial_freq; in exynos5_busfreq_int_probe()
323 err = clk_set_rate(data->int_clk, initial_freq * 1000); in exynos5_busfreq_int_probe()
329 err = exynos5_int_setvolt(data, initial_volt); in exynos5_busfreq_int_probe()
333 platform_set_drvdata(pdev, data); in exynos5_busfreq_int_probe()
337 data->devfreq = devm_devfreq_add_device(dev, &exynos5_devfreq_int_profile, in exynos5_busfreq_int_probe()
339 if (IS_ERR(data->devfreq)) in exynos5_busfreq_int_probe()
340 return PTR_ERR(data->devfreq); in exynos5_busfreq_int_probe()
342 err = devm_devfreq_register_opp_notifier(dev, data->devfreq); in exynos5_busfreq_int_probe()
348 err = register_pm_notifier(&data->pm_notifier); in exynos5_busfreq_int_probe()
355 pm_qos_add_request(&data->int_req, PM_QOS_NETWORK_THROUGHPUT, -1); in exynos5_busfreq_int_probe()
362 struct busfreq_data_int *data = platform_get_drvdata(pdev); in exynos5_busfreq_int_remove() local
364 pm_qos_remove_request(&data->int_req); in exynos5_busfreq_int_remove()
365 unregister_pm_notifier(&data->pm_notifier); in exynos5_busfreq_int_remove()
375 struct busfreq_data_int *data = platform_get_drvdata(pdev); in exynos5_busfreq_int_resume() local
376 struct busfreq_ppmu_data *ppmu_data = &data->ppmu_data; in exynos5_busfreq_int_resume()