Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6e6b63e authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Sebastian Reichel
Browse files

power_supply: max17042: Add OF support for setting thresholds



The commit edd4ab05 ("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: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
Fixes: edd4ab05 ("power: max17042_battery: add HEALTH and TEMP_* properties support")
Signed-off-by: default avatarSebastian Reichel <sre@kernel.org>
parent 5c6e3a97
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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>;
	};
+9 −0
Original line number Diff line number Diff line
@@ -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