Lines Matching refs:pmu

50 	struct rockchip_pmu *pmu;  member
80 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_domain_is_idle() local
84 regmap_read(pmu->regmap, pmu->info->idle_offset, &val); in rockchip_pmu_domain_is_idle()
92 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_set_idle_request() local
95 regmap_update_bits(pmu->regmap, pmu->info->req_offset, in rockchip_pmu_set_idle_request()
101 regmap_read(pmu->regmap, pmu->info->ack_offset, &val); in rockchip_pmu_set_idle_request()
112 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_domain_is_on() local
115 regmap_read(pmu->regmap, pmu->info->status_offset, &val); in rockchip_pmu_domain_is_on()
124 struct rockchip_pmu *pmu = pd->pmu; in rockchip_do_pmu_set_power_domain() local
126 regmap_update_bits(pmu->regmap, pmu->info->pwr_offset, in rockchip_do_pmu_set_power_domain()
139 mutex_lock(&pd->pmu->mutex); in rockchip_pd_power()
165 mutex_unlock(&pd->pmu->mutex); in rockchip_pd_power()
221 static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu, in rockchip_pm_add_one_domain() argument
234 dev_err(pmu->dev, in rockchip_pm_add_one_domain()
240 if (id >= pmu->info->num_domains) { in rockchip_pm_add_one_domain()
241 dev_err(pmu->dev, "%s: invalid domain id %d\n", in rockchip_pm_add_one_domain()
246 pd_info = &pmu->info->domain_info[id]; in rockchip_pm_add_one_domain()
248 dev_err(pmu->dev, "%s: undefined domain id %d\n", in rockchip_pm_add_one_domain()
254 pd = devm_kzalloc(pmu->dev, in rockchip_pm_add_one_domain()
261 pd->pmu = pmu; in rockchip_pm_add_one_domain()
267 dev_err(pmu->dev, in rockchip_pm_add_one_domain()
275 dev_err(pmu->dev, in rockchip_pm_add_one_domain()
284 dev_dbg(pmu->dev, "added clock '%pC' to domain '%s'\n", in rockchip_pm_add_one_domain()
290 dev_err(pmu->dev, in rockchip_pm_add_one_domain()
304 pmu->genpd_data.domains[id] = &pd->genpd; in rockchip_pm_add_one_domain()
325 mutex_lock(&pd->pmu->mutex); in rockchip_pm_remove_one_domain()
327 mutex_unlock(&pd->pmu->mutex); in rockchip_pm_remove_one_domain()
332 static void rockchip_pm_domain_cleanup(struct rockchip_pmu *pmu) in rockchip_pm_domain_cleanup() argument
338 for (i = 0; i < pmu->genpd_data.num_domains; i++) { in rockchip_pm_domain_cleanup()
339 genpd = pmu->genpd_data.domains[i]; in rockchip_pm_domain_cleanup()
349 static void rockchip_configure_pd_cnt(struct rockchip_pmu *pmu, in rockchip_configure_pd_cnt() argument
354 regmap_write(pmu->regmap, domain_reg_offset, count); in rockchip_configure_pd_cnt()
356 regmap_write(pmu->regmap, domain_reg_offset + 4, count); in rockchip_configure_pd_cnt()
365 struct rockchip_pmu *pmu; in rockchip_pm_domain_probe() local
383 pmu = devm_kzalloc(dev, in rockchip_pm_domain_probe()
384 sizeof(*pmu) + in rockchip_pm_domain_probe()
385 pmu_info->num_domains * sizeof(pmu->domains[0]), in rockchip_pm_domain_probe()
387 if (!pmu) in rockchip_pm_domain_probe()
390 pmu->dev = &pdev->dev; in rockchip_pm_domain_probe()
391 mutex_init(&pmu->mutex); in rockchip_pm_domain_probe()
393 pmu->info = pmu_info; in rockchip_pm_domain_probe()
395 pmu->genpd_data.domains = pmu->domains; in rockchip_pm_domain_probe()
396 pmu->genpd_data.num_domains = pmu_info->num_domains; in rockchip_pm_domain_probe()
404 pmu->regmap = syscon_node_to_regmap(parent->of_node); in rockchip_pm_domain_probe()
410 rockchip_configure_pd_cnt(pmu, pmu_info->core_pwrcnt_offset, in rockchip_pm_domain_probe()
412 rockchip_configure_pd_cnt(pmu, pmu_info->gpu_pwrcnt_offset, in rockchip_pm_domain_probe()
418 error = rockchip_pm_add_one_domain(pmu, node); in rockchip_pm_domain_probe()
432 of_genpd_add_provider_onecell(np, &pmu->genpd_data); in rockchip_pm_domain_probe()
437 rockchip_pm_domain_cleanup(pmu); in rockchip_pm_domain_probe()