diff options
Diffstat (limited to 'drivers/power/olpc_battery.c')
-rw-r--r-- | drivers/power/olpc_battery.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/power/olpc_battery.c b/drivers/power/olpc_battery.c index c8b596a7fc94..9dd1589733c2 100644 --- a/drivers/power/olpc_battery.c +++ b/drivers/power/olpc_battery.c | |||
@@ -19,7 +19,7 @@ | |||
19 | 19 | ||
20 | #define EC_BAT_VOLTAGE 0x10 /* uint16_t, *9.76/32, mV */ | 20 | #define EC_BAT_VOLTAGE 0x10 /* uint16_t, *9.76/32, mV */ |
21 | #define EC_BAT_CURRENT 0x11 /* int16_t, *15.625/120, mA */ | 21 | #define EC_BAT_CURRENT 0x11 /* int16_t, *15.625/120, mA */ |
22 | #define EC_BAT_ACR 0x12 | 22 | #define EC_BAT_ACR 0x12 /* int16_t, *416.7, µAh */ |
23 | #define EC_BAT_TEMP 0x13 /* uint16_t, *100/256, °C */ | 23 | #define EC_BAT_TEMP 0x13 /* uint16_t, *100/256, °C */ |
24 | #define EC_AMB_TEMP 0x14 /* uint16_t, *100/256, °C */ | 24 | #define EC_AMB_TEMP 0x14 /* uint16_t, *100/256, °C */ |
25 | #define EC_BAT_STATUS 0x15 /* uint8_t, bitmask */ | 25 | #define EC_BAT_STATUS 0x15 /* uint8_t, bitmask */ |
@@ -289,6 +289,14 @@ static int olpc_bat_get_property(struct power_supply *psy, | |||
289 | ec_word = be16_to_cpu(ec_word); | 289 | ec_word = be16_to_cpu(ec_word); |
290 | val->intval = ec_word * 100 / 256; | 290 | val->intval = ec_word * 100 / 256; |
291 | break; | 291 | break; |
292 | case POWER_SUPPLY_PROP_CHARGE_COUNTER: | ||
293 | ret = olpc_ec_cmd(EC_BAT_ACR, NULL, 0, (void *)&ec_word, 2); | ||
294 | if (ret) | ||
295 | return ret; | ||
296 | |||
297 | ec_word = be16_to_cpu(ec_word); | ||
298 | val->intval = ec_word * 4167 / 10; | ||
299 | break; | ||
292 | case POWER_SUPPLY_PROP_SERIAL_NUMBER: | 300 | case POWER_SUPPLY_PROP_SERIAL_NUMBER: |
293 | ret = olpc_ec_cmd(EC_BAT_SERIAL, NULL, 0, (void *)&ser_buf, 8); | 301 | ret = olpc_ec_cmd(EC_BAT_SERIAL, NULL, 0, (void *)&ser_buf, 8); |
294 | if (ret) | 302 | if (ret) |
@@ -317,6 +325,7 @@ static enum power_supply_property olpc_bat_props[] = { | |||
317 | POWER_SUPPLY_PROP_TEMP_AMBIENT, | 325 | POWER_SUPPLY_PROP_TEMP_AMBIENT, |
318 | POWER_SUPPLY_PROP_MANUFACTURER, | 326 | POWER_SUPPLY_PROP_MANUFACTURER, |
319 | POWER_SUPPLY_PROP_SERIAL_NUMBER, | 327 | POWER_SUPPLY_PROP_SERIAL_NUMBER, |
328 | POWER_SUPPLY_PROP_CHARGE_COUNTER, | ||
320 | }; | 329 | }; |
321 | 330 | ||
322 | /* EEPROM reading goes completely around the power_supply API, sadly */ | 331 | /* EEPROM reading goes completely around the power_supply API, sadly */ |