drivers/hwmon/tmp108.c | 5 +++++ 1 file changed, 5 insertions(+)
TMP108/P3T1085 are powered by the V+/VCC regulator, add support for it.
Signed-off-by: Stanislav Jakubek <stano.jakubek@gmail.com>
---
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");
+
tmp108 = devm_kzalloc(dev, sizeof(*tmp108), GFP_KERNEL);
if (!tmp108)
return -ENOMEM;
--
2.43.0
On Tue, Nov 26, 2024 at 09:40:35AM +0100, Stanislav Jakubek wrote: > TMP108/P3T1085 are powered by the V+/VCC regulator, add support for it. > > Signed-off-by: Stanislav Jakubek <stano.jakubek@gmail.com> Applied. Thanks, Guenter
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@gmail.com> > --- > 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 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
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@gmail.com> > > --- > > 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 >
On 12/4/24 00:57, Stanislav Jakubek wrote: > 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@gmail.com> >>> --- >>> 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. > Ah yes, you are correct. I misinterpreted the code. I'll apply the patch. Thanks, Guenter > 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 >>
© 2016 - 2026 Red Hat, Inc.