diff options
| -rw-r--r-- | Documentation/hwmon/ina238.rst | 9 | ||||
| -rw-r--r-- | drivers/hwmon/Kconfig | 6 | ||||
| -rw-r--r-- | drivers/hwmon/ina238.c | 17 |
3 files changed, 26 insertions, 6 deletions
diff --git a/Documentation/hwmon/ina238.rst b/Documentation/hwmon/ina238.rst index 72276096182150..43950d1ec551f7 100644 --- a/Documentation/hwmon/ina238.rst +++ b/Documentation/hwmon/ina238.rst @@ -32,6 +32,11 @@ Supported chips: Datasheet: https://www.ti.com/lit/gpn/ina238 + * Texas Instruments INA700 + + Datasheet: + https://www.ti.com/product/ina700 + * Texas Instruments INA780 Datasheet: @@ -61,8 +66,8 @@ INA237 is a functionally equivalent variant of INA238 with slightly different accuracy. INA228 is another variant of INA238 with higher ADC resolution. This chip also reports the energy. -INA780 is a variant of the chip series with built-in shunt resistor. -It also reports the energy. +INA700 and INA780 are variants of the chip series with built-in shunt resistor. +They also report the energy. SQ52206 is a mostly compatible chip from Sylergy. It reports the energy as well as the peak power consumption. diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig index c044c26fbd114d..8a41275ca518b1 100644 --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig @@ -2257,9 +2257,9 @@ config SENSORS_INA238 select REGMAP_I2C help If you say yes here you get support for INA228, INA237, INA238, - INA780, and SQ52206 power monitor chips. This driver supports voltage, - current, power, energy, and temperature measurements as well as alarm - configuration. + INA700, INA780, and SQ52206 power monitor chips. This driver supports + voltage, current, power, energy, and temperature measurements as well + as alarm configuration. This driver can also be built as a module. If so, the module will be called ina238. diff --git a/drivers/hwmon/ina238.c b/drivers/hwmon/ina238.c index 98255619adeb72..356d19b7675cac 100644 --- a/drivers/hwmon/ina238.c +++ b/drivers/hwmon/ina238.c @@ -101,7 +101,7 @@ static const struct regmap_config ina238_regmap_config = { .val_bits = 16, }; -enum ina238_ids { ina228, ina237, ina238, ina780, sq52206 }; +enum ina238_ids { ina228, ina237, ina238, ina700, ina780, sq52206 }; struct ina238_config { bool has_20bit_voltage_current; /* vshunt, vbus and current are 20-bit fields */ @@ -155,6 +155,16 @@ static const struct ina238_config ina238_config[] = { .bus_voltage_lsb = INA238_BUS_VOLTAGE_LSB, .temp_resolution = 12, }, + [ina700] = { + .has_20bit_voltage_current = false, + .has_energy = true, + .has_power_highest = false, + .power_calculate_factor = 20, + .config_default = INA238_CONFIG_DEFAULT, + .bus_voltage_lsb = INA238_BUS_VOLTAGE_LSB, + .temp_resolution = 12, + .current_lsb = 480, + }, [ina780] = { .has_20bit_voltage_current = false, .has_energy = true, @@ -846,6 +856,7 @@ static const struct i2c_device_id ina238_id[] = { { "ina228", ina228 }, { "ina237", ina237 }, { "ina238", ina238 }, + { "ina700", ina700 }, { "ina780", ina780 }, { "sq52206", sq52206 }, { } @@ -866,6 +877,10 @@ static const struct of_device_id __maybe_unused ina238_of_match[] = { .data = (void *)ina238 }, { + .compatible = "ti,ina700", + .data = (void *)ina700 + }, + { .compatible = "ti,ina780", .data = (void *)ina780 }, |
