power: supply: axp20x_battery: add support for DT battery
authorQuentin Schulz <quentin.schulz@free-electrons.com>
Thu, 11 May 2017 13:42:17 +0000 (15:42 +0200)
committerSebastian Reichel <sre@kernel.org>
Thu, 8 Jun 2017 15:57:51 +0000 (17:57 +0200)
This adds support in X-Powers AXP20X and AXP22X battery driver for a
fixed battery in DT.

It will take the minimum supported voltage by the battery as defined in
the battery DT node and set the V_OFF register to this value, telling
the system to shut down if the supplied power is below this value.

Signed-off-by: Quentin Schulz <quentin.schulz@free-electrons.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
drivers/power/supply/axp20x_battery.c

index 5d29b2e..66f5305 100644 (file)
@@ -433,6 +433,7 @@ static int axp20x_power_probe(struct platform_device *pdev)
 {
        struct axp20x_batt_ps *axp20x_batt;
        struct power_supply_config psy_cfg = {};
+       struct power_supply_battery_info info;
 
        if (!of_device_is_available(pdev->dev.of_node))
                return -ENODEV;
@@ -484,6 +485,15 @@ static int axp20x_power_probe(struct platform_device *pdev)
                return PTR_ERR(axp20x_batt->batt);
        }
 
+       if (!power_supply_get_battery_info(axp20x_batt->batt, &info)) {
+               int vmin = info.voltage_min_design_uv;
+
+               if (vmin > 0 && axp20x_set_voltage_min_design(axp20x_batt,
+                                                             vmin))
+                       dev_err(&pdev->dev,
+                               "couldn't set voltage_min_design\n");
+       }
+
        return 0;
 }