Lines Matching refs:prmd

69 	struct omap_prm_domain *prmd;
503 static void omap_prm_domain_show_state(struct omap_prm_domain *prmd,
506 dev_dbg(prmd->dev, "%s %s: %08x/%08x\n",
507 prmd->pd.name, desc,
508 readl_relaxed(prmd->prm->base + prmd->pwrstctrl),
509 readl_relaxed(prmd->prm->base + prmd->pwrstst));
512 static inline void omap_prm_domain_show_state(struct omap_prm_domain *prmd,
520 struct omap_prm_domain *prmd;
524 prmd = genpd_to_prm_domain(domain);
525 if (!prmd->cap)
528 omap_prm_domain_show_state(prmd, "on: previous state");
530 if (prmd->pwrstctrl_saved)
531 v = prmd->pwrstctrl_saved;
533 v = readl_relaxed(prmd->prm->base + prmd->pwrstctrl);
535 if (prmd->prm->data->flags & OMAP_PRM_RET_WHEN_IDLE)
541 prmd->prm->base + prmd->pwrstctrl);
544 ret = readl_relaxed_poll_timeout(prmd->prm->base + prmd->pwrstst,
548 dev_err(prmd->dev, "%s: %s timed out\n",
549 prmd->pd.name, __func__);
551 omap_prm_domain_show_state(prmd, "on: new state");
557 static int omap_prm_domain_find_lowest(struct omap_prm_domain *prmd)
559 return __ffs(prmd->cap->usable_modes);
564 struct omap_prm_domain *prmd;
568 prmd = genpd_to_prm_domain(domain);
569 if (!prmd->cap)
572 omap_prm_domain_show_state(prmd, "off: previous state");
574 v = readl_relaxed(prmd->prm->base + prmd->pwrstctrl);
575 prmd->pwrstctrl_saved = v;
578 v |= omap_prm_domain_find_lowest(prmd);
580 if (prmd->cap->statechange)
582 if (prmd->cap->logicretstate)
587 writel_relaxed(v, prmd->prm->base + prmd->pwrstctrl);
590 ret = readl_relaxed_poll_timeout(prmd->prm->base + prmd->pwrstst,
594 dev_warn(prmd->dev, "%s: %s timed out\n",
595 __func__, prmd->pd.name);
597 omap_prm_domain_show_state(prmd, "off: new state");
608 struct omap_prm_domain *prmd)
629 prmd->uses_pm_clk = 1;
639 struct omap_prm_domain *prmd;
643 prmd = genpd_to_prm_domain(domain);
653 prmd->pd.name, pd_args.args_count);
658 ret = omap_prm_domain_attach_clock(dev, prmd);
669 struct omap_prm_domain *prmd;
671 prmd = genpd_to_prm_domain(domain);
672 if (prmd->uses_pm_clk)
680 struct omap_prm_domain *prmd;
691 prmd = devm_kzalloc(dev, sizeof(*prmd), GFP_KERNEL);
692 if (!prmd)
699 prmd->dev = dev;
700 prmd->prm = prm;
701 prmd->cap = prmd->prm->data->dmap;
702 prmd->pwrstctrl = prmd->prm->data->pwrstctrl;
703 prmd->pwrstst = prmd->prm->data->pwrstst;
705 prmd->pd.name = name;
706 prmd->pd.power_on = omap_prm_domain_power_on;
707 prmd->pd.power_off = omap_prm_domain_power_off;
708 prmd->pd.attach_dev = omap_prm_domain_attach_dev;
709 prmd->pd.detach_dev = omap_prm_domain_detach_dev;
710 prmd->pd.flags = GENPD_FLAG_PM_CLK;
712 pm_genpd_init(&prmd->pd, NULL, true);
713 error = of_genpd_add_provider_simple(np, &prmd->pd);
715 pm_genpd_remove(&prmd->pd);
717 prm->prmd = prmd;
977 pm_genpd_remove(&prm->prmd->pd);