[U-Boot] [PATCH V2 1/2] power: domain: add dev_power_domain_on
Lokesh Vutla
lokeshvutla at ti.com
Tue Sep 24 06:14:36 UTC 2019
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 at nxp.com>
Reviewed-by: Lokesh Vutla <lokeshvutla at 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
>
More information about the U-Boot
mailing list