Commit 88a928ee authored by Ian Ray's avatar Ian Ray Committed by Guenter Roeck
Browse files

hwmon: (ina2xx) Add support for INA234



INA234 is register compatible to INA226 (excepting manufacturer and die
or device id registers) but has different scaling.

Signed-off-by: default avatarIan Ray <ian.ray@gehealthcare.com>
Reviewed-by: Bence Csókás <bence98@sch.bme.hu> # v2
Tested-by: default avatarJens Almer <bagawk@gmail.com>
Tested-by: default avatarJonas Rebmann <jre@pengutronix.de>
Link: https://lore.kernel.org/r/20260220112024.97446-4-ian.ray@gehealthcare.com


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent f6e14b5b
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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

+1 −1
Original line number Diff line number Diff line
@@ -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.
+18 −0
Original line number Diff line number Diff line
@@ -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