Attach the power good gpio to the regulator device devres instead of the
parent device to fix problems if probe is run multiple times
(rmmod/insmod or some deferral).
Fixes: 8c485bedfb785 ("regulator: sy7636a: Initial commit")
Signed-off-by: Andreas Kemnade <akemnade@kernel.org>
---
drivers/regulator/sy7636a-regulator.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/regulator/sy7636a-regulator.c b/drivers/regulator/sy7636a-regulator.c
index d1e7ba1fb3e1a..27e3d939b7bb9 100644
--- a/drivers/regulator/sy7636a-regulator.c
+++ b/drivers/regulator/sy7636a-regulator.c
@@ -83,9 +83,11 @@ static int sy7636a_regulator_probe(struct platform_device *pdev)
if (!regmap)
return -EPROBE_DEFER;
- gdp = devm_gpiod_get(pdev->dev.parent, "epd-pwr-good", GPIOD_IN);
+ device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent);
+
+ gdp = devm_gpiod_get(&pdev->dev, "epd-pwr-good", GPIOD_IN);
if (IS_ERR(gdp)) {
- dev_err(pdev->dev.parent, "Power good GPIO fault %ld\n", PTR_ERR(gdp));
+ dev_err(&pdev->dev, "Power good GPIO fault %ld\n", PTR_ERR(gdp));
return PTR_ERR(gdp);
}
@@ -105,7 +107,6 @@ static int sy7636a_regulator_probe(struct platform_device *pdev)
}
config.dev = &pdev->dev;
- config.dev->of_node = pdev->dev.parent->of_node;
config.regmap = regmap;
rdev = devm_regulator_register(&pdev->dev, &desc, &config);
--
2.39.5
On Sat, 6 Sep 2025, at 7:09 PM, Andreas Kemnade wrote: > Attach the power good gpio to the regulator device devres instead of the > parent device to fix problems if probe is run multiple times > (rmmod/insmod or some deferral). > > Fixes: 8c485bedfb785 ("regulator: sy7636a: Initial commit") > Signed-off-by: Andreas Kemnade <akemnade@kernel.org> Reviewed-by: Alistair Francis <alistair@alistair23.me> Alistair > --- > drivers/regulator/sy7636a-regulator.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/regulator/sy7636a-regulator.c b/drivers/regulator/sy7636a-regulator.c > index d1e7ba1fb3e1a..27e3d939b7bb9 100644 > --- a/drivers/regulator/sy7636a-regulator.c > +++ b/drivers/regulator/sy7636a-regulator.c > @@ -83,9 +83,11 @@ static int sy7636a_regulator_probe(struct platform_device *pdev) > if (!regmap) > return -EPROBE_DEFER; > > - gdp = devm_gpiod_get(pdev->dev.parent, "epd-pwr-good", GPIOD_IN); > + device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent); > + > + gdp = devm_gpiod_get(&pdev->dev, "epd-pwr-good", GPIOD_IN); > if (IS_ERR(gdp)) { > - dev_err(pdev->dev.parent, "Power good GPIO fault %ld\n", PTR_ERR(gdp)); > + dev_err(&pdev->dev, "Power good GPIO fault %ld\n", PTR_ERR(gdp)); > return PTR_ERR(gdp); > } > > @@ -105,7 +107,6 @@ static int sy7636a_regulator_probe(struct platform_device *pdev) > } > > config.dev = &pdev->dev; > - config.dev->of_node = pdev->dev.parent->of_node; > config.regmap = regmap; > > rdev = devm_regulator_register(&pdev->dev, &desc, &config); > > -- > 2.39.5 > >
On Sat, Sep 06, 2025 at 11:09:13AM +0200, Andreas Kemnade wrote: >Attach the power good gpio to the regulator device devres instead of the >parent device to fix problems if probe is run multiple times >(rmmod/insmod or some deferral). > >Fixes: 8c485bedfb785 ("regulator: sy7636a: Initial commit") >Signed-off-by: Andreas Kemnade <akemnade@kernel.org> Reviewed-by: Peng Fan <peng.fan@nxp.com>
© 2016 - 2025 Red Hat, Inc.