Lines Matching refs:od
44 static void _add_clkdev(struct omap_device *od, const char *clk_alias,
53 dev_dbg(&od->pdev->dev, "Creating %s -> %s\n", clk_alias, clk_name);
55 r = clk_get_sys(dev_name(&od->pdev->dev), clk_alias);
57 dev_dbg(&od->pdev->dev,
73 dev_name(&od->pdev->dev));
75 rc = clk_add_alias(clk_alias, dev_name(&od->pdev->dev),
81 dev_err(&od->pdev->dev,
84 dev_err(&od->pdev->dev,
92 * @od: struct omap_device *od
108 static void _add_hwmod_clocks_clkdev(struct omap_device *od,
113 _add_clkdev(od, "fck", oh->main_clk);
116 _add_clkdev(od, oh->opt_clks[i].role, oh->opt_clks[i].clk);
131 struct omap_device *od;
176 od = omap_device_alloc(pdev, hwmods, oh_cnt);
177 if (IS_ERR(od)) {
180 ret = PTR_ERR(od);
214 struct omap_device *od;
219 if (pdev->archdata.od)
220 omap_device_delete(pdev->archdata.od);
223 od = to_omap_device(pdev);
224 if (od && (od->_state == OMAP_DEVICE_STATE_ENABLED)) {
232 od = to_omap_device(pdev);
233 if (od) {
234 od->_driver_status = BUS_NOTIFY_BIND_DRIVER;
235 if (od->_state == OMAP_DEVICE_STATE_ENABLED &&
247 od = to_omap_device(pdev);
248 if (od)
249 od->_driver_status = event;
257 * @od: struct omap_device *od
261 static int _omap_device_enable_hwmods(struct omap_device *od)
266 for (i = 0; i < od->hwmods_cnt; i++)
267 ret |= omap_hwmod_enable(od->hwmods[i]);
274 * @od: struct omap_device *od
278 static int _omap_device_idle_hwmods(struct omap_device *od)
283 for (i = 0; i < od->hwmods_cnt; i++)
284 ret |= omap_hwmod_idle(od->hwmods[i]);
308 struct omap_device *od;
311 od = to_omap_device(pdev);
313 if (od->hwmods_cnt)
314 ret = omap_hwmod_get_context_loss_count(od->hwmods[0]);
334 struct omap_device *od;
338 od = kzalloc(sizeof(struct omap_device), GFP_KERNEL);
339 if (!od) {
343 od->hwmods_cnt = oh_cnt;
349 od->hwmods = hwmods;
350 od->pdev = pdev;
351 pdev->archdata.od = od;
354 hwmods[i]->od = od;
355 _add_hwmod_clocks_clkdev(od, hwmods[i]);
358 return od;
361 kfree(od);
368 void omap_device_delete(struct omap_device *od)
370 if (!od)
373 od->pdev->archdata.od = NULL;
374 kfree(od->hwmods);
375 kfree(od);
423 struct omap_device *od = to_omap_device(pdev);
427 if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER)
435 od->flags |= OMAP_DEVICE_SUSPENDED;
445 struct omap_device *od = to_omap_device(pdev);
447 if (od->flags & OMAP_DEVICE_SUSPENDED) {
448 od->flags &= ~OMAP_DEVICE_SUSPENDED;
500 * Do whatever is necessary for the hwmods underlying omap_device @od
511 struct omap_device *od;
513 od = to_omap_device(pdev);
515 if (od->_state == OMAP_DEVICE_STATE_ENABLED) {
518 __func__, od->_state);
522 ret = _omap_device_enable_hwmods(od);
525 od->_state = OMAP_DEVICE_STATE_ENABLED;
534 * Idle omap_device @od. Device drivers call this function indirectly
542 struct omap_device *od;
544 od = to_omap_device(pdev);
546 if (od->_state != OMAP_DEVICE_STATE_ENABLED) {
549 __func__, od->_state);
553 ret = _omap_device_idle_hwmods(od);
556 od->_state = OMAP_DEVICE_STATE_IDLE;
575 struct omap_device *od = to_omap_device(pdev);
579 for (i = 0; i < od->hwmods_cnt; i++) {
580 ret = omap_hwmod_assert_hardreset(od->hwmods[i], name);
603 struct omap_device *od = to_omap_device(pdev);
607 for (i = 0; i < od->hwmods_cnt; i++) {
608 ret = omap_hwmod_deassert_hardreset(od->hwmods[i], name);
639 if (!oh->od) {
645 return &oh->od->pdev->dev;
670 struct omap_device *od = to_omap_device(pdev);
673 if (!od)
685 for (i = 0; i < od->hwmods_cnt; i++)
686 if (od->hwmods[i]->flags & HWMOD_INIT_NO_IDLE)
689 if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER &&
690 od->_driver_status != BUS_NOTIFY_BIND_DRIVER) {
691 if (od->_state == OMAP_DEVICE_STATE_ENABLED) {