]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
hwmon: (ina2xx) Add support for INA234
authorIan Ray <ian.ray@gehealthcare.com>
Fri, 20 Feb 2026 11:20:22 +0000 (13:20 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 31 Mar 2026 02:45:04 +0000 (19:45 -0700)
INA234 is register compatible to INA226 (excepting manufacturer and die
or device id registers) but has different scaling.

Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
Reviewed-by: Bence Csókás <bence98@sch.bme.hu> # v2
Tested-by: Jens Almer <bagawk@gmail.com>
Tested-by: Jonas Rebmann <jre@pengutronix.de>
Link: https://lore.kernel.org/r/20260220112024.97446-4-ian.ray@gehealthcare.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/hwmon/ina2xx.rst
drivers/hwmon/Kconfig
drivers/hwmon/ina2xx.c

index a4ddf4bd2b0816b288e1a344ff5e62c3ce0d67d5..d64e7af46a124212b2ed2887d7cfd527f9c87aca 100644 (file)
@@ -74,6 +74,16 @@ Supported chips:
               https://us1.silergy.com/
 
 
+  * Texas Instruments INA234
+
+    Prefix: 'ina234'
+
+    Addresses: I2C 0x40 - 0x43
+
+    Datasheet: Publicly available at the Texas Instruments website
+
+              https://www.ti.com/
+
 Author: Lothar Felten <lothar.felten@gmail.com>
 
 Description
@@ -89,7 +99,7 @@ interface. The INA220 monitors both shunt drop and supply voltage.
 The INA226 is a current shunt and power monitor with an I2C interface.
 The INA226 monitors both a shunt voltage drop and bus supply voltage.
 
-INA230 and INA231 are high or low side current shunt and power monitors
+INA230, INA231, and INA234 are high or low side current shunt and power monitors
 with an I2C interface. The chips monitor both a shunt voltage drop and
 bus supply voltage.
 
@@ -132,6 +142,7 @@ Additional entries are available for the following chips:
   * ina226
   * ina230
   * ina231
+  * ina234
   * ina260
   * sy24655
 
index 27088850a0637de2a6af708025c2f0be3e57c7e0..817a0bfad8c75eea6ab427e43e258bb83fb7b4db 100644 (file)
@@ -2247,7 +2247,7 @@ config SENSORS_INA2XX
        select REGMAP_I2C
        help
          If you say yes here you get support for INA219, INA220, INA226,
-         INA230, INA231, INA260, and SY24655 power monitor chips.
+         INA230, INA231, INA234, INA260, and SY24655 power monitor chips.
 
          The INA2xx driver is configured for the default configuration of
          the part as described in the datasheet.
index cd0d39ee7616cbc557c648074f31d487c9b8b820..836e15a5a780a5bc91b25f086e7492c864cca5d3 100644 (file)
@@ -138,6 +138,7 @@ static const struct regmap_config ina2xx_regmap_config = {
 enum ina2xx_ids {
        ina219,
        ina226,
+       ina234,
        ina260,
        sy24655
 };
@@ -191,6 +192,18 @@ static const struct ina2xx_config ina2xx_config[] = {
                .has_power_average = false,
                .has_update_interval = true,
        },
+       [ina234] = {
+               .config_default = INA226_CONFIG_DEFAULT,
+               .calibration_value = 2048,
+               .shunt_div = 400, /* 2.5 µV/LSB raw ADC reading from INA2XX_SHUNT_VOLTAGE */
+               .bus_voltage_shift = 4,
+               .bus_voltage_lsb = 25600,
+               .power_lsb_factor = 32,
+               .has_alerts = true,
+               .has_ishunt = false,
+               .has_power_average = false,
+               .has_update_interval = true,
+       },
        [ina260] = {
                .config_default = INA260_CONFIG_DEFAULT,
                .shunt_div = 400,
@@ -992,6 +1005,7 @@ static const struct i2c_device_id ina2xx_id[] = {
        { "ina226", ina226 },
        { "ina230", ina226 },
        { "ina231", ina226 },
+       { "ina234", ina234 },
        { "ina260", ina260 },
        { "sy24655", sy24655 },
        { }
@@ -1023,6 +1037,10 @@ static const struct of_device_id __maybe_unused ina2xx_of_match[] = {
                .compatible = "ti,ina231",
                .data = (void *)ina226
        },
+       {
+               .compatible = "ti,ina234",
+               .data = (void *)ina234
+       },
        {
                .compatible = "ti,ina260",
                .data = (void *)ina260