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]>
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