Skip to content

Commit

Permalink
olpc_battery: Add support for CHARGE_NOW
Browse files Browse the repository at this point in the history
CHARGE_NOW is needed by some user space software (read: UPower) for
internal calculations.

This patch violates the power supply class definition (as we already
do for CAPACITY though it isn't as obvious there), but this is the best
we can do without adding rather sophisticated algorithms to either the EC
or UPower.

Signed-off-by: Sascha Silbe <sascha-pgp@silbe.org>
Signed-off-by: Paul Fox <pgf@laptop.org>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
  • Loading branch information
Sascha Silbe authored and Anton Vorontsov committed Jan 12, 2011
1 parent b202a5e commit 20fd983
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions drivers/power/olpc_battery.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,24 @@ static int olpc_bat_get_charge_full_design(union power_supply_propval *val)
return ret;
}

static int olpc_bat_get_charge_now(union power_supply_propval *val)
{
uint8_t soc;
union power_supply_propval full;
int ret;

ret = olpc_ec_cmd(EC_BAT_SOC, NULL, 0, &soc, 1);
if (ret)
return ret;

ret = olpc_bat_get_charge_full_design(&full);
if (ret)
return ret;

val->intval = soc * (full.intval / 100);
return 0;
}

/*********************************************************************
* Battery properties
*********************************************************************/
Expand Down Expand Up @@ -347,6 +365,11 @@ static int olpc_bat_get_property(struct power_supply *psy,
if (ret)
return ret;
break;
case POWER_SUPPLY_PROP_CHARGE_NOW:
ret = olpc_bat_get_charge_now(val);
if (ret)
return ret;
break;
case POWER_SUPPLY_PROP_TEMP:
ret = olpc_ec_cmd(EC_BAT_TEMP, NULL, 0, (void *)&ec_word, 2);
if (ret)
Expand Down Expand Up @@ -395,6 +418,7 @@ static enum power_supply_property olpc_xo1_bat_props[] = {
POWER_SUPPLY_PROP_CAPACITY,
POWER_SUPPLY_PROP_CAPACITY_LEVEL,
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
POWER_SUPPLY_PROP_CHARGE_NOW,
POWER_SUPPLY_PROP_TEMP,
POWER_SUPPLY_PROP_TEMP_AMBIENT,
POWER_SUPPLY_PROP_MANUFACTURER,
Expand Down

0 comments on commit 20fd983

Please sign in to comment.