]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/power/wm8350_power.c
Merge branch 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev
[karo-tx-linux.git] / drivers / power / wm8350_power.c
index 1b16bf343f2fc8d3d1a4b1cfcc5675db19f057b4..28b0299c0043694cf19bed7d3bc97b8289db2873 100644 (file)
@@ -321,6 +321,24 @@ static int wm8350_bat_check_health(struct wm8350 *wm8350)
        return POWER_SUPPLY_HEALTH_GOOD;
 }
 
+static int wm8350_bat_get_charge_type(struct wm8350 *wm8350)
+{
+       int state;
+
+       state = wm8350_reg_read(wm8350, WM8350_BATTERY_CHARGER_CONTROL_2) &
+           WM8350_CHG_STS_MASK;
+       switch (state) {
+       case WM8350_CHG_STS_OFF:
+               return POWER_SUPPLY_CHARGE_TYPE_NONE;
+       case WM8350_CHG_STS_TRICKLE:
+               return POWER_SUPPLY_CHARGE_TYPE_TRICKLE;
+       case WM8350_CHG_STS_FAST:
+               return POWER_SUPPLY_CHARGE_TYPE_FAST;
+       default:
+               return POWER_SUPPLY_CHARGE_TYPE_UNKNOWN;
+       }
+}
+
 static int wm8350_bat_get_property(struct power_supply *psy,
                                   enum power_supply_property psp,
                                   union power_supply_propval *val)
@@ -342,6 +360,9 @@ static int wm8350_bat_get_property(struct power_supply *psy,
        case POWER_SUPPLY_PROP_HEALTH:
                val->intval = wm8350_bat_check_health(wm8350);
                break;
+       case POWER_SUPPLY_PROP_CHARGE_TYPE:
+               val->intval = wm8350_bat_get_charge_type(wm8350);
+               break;
        default:
                ret = -EINVAL;
                break;
@@ -355,6 +376,7 @@ static enum power_supply_property wm8350_bat_props[] = {
        POWER_SUPPLY_PROP_ONLINE,
        POWER_SUPPLY_PROP_VOLTAGE_NOW,
        POWER_SUPPLY_PROP_HEALTH,
+       POWER_SUPPLY_PROP_CHARGE_TYPE,
 };
 
 /*********************************************************************