| From f84e3180e78015c320f23d180e82641d80b550e0 Mon Sep 17 00:00:00 2001 |
| From: Marek Vasut <marex@denx.de> |
| Date: Fri, 20 Dec 2019 17:44:49 +0100 |
| Subject: [PATCH] regulator: core: Add regulator_is_equal() helper |
| |
| commit b059b7e0ec3208ff1e17cff6387d75a9fbab4e02 upstream. |
| |
| Add regulator_is_equal() helper to compare whether two regulators are |
| the same. This is useful for checking whether two separate regulators |
| in a driver are actually the same supply. |
| |
| Signed-off-by: Marek Vasut <marex@denx.de> |
| Cc: Fabio Estevam <festevam@gmail.com> |
| Cc: Igor Opaniuk <igor.opaniuk@toradex.com> |
| Cc: Liam Girdwood <lgirdwood@gmail.com> |
| Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com> |
| Cc: Mark Brown <broonie@kernel.org> |
| Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> |
| Link: https://lore.kernel.org/r/20191220164450.1395038-1-marex@denx.de |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c |
| index b9ae45d2d199..599f0b755158 100644 |
| --- a/drivers/regulator/helpers.c |
| +++ b/drivers/regulator/helpers.c |
| @@ -14,6 +14,8 @@ |
| #include <linux/regulator/driver.h> |
| #include <linux/module.h> |
| |
| +#include "internal.h" |
| + |
| /** |
| * regulator_is_enabled_regmap - standard is_enabled() for regmap users |
| * |
| @@ -861,3 +863,15 @@ int regulator_get_current_limit_regmap(struct regulator_dev *rdev) |
| return -EINVAL; |
| } |
| EXPORT_SYMBOL_GPL(regulator_get_current_limit_regmap); |
| + |
| +/** |
| + * regulator_is_equal - test whether two regulators are the same |
| + * |
| + * @reg1: first regulator to operate on |
| + * @reg2: second regulator to operate on |
| + */ |
| +bool regulator_is_equal(struct regulator *reg1, struct regulator *reg2) |
| +{ |
| + return reg1->rdev == reg2->rdev; |
| +} |
| +EXPORT_SYMBOL_GPL(regulator_is_equal); |
| diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h |
| index 815983419375..6250ac91fa5d 100644 |
| --- a/include/linux/regulator/consumer.h |
| +++ b/include/linux/regulator/consumer.h |
| @@ -281,6 +281,8 @@ void devm_regulator_unregister_notifier(struct regulator *regulator, |
| void *regulator_get_drvdata(struct regulator *regulator); |
| void regulator_set_drvdata(struct regulator *regulator, void *data); |
| |
| +bool regulator_is_equal(struct regulator *reg1, struct regulator *reg2); |
| + |
| #else |
| |
| /* |
| @@ -580,6 +582,11 @@ static inline int regulator_list_voltage(struct regulator *regulator, unsigned s |
| return -EINVAL; |
| } |
| |
| +static inline bool |
| +regulator_is_equal(struct regulator *reg1, struct regulator *reg2); |
| +{ |
| + return false; |
| +} |
| #endif |
| |
| static inline int regulator_set_voltage_triplet(struct regulator *regulator, |
| -- |
| 2.7.4 |
| |