[PATCH 09/18] regulator: add device reference to regulator_dev
Marco Felsch
m.felsch at pengutronix.de
Mon Sep 28 11:50:32 EDT 2020
It is useful to know the physical device a regulator_dev belongs to.
This is at least needed for the new deep-probe mechanism. It is also
useful for a few regulator drivers to drop their own device_d reference.
Signed-off-by: Marco Felsch <m.felsch at pengutronix.de>
---
drivers/regulator/anatop-regulator.c | 1 +
drivers/regulator/bcm2835.c | 1 +
drivers/regulator/fixed.c | 1 +
drivers/regulator/stm32-pwr.c | 1 +
drivers/regulator/stpmic1_regulator.c | 1 +
include/regulator.h | 2 ++
6 files changed, 7 insertions(+)
diff --git a/drivers/regulator/anatop-regulator.c b/drivers/regulator/anatop-regulator.c
index 7ec9446a0a..917f7e8fdd 100644
--- a/drivers/regulator/anatop-regulator.c
+++ b/drivers/regulator/anatop-regulator.c
@@ -67,6 +67,7 @@ static int anatop_regulator_probe(struct device_d *dev)
rdev->desc = rdesc;
rdev->regmap = syscon_node_to_regmap(anatop_np);
+ rdev->dev = dev;
if (IS_ERR(rdev->regmap))
return PTR_ERR(rdev->regmap);
diff --git a/drivers/regulator/bcm2835.c b/drivers/regulator/bcm2835.c
index ea7cf7fe1e..1b1eeaf3b8 100644
--- a/drivers/regulator/bcm2835.c
+++ b/drivers/regulator/bcm2835.c
@@ -126,6 +126,7 @@ static int regulator_bcm2835_probe(struct device_d *dev)
rb->rdesc.ops = &bcm2835_ops;
rb->rdev.desc = &rb->rdesc;
rb->dev = dev;
+ rb->rdev.dev = dev;
ret = dev_regulator_register(&rb->rdev, rb->devname, NULL);
if (ret)
diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c
index 0b1c752493..160a55163f 100644
--- a/drivers/regulator/fixed.c
+++ b/drivers/regulator/fixed.c
@@ -82,6 +82,7 @@ static int regulator_fixed_probe(struct device_d *dev)
fix->rdesc.ops = &fixed_ops;
fix->rdev.desc = &fix->rdesc;
+ fix->rdev.dev = dev;
if (of_find_property(dev->device_node, "regulator-always-on", NULL) ||
of_find_property(dev->device_node, "regulator-boot-on", NULL)) {
diff --git a/drivers/regulator/stm32-pwr.c b/drivers/regulator/stm32-pwr.c
index 296f95bc4c..a509eb6ae6 100644
--- a/drivers/regulator/stm32-pwr.c
+++ b/drivers/regulator/stm32-pwr.c
@@ -182,6 +182,7 @@ static int stm32_pwr_regulator_probe(struct device_d *dev)
priv->dev = dev;
priv->rdev.desc = &desc->desc;
+ priv->rdev.dev = dev;
priv->supply = regulator_get(dev, desc->supply_name);
if (IS_ERR(priv->supply))
diff --git a/drivers/regulator/stpmic1_regulator.c b/drivers/regulator/stpmic1_regulator.c
index 2b4b729541..60905d394e 100644
--- a/drivers/regulator/stpmic1_regulator.c
+++ b/drivers/regulator/stpmic1_regulator.c
@@ -390,6 +390,7 @@ static int stpmic1_regulator_register(struct device_d *dev, int id,
cfg->dev = dev;
cfg->rdev.desc = &cfg->desc;
+ cfg->rdev.dev = dev;
cfg->rdev.regmap = dev_get_regmap(dev->parent, NULL);
if (IS_ERR(cfg->rdev.regmap))
return PTR_ERR(cfg->rdev.regmap);
diff --git a/include/regulator.h b/include/regulator.h
index a9cb6dedca..44eee7b0ad 100644
--- a/include/regulator.h
+++ b/include/regulator.h
@@ -77,6 +77,8 @@ struct regulator_dev {
const struct regulator_desc *desc;
struct regmap *regmap;
int boot_on;
+ /* the device this regulator device belongs to */
+ struct device_d *dev;
};
struct regulator_ops {
--
2.20.1
More information about the barebox
mailing list