Skip to contentSkip to conversation

hwmon: add ti,ina237 support to ina238 driver

PATCH Applied Richard Leitner 3 participants 6 messages Oct 26, 2023

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v2 cover 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.

---
Changes in v2:
- Drop separate MAINTAINERS entry as it's covered by hwmon
- Drop separate dt-bindings for ina23{7,8} as discussed with Krzysztof
- Link to v1: https://lore.kernel.org/r/[email protected]

---
Richard Leitner (2):
hwmon: ina238: add ina237 support
dt-bindings: hwmon: ti,ina2xx: add ti,ina237

 Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml | 1 +
 drivers/hwmon/ina238.c                                 | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

---
base-commit: 4f82870119a46b0d04d91ef4697ac4977a255a9d
change-id: 20231025-ina237-0f1a9c14fd5d

Best regards,

Signature · 1 line
Richard Leitner <[email protected]>
#1 lore raw

PATCH v2 1/2 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.

---
 drivers/hwmon/ina238.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/hwmon/ina238.c +2 -1
index f519c22d3907..ca9f5d2c811b 100644
@@ -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" },
 	{ },
 };
Signature · 1 line
2.40.1
maintainer Applied
#2 lore raw

Re: [PATCH v2 1/2] hwmon: ina238: add ina237 support

Quoted 18 lines · Richard Leitner

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%          |
+------------------------+---------------+---------------+
Quoted 4 lines

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

Applied.

Thanks,
Guenter

Quoted 25 lines
---
 drivers/hwmon/ina238.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/hwmon/ina238.c +2 -1
index f519c22d3907..ca9f5d2c811b 100644
@@ -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" },
 	{ },
 };
#3 lore raw

PATCH v2 2/2 dt-bindings: hwmon: ti,ina2xx: add ti,ina237

In reply to Richard Leitner

Add ti,ina237 binding to ti,ina2xx as they are very similar and may share the same properties.

---
 Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml +1 -0
index 8648877d2d01..378d1f6aeeb3 100644
@@ -26,6 +26,7 @@ properties:
       - ti,ina226
       - ti,ina230
       - ti,ina231
+      - ti,ina237
       - ti,ina238
 
   reg:
Signature · 1 line
2.40.1
Acked-by on v2 2/2
#4 lore raw

Re: [PATCH v2 2/2] dt-bindings: hwmon: ti,ina2xx: add ti,ina237

Quoted 4 lines · Richard Leitner

Add ti,ina237 binding to ti,ina2xx as they are very similar and may share the same properties.

Thanks,
Conor.

Quoted 20 lines
---
 Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml +1 -0
index 8648877d2d01..378d1f6aeeb3 100644
@@ -26,6 +26,7 @@ properties:
       - ti,ina226
       - ti,ina230
       - ti,ina231
+      - ti,ina237
       - ti,ina238
 
   reg:
Signature · 2 lines
-- 
2.40.1