Lines Matching refs:dev_pm
67 * @dev_pm: multi power domain
73 struct clk_imx_acm_pm_domains dev_pm;
259 * @dev_pm: power domains for device
262 struct clk_imx_acm_pm_domains *dev_pm)
267 dev_pm->num_domains = of_count_phandle_with_args(dev->of_node, "power-domains",
269 if (dev_pm->num_domains <= 1)
272 dev_pm->pd_dev = devm_kmalloc_array(dev, dev_pm->num_domains,
273 sizeof(*dev_pm->pd_dev),
275 if (!dev_pm->pd_dev)
278 dev_pm->pd_dev_link = devm_kmalloc_array(dev,
279 dev_pm->num_domains,
280 sizeof(*dev_pm->pd_dev_link),
282 if (!dev_pm->pd_dev_link)
285 for (i = 0; i < dev_pm->num_domains; i++) {
286 dev_pm->pd_dev[i] = dev_pm_domain_attach_by_id(dev, i);
287 if (IS_ERR(dev_pm->pd_dev[i])) {
288 ret = PTR_ERR(dev_pm->pd_dev[i]);
292 dev_pm->pd_dev_link[i] = device_link_add(dev,
293 dev_pm->pd_dev[i],
297 if (!dev_pm->pd_dev_link[i]) {
298 dev_pm_domain_detach(dev_pm->pd_dev[i], false);
307 device_link_del(dev_pm->pd_dev_link[i]);
308 dev_pm_domain_detach(dev_pm->pd_dev[i], false);
316 * @dev_pm: multi power domain for device
319 struct clk_imx_acm_pm_domains *dev_pm)
323 if (dev_pm->num_domains <= 1)
326 for (i = 0; i < dev_pm->num_domains; i++) {
327 device_link_del(dev_pm->pd_dev_link[i]);
328 dev_pm_domain_detach(dev_pm->pd_dev[i], false);
363 ret = clk_imx_acm_attach_pm_domains(&pdev->dev, &priv->dev_pm);
409 clk_imx_acm_detach_pm_domains(&pdev->dev, &priv->dev_pm);
420 clk_imx_acm_detach_pm_domains(&pdev->dev, &priv->dev_pm);