power_supply: max17042: Add OF support for setting thresholds
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>
Mon, 8 Jun 2015 01:11:38 +0000 (10:11 +0900)
committerSebastian Reichel <sre@kernel.org>
Wed, 10 Jun 2015 14:14:03 +0000 (16:14 +0200)
The commit edd4ab055931 ("power: max17042_battery: add HEALTH and TEMP_*
properties support") added support for setting voltage and temperature
thresholds with platform data. For DeviceTree default of 0 was always
used.

This caused reporting battery health always as over voltage or
over heated.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Fixes: edd4ab055931 ("power: max17042_battery: add HEALTH and TEMP_* properties support")
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Documentation/devicetree/bindings/power_supply/max17042_battery.txt
drivers/power/max17042_battery.c

index 5bc9b68..3f3894a 100644 (file)
@@ -9,10 +9,23 @@ Optional properties :
                          (datasheet-recommended value is 10000).
    Defining this property enables current-sense functionality.
 
+Optional threshold properties :
+ If skipped the condition won't be reported.
+ - maxim,cold-temp :      Temperature threshold to report battery
+                          as cold (in tenths of degree Celsius).
+ - maxim,over-heat-temp : Temperature threshold to report battery
+                          as over heated (in tenths of degree Celsius).
+ - maxim,dead-volt :      Voltage threshold to report battery
+                          as dead (in mV).
+ - maxim,over-volt :      Voltage threshold to report battery
+                          as over voltage (in mV).
+
 Example:
 
        battery-charger@36 {
                compatible = "maxim,max17042";
                reg = <0x36>;
                maxim,rsns-microohm = <10000>;
+               maxim,over-heat-temp = <600>;
+               maxim,over-volt = <4300>;
        };
index 748d976..e892557 100644 (file)
@@ -809,6 +809,15 @@ max17042_get_pdata(struct device *dev)
                pdata->enable_current_sense = true;
        }
 
+       if (of_property_read_s32(np, "maxim,cold-temp", &pdata->temp_min))
+               pdata->temp_min = INT_MIN;
+       if (of_property_read_s32(np, "maxim,over-heat-temp", &pdata->temp_max))
+               pdata->temp_max = INT_MAX;
+       if (of_property_read_s32(np, "maxim,dead-volt", &pdata->vmin))
+               pdata->vmin = INT_MIN;
+       if (of_property_read_s32(np, "maxim,over-volt", &pdata->vmax))
+               pdata->vmax = INT_MAX;
+
        return pdata;
 }
 #else