Lines Matching defs:omap

44 #include <linux/platform_data/dmtimer-omap.h>
56 * corresponding to omap dmtimer.
59 * @dm_timer: Pointer to omap dm timer.
60 * @pdata: Pointer to omap dm timer ops.
61 * @dm_timer_pdev: Pointer to omap dm timer platform device
91 * pwm_omap_dmtimer_start() - Start the pwm omap dm timer in pwm mode
92 * @omap: Pointer to pwm omap dm timer chip
94 static void pwm_omap_dmtimer_start(struct pwm_omap_dmtimer_chip *omap)
104 omap->pdata->enable(omap->dm_timer);
105 omap->pdata->write_counter(omap->dm_timer, DM_TIMER_LOAD_MIN);
106 omap->pdata->disable(omap->dm_timer);
108 omap->pdata->start(omap->dm_timer);
113 * @omap: Pointer to pwm omap dm timer chip
117 static bool pwm_omap_dmtimer_is_enabled(struct pwm_omap_dmtimer_chip *omap)
121 status = omap->pdata->get_pwm_status(omap->dm_timer);
128 * @omap: Pointer to pwm omap dm timer chip
132 static int pwm_omap_dmtimer_polarity(struct pwm_omap_dmtimer_chip *omap)
136 status = omap->pdata->get_pwm_status(omap->dm_timer);
142 * pwm_omap_dmtimer_config() - Update the configuration of pwm omap dm timer
155 struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip);
168 fclk = omap->pdata->get_fclk(omap->dm_timer);
231 omap->pdata->set_load(omap->dm_timer, load_value);
232 omap->pdata->set_match(omap->dm_timer, true, match_value);
250 struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip);
254 enabled = pwm_omap_dmtimer_is_enabled(omap);
256 omap->pdata->stop(omap->dm_timer);
258 omap->pdata->set_pwm(omap->dm_timer,
264 pwm_omap_dmtimer_start(omap);
268 * pwm_omap_dmtimer_apply() - Changes the state of the pwm omap dm timer.
279 struct pwm_omap_dmtimer_chip *omap = to_pwm_omap_dmtimer_chip(chip);
282 mutex_lock(&omap->mutex);
284 if (pwm_omap_dmtimer_is_enabled(omap) && !state->enabled) {
285 omap->pdata->stop(omap->dm_timer);
289 if (pwm_omap_dmtimer_polarity(omap) != state->polarity)
297 if (!pwm_omap_dmtimer_is_enabled(omap) && state->enabled) {
298 omap->pdata->set_pwm(omap->dm_timer,
303 pwm_omap_dmtimer_start(omap);
307 mutex_unlock(&omap->mutex);
323 struct pwm_omap_dmtimer_chip *omap;
380 omap = devm_kzalloc(&pdev->dev, sizeof(*omap), GFP_KERNEL);
381 if (!omap) {
386 omap->pdata = pdata;
387 omap->dm_timer = dm_timer;
388 omap->dm_timer_pdev = timer_pdev;
394 if (pm_runtime_active(&omap->dm_timer_pdev->dev))
395 omap->pdata->stop(omap->dm_timer);
398 omap->pdata->set_prescaler(omap->dm_timer, v);
402 omap->pdata->set_source(omap->dm_timer, v);
404 omap->chip.dev = &pdev->dev;
405 omap->chip.ops = &pwm_omap_dmtimer_ops;
406 omap->chip.npwm = 1;
408 mutex_init(&omap->mutex);
410 ret = pwmchip_add(&omap->chip);
418 platform_set_drvdata(pdev, omap);
425 * *omap is allocated using devm_kzalloc,
446 struct pwm_omap_dmtimer_chip *omap = platform_get_drvdata(pdev);
448 pwmchip_remove(&omap->chip);
450 if (pm_runtime_active(&omap->dm_timer_pdev->dev))
451 omap->pdata->stop(omap->dm_timer);
453 omap->pdata->free(omap->dm_timer);
455 put_device(&omap->dm_timer_pdev->dev);
457 mutex_destroy(&omap->mutex);
461 {.compatible = "ti,omap-dmtimer-pwm"},
468 .name = "omap-dmtimer-pwm",