diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-07-10 16:28:33 +0100 |
---|---|---|
committer | Anton Vorontsov <avorontsov@ru.mvista.com> | 2009-07-14 18:05:56 +0400 |
commit | 4aed03ae58946c716c8e3f7060f8b500b8a8e30f (patch) | |
tree | bca2c746e23d24e0ba72ff1c394d1cc013a74a26 | |
parent | ee8076ed3e1cdd0cd1e61318386932669c90b92f (diff) | |
download | op-kernel-dev-4aed03ae58946c716c8e3f7060f8b500b8a8e30f.zip op-kernel-dev-4aed03ae58946c716c8e3f7060f8b500b8a8e30f.tar.gz |
wm8350_power: Implement charge type property
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
-rw-r--r-- | drivers/power/wm8350_power.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/power/wm8350_power.c b/drivers/power/wm8350_power.c index 1b16bf3..28b0299 100644 --- a/drivers/power/wm8350_power.c +++ b/drivers/power/wm8350_power.c @@ -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, }; /********************************************************************* |