From: Marek Vasut Date: Tue, 12 Apr 2022 22:42:52 +0000 (+0200) Subject: power_domain: Add power_domain_get_by_name() X-Git-Tag: v2022.07~90^2~57 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=63c390a1eac72bcf46d0b61d69c570fe5e48177d;p=platform%2Fkernel%2Fu-boot.git power_domain: Add power_domain_get_by_name() Implement power_domain_get_by_name() convenience function which parses DT property 'power-domain-names' and looks up power domain by matching name. Signed-off-by: Marek Vasut Cc: Patrick Delaunay Cc: Simon Glass --- diff --git a/drivers/power/domain/power-domain-uclass.c b/drivers/power/domain/power-domain-uclass.c index 0c5823c..74c33d4 100644 --- a/drivers/power/domain/power-domain-uclass.c +++ b/drivers/power/domain/power-domain-uclass.c @@ -80,6 +80,20 @@ int power_domain_get_by_index(struct udevice *dev, return 0; } +int power_domain_get_by_name(struct udevice *dev, + struct power_domain *power_domain, const char *name) +{ + int index; + + index = dev_read_stringlist_search(dev, "power-domain-names", name); + if (index < 0) { + debug("fdt_stringlist_search() failed: %d\n", index); + return index; + } + + return power_domain_get_by_index(dev, power_domain, index); +} + int power_domain_get(struct udevice *dev, struct power_domain *power_domain) { return power_domain_get_by_index(dev, power_domain, 0); diff --git a/include/power-domain.h b/include/power-domain.h index 113276b..2ff6c77 100644 --- a/include/power-domain.h +++ b/include/power-domain.h @@ -108,6 +108,27 @@ int power_domain_get_by_index(struct udevice *dev, #endif /** + * power_domain_get_by_name - Get the named power domain for a device. + * + * @dev: The client device. + * @power_domain: A pointer to a power domain struct to initialize. + * @name: Power domain name to be powered on. + * + * Return: 0 if OK, or a negative error code. + */ +#if CONFIG_IS_ENABLED(POWER_DOMAIN) +int power_domain_get_by_name(struct udevice *dev, + struct power_domain *power_domain, const char *name); +#else +static inline +int power_domain_get_by_name(struct udevice *dev, + struct power_domain *power_domain, const char *name) +{ + return -ENOSYS; +} +#endif + +/** * power_domain_free - Free a previously requested power domain. * * @power_domain: A power domain struct that was previously successfully