Lines Matching refs:prmd

70 	struct omap_prm_domain *prmd;  member
504 static void omap_prm_domain_show_state(struct omap_prm_domain *prmd, in omap_prm_domain_show_state() argument
507 dev_dbg(prmd->dev, "%s %s: %08x/%08x\n", in omap_prm_domain_show_state()
508 prmd->pd.name, desc, in omap_prm_domain_show_state()
509 readl_relaxed(prmd->prm->base + prmd->pwrstctrl), in omap_prm_domain_show_state()
510 readl_relaxed(prmd->prm->base + prmd->pwrstst)); in omap_prm_domain_show_state()
513 static inline void omap_prm_domain_show_state(struct omap_prm_domain *prmd, in omap_prm_domain_show_state() argument
521 struct omap_prm_domain *prmd; in omap_prm_domain_power_on() local
525 prmd = genpd_to_prm_domain(domain); in omap_prm_domain_power_on()
526 if (!prmd->cap) in omap_prm_domain_power_on()
529 omap_prm_domain_show_state(prmd, "on: previous state"); in omap_prm_domain_power_on()
531 if (prmd->pwrstctrl_saved) in omap_prm_domain_power_on()
532 v = prmd->pwrstctrl_saved; in omap_prm_domain_power_on()
534 v = readl_relaxed(prmd->prm->base + prmd->pwrstctrl); in omap_prm_domain_power_on()
536 if (prmd->prm->data->flags & OMAP_PRM_RET_WHEN_IDLE) in omap_prm_domain_power_on()
542 prmd->prm->base + prmd->pwrstctrl); in omap_prm_domain_power_on()
545 ret = readl_relaxed_poll_timeout(prmd->prm->base + prmd->pwrstst, in omap_prm_domain_power_on()
549 dev_err(prmd->dev, "%s: %s timed out\n", in omap_prm_domain_power_on()
550 prmd->pd.name, __func__); in omap_prm_domain_power_on()
552 omap_prm_domain_show_state(prmd, "on: new state"); in omap_prm_domain_power_on()
558 static int omap_prm_domain_find_lowest(struct omap_prm_domain *prmd) in omap_prm_domain_find_lowest() argument
560 return __ffs(prmd->cap->usable_modes); in omap_prm_domain_find_lowest()
565 struct omap_prm_domain *prmd; in omap_prm_domain_power_off() local
569 prmd = genpd_to_prm_domain(domain); in omap_prm_domain_power_off()
570 if (!prmd->cap) in omap_prm_domain_power_off()
573 omap_prm_domain_show_state(prmd, "off: previous state"); in omap_prm_domain_power_off()
575 v = readl_relaxed(prmd->prm->base + prmd->pwrstctrl); in omap_prm_domain_power_off()
576 prmd->pwrstctrl_saved = v; in omap_prm_domain_power_off()
579 v |= omap_prm_domain_find_lowest(prmd); in omap_prm_domain_power_off()
581 if (prmd->cap->statechange) in omap_prm_domain_power_off()
583 if (prmd->cap->logicretstate) in omap_prm_domain_power_off()
588 writel_relaxed(v, prmd->prm->base + prmd->pwrstctrl); in omap_prm_domain_power_off()
591 ret = readl_relaxed_poll_timeout(prmd->prm->base + prmd->pwrstst, in omap_prm_domain_power_off()
595 dev_warn(prmd->dev, "%s: %s timed out\n", in omap_prm_domain_power_off()
596 __func__, prmd->pd.name); in omap_prm_domain_power_off()
598 omap_prm_domain_show_state(prmd, "off: new state"); in omap_prm_domain_power_off()
609 struct omap_prm_domain *prmd) in omap_prm_domain_attach_clock() argument
630 prmd->uses_pm_clk = 1; in omap_prm_domain_attach_clock()
640 struct omap_prm_domain *prmd; in omap_prm_domain_attach_dev() local
644 prmd = genpd_to_prm_domain(domain); in omap_prm_domain_attach_dev()
654 prmd->pd.name, pd_args.args_count); in omap_prm_domain_attach_dev()
659 ret = omap_prm_domain_attach_clock(dev, prmd); in omap_prm_domain_attach_dev()
670 struct omap_prm_domain *prmd; in omap_prm_domain_detach_dev() local
672 prmd = genpd_to_prm_domain(domain); in omap_prm_domain_detach_dev()
673 if (prmd->uses_pm_clk) in omap_prm_domain_detach_dev()
681 struct omap_prm_domain *prmd; in omap_prm_domain_init() local
692 prmd = devm_kzalloc(dev, sizeof(*prmd), GFP_KERNEL); in omap_prm_domain_init()
693 if (!prmd) in omap_prm_domain_init()
700 prmd->dev = dev; in omap_prm_domain_init()
701 prmd->prm = prm; in omap_prm_domain_init()
702 prmd->cap = prmd->prm->data->dmap; in omap_prm_domain_init()
703 prmd->pwrstctrl = prmd->prm->data->pwrstctrl; in omap_prm_domain_init()
704 prmd->pwrstst = prmd->prm->data->pwrstst; in omap_prm_domain_init()
706 prmd->pd.name = name; in omap_prm_domain_init()
707 prmd->pd.power_on = omap_prm_domain_power_on; in omap_prm_domain_init()
708 prmd->pd.power_off = omap_prm_domain_power_off; in omap_prm_domain_init()
709 prmd->pd.attach_dev = omap_prm_domain_attach_dev; in omap_prm_domain_init()
710 prmd->pd.detach_dev = omap_prm_domain_detach_dev; in omap_prm_domain_init()
711 prmd->pd.flags = GENPD_FLAG_PM_CLK; in omap_prm_domain_init()
713 pm_genpd_init(&prmd->pd, NULL, true); in omap_prm_domain_init()
714 error = of_genpd_add_provider_simple(np, &prmd->pd); in omap_prm_domain_init()
716 pm_genpd_remove(&prmd->pd); in omap_prm_domain_init()
718 prm->prmd = prmd; in omap_prm_domain_init()
982 pm_genpd_remove(&prm->prmd->pd); in omap_prm_probe()