Re: [PATCH] hwmon: (tmp108) Add basic regulator support
From: Stanislav Jakubek
Date: Wed Dec 04 2024 - 04:05:03 EST
On Sat, Nov 30, 2024 at 09:58:17AM -0800, Guenter Roeck wrote:
> On 11/26/24 00:40, Stanislav Jakubek wrote:
> > TMP108/P3T1085 are powered by the V+/VCC regulator, add support for it.
> >
> > Signed-off-by: Stanislav Jakubek <stano.jakubek@xxxxxxxxx>
> > ---
> > drivers/hwmon/tmp108.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/hwmon/tmp108.c b/drivers/hwmon/tmp108.c
> > index 1f36af2cd2d9..85e4466259a3 100644
> > --- a/drivers/hwmon/tmp108.c
> > +++ b/drivers/hwmon/tmp108.c
> > @@ -17,6 +17,7 @@
> > #include <linux/init.h>
> > #include <linux/jiffies.h>
> > #include <linux/regmap.h>
> > +#include <linux/regulator/consumer.h>
> > #include <linux/slab.h>
> > #define DRIVER_NAME "tmp108"
> > @@ -331,6 +332,10 @@ static int tmp108_common_probe(struct device *dev, struct regmap *regmap, char *
> > u32 config;
> > int err;
> > + err = devm_regulator_get_enable(dev, "vcc");
> > + if (err)
> > + return dev_err_probe(dev, err, "Failed to enable regulator\n");
> > +
>
> Problem with this is that existing devicetree bindings do not provide
> a reference to the regulator. Those would now fail to instantiate,
> which would be unacceptable. I think you'll need something like
Doesn't devm_regulator_get_enable fallback to a dummy regulator when
a reference to the regulator isn't provided?
lm90 does it this way too.
Regards,
Stanislav
>
> err = devm_regulator_get_enable_optional(dev, "vcc");
> if (err && err != -ENODEV)
> return dev_err_probe(dev, err, "Failed to enable regulator\n");
>
> Even though the regulator is now mandatory, existing devicetree bindings
> don't know that.
>
> Guenter
>