/* Wait for the power controller to be idle. */
ret = readl_poll_timeout(pd->base + PD_STATUS_REG, status,
!(status & PD_STATUS_BUSY), 100, 1000); if (ret) return ret;
/* Wait for the state transition to complete. */
ret = readl_poll_timeout(pd->base + PD_STATUS_REG, status,
FIELD_GET(PD_STATUS_STATE, status) == state &&
(status & PD_STATUS_COMPLETE), 100, 1000); if (ret) return ret;
/* Clear the completion flag. */
writel(status, pd->base + PD_STATUS_REG);
staticstruct platform_driver sun20i_ppu_driver = {
.probe = sun20i_ppu_probe,
.driver = {
.name = "sun20i-ppu",
.of_match_table = sun20i_ppu_of_match, /* Power domains cannot be removed while they are in use. */
.suppress_bind_attrs = true,
},
};
module_platform_driver(sun20i_ppu_driver);
MODULE_AUTHOR("Samuel Holland <samuel@sholland.org>");
MODULE_DESCRIPTION("Allwinner D1 PPU power domain driver");
MODULE_LICENSE("GPL");
Messung V0.5 in Prozent
¤ 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.0.12Bemerkung:
(vorverarbeitet am 2026-06-08)
¤
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.