Lines Matching defs:od

44 static void omap_device_delete(struct omap_device *od);
50 static void _add_clkdev(struct omap_device *od, const char *clk_alias,
59 dev_dbg(&od->pdev->dev, "Creating %s -> %s\n", clk_alias, clk_name);
61 r = clk_get_sys(dev_name(&od->pdev->dev), clk_alias);
63 dev_dbg(&od->pdev->dev,
79 dev_name(&od->pdev->dev));
81 rc = clk_add_alias(clk_alias, dev_name(&od->pdev->dev),
87 dev_err(&od->pdev->dev,
90 dev_err(&od->pdev->dev,
98 * @od: struct omap_device *od
111 static void _add_hwmod_clocks_clkdev(struct omap_device *od,
116 _add_clkdev(od, "fck", oh->main_clk);
119 _add_clkdev(od, oh->opt_clks[i].role, oh->opt_clks[i].clk);
134 struct omap_device *od;
179 od = omap_device_alloc(pdev, hwmods, oh_cnt);
180 if (IS_ERR(od)) {
183 ret = PTR_ERR(od);
217 struct omap_device *od;
222 if (pdev->archdata.od)
223 omap_device_delete(pdev->archdata.od);
226 od = to_omap_device(pdev);
227 if (od && (od->_state == OMAP_DEVICE_STATE_ENABLED)) {
235 od = to_omap_device(pdev);
236 if (od) {
237 od->_driver_status = BUS_NOTIFY_BIND_DRIVER;
238 if (od->_state == OMAP_DEVICE_STATE_ENABLED &&
249 od = to_omap_device(pdev);
250 if (od)
251 od->_driver_status = event;
259 * @od: struct omap_device *od
263 static int _omap_device_enable_hwmods(struct omap_device *od)
268 for (i = 0; i < od->hwmods_cnt; i++)
269 ret |= omap_hwmod_enable(od->hwmods[i]);
276 * @od: struct omap_device *od
280 static int _omap_device_idle_hwmods(struct omap_device *od)
285 for (i = 0; i < od->hwmods_cnt; i++)
286 ret |= omap_hwmod_idle(od->hwmods[i]);
308 struct omap_device *od;
312 od = kzalloc(sizeof(struct omap_device), GFP_KERNEL);
313 if (!od)
316 od->hwmods_cnt = oh_cnt;
322 od->hwmods = hwmods;
323 od->pdev = pdev;
324 pdev->archdata.od = od;
327 hwmods[i]->od = od;
328 _add_hwmod_clocks_clkdev(od, hwmods[i]);
331 return od;
334 kfree(od);
341 static void omap_device_delete(struct omap_device *od)
343 if (!od)
346 od->pdev->archdata.od = NULL;
347 kfree(od->hwmods);
348 kfree(od);
396 struct omap_device *od = to_omap_device(pdev);
400 if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER)
408 od->flags |= OMAP_DEVICE_SUSPENDED;
418 struct omap_device *od = to_omap_device(pdev);
420 if (od->flags & OMAP_DEVICE_SUSPENDED) {
421 od->flags &= ~OMAP_DEVICE_SUSPENDED;
456 * Do whatever is necessary for the hwmods underlying omap_device @od
467 struct omap_device *od;
469 od = to_omap_device(pdev);
471 if (od->_state == OMAP_DEVICE_STATE_ENABLED) {
474 __func__, od->_state);
478 ret = _omap_device_enable_hwmods(od);
481 od->_state = OMAP_DEVICE_STATE_ENABLED;
490 * Idle omap_device @od. Device drivers call this function indirectly
498 struct omap_device *od;
500 od = to_omap_device(pdev);
502 if (od->_state != OMAP_DEVICE_STATE_ENABLED) {
505 __func__, od->_state);
509 ret = _omap_device_idle_hwmods(od);
512 od->_state = OMAP_DEVICE_STATE_IDLE;
531 struct omap_device *od = to_omap_device(pdev);
535 for (i = 0; i < od->hwmods_cnt; i++) {
536 ret = omap_hwmod_assert_hardreset(od->hwmods[i], name);
559 struct omap_device *od = to_omap_device(pdev);
563 for (i = 0; i < od->hwmods_cnt; i++) {
564 ret = omap_hwmod_deassert_hardreset(od->hwmods[i], name);
594 struct omap_device *od = to_omap_device(pdev);
597 if (!od)
609 for (i = 0; i < od->hwmods_cnt; i++)
610 if (od->hwmods[i]->flags & HWMOD_INIT_NO_IDLE)
613 if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER &&
614 od->_driver_status != BUS_NOTIFY_BIND_DRIVER) {
615 if (od->_state == OMAP_DEVICE_STATE_ENABLED) {