Lines Matching refs:prmd

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