2023-10-25 10:36:15

by Richard Leitner

[permalink] [raw]
Subject: [PATCH 0/4] hwmon: add ti,ina237 support to ina238 driver

This series adds support for the ina237 power monitor to the ina238
driver as those two are very similar.

As the driver missed MAINTAINERS and dt-bindings I've also added them.
If this is incorrect please just ignore the patches or drop me a line so
I can provide a v2.

Signed-off-by: Richard Leitner <[email protected]>
---
Richard Leitner (4):
MAINTAINERS: Add entry for ina238 driver
dt-bindings: hwmon: add ti,ina238
hwmon: ina238: add ina237 support
dt-bindings: hwmon: ti,ina238: add ti,ina237

.../devicetree/bindings/hwmon/ti,ina238.yaml | 47 ++++++++++++++++++++++
MAINTAINERS | 7 ++++
drivers/hwmon/ina238.c | 3 +-
3 files changed, 56 insertions(+), 1 deletion(-)
---
base-commit: 4f82870119a46b0d04d91ef4697ac4977a255a9d
change-id: 20231025-ina237-0f1a9c14fd5d

Best regards,
--
Richard Leitner <[email protected]>


2023-10-25 10:36:39

by Richard Leitner

[permalink] [raw]
Subject: [PATCH 3/4] hwmon: ina238: add ina237 support

The INA237 "85-V, 16-Bit, Precision Power Monitor With I2C Interface" is
basically the same as INA328. Therefore add a corresponding compatible
to the driver.

According to the datasheet the main difference is the current and power
monitoring accuracy:

+------------------------+---------------+---------------+
| | INA238 | INA237 |
+------------------------+---------------+---------------+
| Offset voltage | +/- 5µV | +/- 50µV |
| Offset drift | +/- 0.02µV/°C | +/- 0.02µV/°C |
| Gain error | +/- 0.1% | +/- 0.3% |
| Gain error drift | +/- 25ppm/°C | +/- 50ppm/°C |
| Common mode rejection | 140dB | 120dB |
| Power accuracy | 0.7% | 1.6% |
+------------------------+---------------+---------------+

As well as the missing DEVICE_ID register at 0x3F, which is currently
not in use by the driver.

Signed-off-by: Richard Leitner <[email protected]>
---
drivers/hwmon/ina238.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/hwmon/ina238.c b/drivers/hwmon/ina238.c
index f519c22d3907..ca9f5d2c811b 100644
--- a/drivers/hwmon/ina238.c
+++ b/drivers/hwmon/ina238.c
@@ -33,7 +33,7 @@
#define INA238_BUS_UNDER_VOLTAGE 0xf
#define INA238_TEMP_LIMIT 0x10
#define INA238_POWER_LIMIT 0x11
-#define INA238_DEVICE_ID 0x3f
+#define INA238_DEVICE_ID 0x3f /* not available on INA237 */

#define INA238_CONFIG_ADCRANGE BIT(4)

@@ -622,6 +622,7 @@ static const struct i2c_device_id ina238_id[] = {
MODULE_DEVICE_TABLE(i2c, ina238_id);

static const struct of_device_id __maybe_unused ina238_of_match[] = {
+ { .compatible = "ti,ina237" },
{ .compatible = "ti,ina238" },
{ },
};

--
2.40.1