
On 17/09/19 2:59 PM, Peng Fan wrote:
Add this new API to power on multiple domains attached to a device.
Signed-off-by: Peng Fan peng.fan@nxp.com
Reviewed-by: Lokesh Vutla lokeshvutla@ti.com
Thanks and regards, Lokesh
V2: New patch
drivers/power/domain/power-domain-uclass.c | 19 +++++++++++++++++++ include/power-domain.h | 17 +++++++++++++++++ 2 files changed, 36 insertions(+)
diff --git a/drivers/power/domain/power-domain-uclass.c b/drivers/power/domain/power-domain-uclass.c index 2ea0ff24c7..95aa9b30ef 100644 --- a/drivers/power/domain/power-domain-uclass.c +++ b/drivers/power/domain/power-domain-uclass.c @@ -107,6 +107,25 @@ int power_domain_off(struct power_domain *power_domain) return ops->off(power_domain); }
+int dev_power_domain_on(struct udevice *dev) +{
- struct power_domain pd;
- int i, count, ret;
- count = dev_count_phandle_with_args(dev, "power-domains",
"#power-domain-cells");
- for (i = 0; i < count; i++) {
ret = power_domain_get_by_index(dev, &pd, i);
if (ret)
return ret;
ret = power_domain_on(&pd);
if (ret)
return ret;
- }
- return 0;
+}
UCLASS_DRIVER(power_domain) = { .id = UCLASS_POWER_DOMAIN, .name = "power_domain", diff --git a/include/power-domain.h b/include/power-domain.h index ef15dc9f60..23a63f3b18 100644 --- a/include/power-domain.h +++ b/include/power-domain.h @@ -155,4 +155,21 @@ static inline int power_domain_off(struct power_domain *power_domain) } #endif
+/**
- dev_power_domain_on - Enable power domains for a device .
- @dev: The client device.
- @return 0 if OK, or a negative error code.
- */
+#if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) && \
- CONFIG_IS_ENABLED(POWER_DOMAIN)
+int dev_power_domain_on(struct udevice *dev); +#else +int dev_power_domain_on(struct udevice *dev) +{
- return 0;
+} +#endif
#endif