ret = clk_bulk_prepare_enable(domain->num_clks, domain->clks); if (ret) {
dev_err(domain->dev, "failed to enable clocks for domain: %s\n", genpd->name); return ret;
}
val = readl(addr + MIX_SLICE_SW_CTRL_OFF);
val &= ~SLICE_SW_CTRL_PDN_SOFT_MASK;
writel(val, addr + MIX_SLICE_SW_CTRL_OFF);
init_off = readl(domain->addr + MIX_FUNC_STAT_OFF) & FUNC_STAT_ISO_STAT_MASK; /* Just to sync the status of hardware */ if (!init_off) {
ret = clk_bulk_prepare_enable(domain->num_clks, domain->clks); if (ret) return dev_err_probe(domain->dev, ret, "failed to enable clocks for domain: %s\n",
domain->genpd.name);
}
ret = pm_genpd_init(&domain->genpd, NULL, init_off); if (ret) goto err_clk_unprepare;
platform_set_drvdata(pdev, domain);
ret = of_genpd_add_provider_simple(np, &domain->genpd); if (ret) goto err_genpd_remove;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.