Lines Matching refs:dev_pm
65 * @dev_pm: multi power domain
71 struct clk_imx_acm_pm_domains dev_pm;
254 * @dev_pm: power domains for device
257 struct clk_imx_acm_pm_domains *dev_pm)
262 dev_pm->num_domains = of_count_phandle_with_args(dev->of_node, "power-domains",
264 if (dev_pm->num_domains <= 1)
267 dev_pm->pd_dev = devm_kmalloc_array(dev, dev_pm->num_domains,
268 sizeof(*dev_pm->pd_dev),
270 if (!dev_pm->pd_dev)
273 dev_pm->pd_dev_link = devm_kmalloc_array(dev,
274 dev_pm->num_domains,
275 sizeof(*dev_pm->pd_dev_link),
277 if (!dev_pm->pd_dev_link)
280 for (i = 0; i < dev_pm->num_domains; i++) {
281 dev_pm->pd_dev[i] = dev_pm_domain_attach_by_id(dev, i);
282 if (IS_ERR(dev_pm->pd_dev[i])) {
283 ret = PTR_ERR(dev_pm->pd_dev[i]);
287 dev_pm->pd_dev_link[i] = device_link_add(dev,
288 dev_pm->pd_dev[i],
292 if (IS_ERR(dev_pm->pd_dev_link[i])) {
293 dev_pm_domain_detach(dev_pm->pd_dev[i], false);
294 ret = PTR_ERR(dev_pm->pd_dev_link[i]);
302 device_link_del(dev_pm->pd_dev_link[i]);
303 dev_pm_domain_detach(dev_pm->pd_dev[i], false);
311 * @dev_pm: multi power domain for device
314 struct clk_imx_acm_pm_domains *dev_pm)
318 if (dev_pm->num_domains <= 1)
321 for (i = 0; i < dev_pm->num_domains; i++) {
322 device_link_del(dev_pm->pd_dev_link[i]);
323 dev_pm_domain_detach(dev_pm->pd_dev[i], false);
358 ret = clk_imx_acm_attach_pm_domains(&pdev->dev, &priv->dev_pm);
392 clk_imx_acm_detach_pm_domains(&pdev->dev, &priv->dev_pm);
403 clk_imx_acm_detach_pm_domains(&pdev->dev, &priv->dev_pm);