Add a property for reporting the error margin expected
by fuel gauge chips.

Signed-off-by: Sebastian Reichel <sebastian.reic...@collabora.com>
---
 Documentation/ABI/testing/sysfs-class-power | 15 +++++++++++++++
 drivers/power/supply/power_supply_sysfs.c   |  1 +
 include/linux/power_supply.h                |  1 +
 3 files changed, 17 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-class-power 
b/Documentation/ABI/testing/sysfs-class-power
index bf3b48f022dc..2f896555ae23 100644
--- a/Documentation/ABI/testing/sysfs-class-power
+++ b/Documentation/ABI/testing/sysfs-class-power
@@ -74,6 +74,21 @@ Description:
                Access: Read, Write
                Valid values: 0 - 100 (percent)
 
+What:          /sys/class/power_supply/<supply_name>/capacity_error_margin
+Date:          April 2019
+Contact:       linux...@vger.kernel.org
+Description:
+               Battery capacity measurement becomes unreliable without
+               recalibration. This values provides the maximum error
+               margin expected to exist by the fuel gauge in percent.
+               Values close to 0% will be returned after (re-)calibration
+               has happened. Over time the error margin will increase.
+               100% means, that the capacity related values are basically
+               completely useless.
+
+               Access: Read
+               Valid values: 0 - 100 (percent)
+
 What:          /sys/class/power_supply/<supply_name>/capacity_level
 Date:          June 2009
 Contact:       linux...@vger.kernel.org
diff --git a/drivers/power/supply/power_supply_sysfs.c 
b/drivers/power/supply/power_supply_sysfs.c
index d21b4e0edf38..e664774a2d1e 100644
--- a/drivers/power/supply/power_supply_sysfs.c
+++ b/drivers/power/supply/power_supply_sysfs.c
@@ -178,6 +178,7 @@ static struct power_supply_attr power_supply_attrs[] = {
        POWER_SUPPLY_ATTR(CAPACITY),
        POWER_SUPPLY_ATTR(CAPACITY_ALERT_MIN),
        POWER_SUPPLY_ATTR(CAPACITY_ALERT_MAX),
+       POWER_SUPPLY_ATTR(CAPACITY_ERROR_MARGIN),
        POWER_SUPPLY_ENUM_ATTR(CAPACITY_LEVEL),
        POWER_SUPPLY_ATTR(TEMP),
        POWER_SUPPLY_ATTR(TEMP_MAX),
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 1f60731ec7fe..453a85f25635 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -139,6 +139,7 @@ enum power_supply_property {
        POWER_SUPPLY_PROP_CAPACITY, /* in percents! */
        POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN, /* in percents! */
        POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX, /* in percents! */
+       POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN, /* in percents! */
        POWER_SUPPLY_PROP_CAPACITY_LEVEL,
        POWER_SUPPLY_PROP_TEMP,
        POWER_SUPPLY_PROP_TEMP_MAX,
-- 
2.26.2

Reply via email to