aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/hwmon/ina238.rst9
-rw-r--r--drivers/hwmon/Kconfig6
-rw-r--r--drivers/hwmon/ina238.c17
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
},