power: domain: add dev_power_domain_on
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> Changed to static inline and added a condition into C file: Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
640abba507
commit
9c1e982218
@ -107,6 +107,27 @@ int power_domain_off(struct power_domain *power_domain)
|
||||
return ops->off(power_domain);
|
||||
}
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
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;
|
||||
}
|
||||
#endif
|
||||
|
||||
UCLASS_DRIVER(power_domain) = {
|
||||
.id = UCLASS_POWER_DOMAIN,
|
||||
.name = "power_domain",
|
||||
|
@ -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
|
||||
static inline int dev_power_domain_on(struct udevice *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user