[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