Re: [PATCH] hwmon: (ina2xx) make regulator 'vs' support optional

From: Ciprian Marian Costea
Date: Fri Apr 04 2025 - 04:37:09 EST


On 4/3/2025 7:06 PM, Guenter Roeck wrote:
On Thu, Apr 03, 2025 at 05:29:26PM +0300, Ciprian Marian Costea wrote:
On 4/3/2025 3:15 PM, Guenter Roeck wrote:
On 4/3/25 03:15, Ciprian Costea wrote:
From: Ciprian Marian Costea <ciprianmarian.costea@xxxxxxxxxxx>

S32G2/S32G3 based boards which integrate the ina231 sensor do not have a
dedicated voltage regulator.

Co-developed-by: Florin Buica <florin.buica@xxxxxxx>
Signed-off-by: Florin Buica <florin.buica@xxxxxxx>
Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@xxxxxxxxxxx>
---
  drivers/hwmon/ina2xx.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/hwmon/ina2xx.c b/drivers/hwmon/ina2xx.c
index 345fe7db9de9..ab4972f94a8c 100644
--- a/drivers/hwmon/ina2xx.c
+++ b/drivers/hwmon/ina2xx.c
@@ -959,8 +959,8 @@ static int ina2xx_probe(struct i2c_client *client)
          return PTR_ERR(data->regmap);
      }
-    ret = (dev, "vs");
-    if (ret)
+    ret = devm_regulator_get_enable_optional(dev, "vs");

devm_regulator_get_enable() should provide a dummy regulator if there is
no explicit regulator. Why does this not work ?

+    if (ret < 0 && ret != -ENODEV)

Why this added check ?

I know it used to be necessary if regulator support is disabled,
but that is no longer the case.

Guenter


Hello Guenter,

I've just tested and devm_regulator_get_enable() does work as you've
described, providing a dummy regulator.

But, according to the 'ti,ina2xx' binding [1] I see that the `vs-supply`
property is not required. Hence wouldn't it be correct for `vs-supply` to be
optional ? Using 'devm_regulator_get_enable_optional()'

Yes, but the reasoning you provided is different and suggested that the
current code would not work. Since that is not the case, the change would
be purely cosmetic. Also, I still don't see why the -ENODEV check would be
necessary.

Guenter

For boards such as S32G274A-EVB, S32G274A-RDB2 and S32G399A-RDB3 which do not have a voltage regulator, 'devm_regulator_get_enable_optional()' would return error value -19 (-ENODEV). Also, other usages from the Linux Kernel seem to perform the same error check when using 'devm_regulator_get_enable_optional()' [1], [2] and [3].

This patch would help in S32G2 and S32G3 to not print an unnecessary kernel log warning hinting usage of a dummy regulator when such a regulator is not required according to the binding.

Would you like me to send a V2 with the commit title updated as follows ?

"
hwmon: (ina2xx) make regulator 'vs' support optional

According to the 'ti,ina2xx' binding, the 'vs-supply' property is optional. Furthermore, S32G2/S32G3 based boards which integrate the ina231 sensor do not have a dedicated voltage regulator. Thus, making regulator support optional would help in avoiding any unnecessary kernel log warnings during boot.
"

[1] https://elixir.bootlin.com/linux/v6.13.7/source/drivers/iio/adc/ad7625.c#L524-L525
[2] https://elixir.bootlin.com/linux/v6.13.7/source/drivers/pci/controller/pcie-rcar-host.c#L982-L983
[3] https://elixir.bootlin.com/linux/v6.13.7/source/drivers/iio/adc/ad7944.c#L514-L515

Regards,
Ciprian