Lines Matching +full:pd +full:- +full:disable

1 // SPDX-License-Identifier: GPL-2.0
9 // conjunction with runtime-pm. Support for both device-tree and non-device-tree
32 struct generic_pm_domain pd; member
38 struct exynos_pm_domain *pd; in exynos_pd_power() local
43 pd = container_of(domain, struct exynos_pm_domain, pd); in exynos_pd_power()
44 base = pd->base; in exynos_pd_power()
46 pwr = power_on ? pd->local_pwr_cfg : 0; in exynos_pd_power()
52 while ((readl_relaxed(base + 0x4) & pd->local_pwr_cfg) != pwr) { in exynos_pd_power()
54 op = (power_on) ? "enable" : "disable"; in exynos_pd_power()
55 pr_err("Power domain %s %s failed\n", domain->name, op); in exynos_pd_power()
56 return -ETIMEDOUT; in exynos_pd_power()
58 timeout--; in exynos_pd_power()
86 .compatible = "samsung,exynos4210-pd",
89 .compatible = "samsung,exynos5433-pd",
100 name = kbasename(node->full_name); in exynos_get_domain_name()
107 struct device *dev = &pdev->dev; in exynos_pd_probe()
108 struct device_node *np = dev->of_node; in exynos_pd_probe()
110 struct exynos_pm_domain *pd; in exynos_pd_probe() local
114 pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); in exynos_pd_probe()
115 if (!pd) in exynos_pd_probe()
116 return -ENOMEM; in exynos_pd_probe()
118 pd->pd.name = exynos_get_domain_name(np); in exynos_pd_probe()
119 if (!pd->pd.name) in exynos_pd_probe()
120 return -ENOMEM; in exynos_pd_probe()
122 pd->base = of_iomap(np, 0); in exynos_pd_probe()
123 if (!pd->base) { in exynos_pd_probe()
124 kfree_const(pd->pd.name); in exynos_pd_probe()
125 return -ENODEV; in exynos_pd_probe()
128 pd->pd.power_off = exynos_pd_power_off; in exynos_pd_probe()
129 pd->pd.power_on = exynos_pd_power_on; in exynos_pd_probe()
130 pd->local_pwr_cfg = pm_domain_cfg->local_pwr_cfg; in exynos_pd_probe()
132 on = readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg; in exynos_pd_probe()
134 pm_genpd_init(&pd->pd, NULL, !on); in exynos_pd_probe()
135 ret = of_genpd_add_provider_simple(np, &pd->pd); in exynos_pd_probe()
137 if (ret == 0 && of_parse_phandle_with_args(np, "power-domains", in exynos_pd_probe()
138 "#power-domain-cells", 0, &parent) == 0) { in exynos_pd_probe()
157 .name = "exynos-pd",