From: Andres Salomon <dilinger@queued.net>
To: avorontsov@ru.mvista.com
Cc: Andrew Morton <akpm@linux-foundation.org>,
cbou@mail.ru, linux-kernel@vger.kernel.org, dwmw2@infradead.org,
richard@laptop.org
Subject: Re: [PATCH] power_supply: support CHARGE_NOW in OLPC battery
Date: Thu, 8 May 2008 13:01:02 -0400 [thread overview]
Message-ID: <20080508130102.3218f1e9@ephemeral> (raw)
In-Reply-To: <20080508105145.GA32017@polina.dev.rtsoft.ru>
Ok, CC'ing Richard as I should've done in the first place...
On Thu, 8 May 2008 14:51:45 +0400
Anton Vorontsov <avorontsov@ru.mvista.com> wrote:
> On Thu, May 08, 2008 at 12:34:54AM -0400, Andres Salomon wrote:
> >
> > This is originally based on a patch by
> > David Woodhouse <dwmw2@infradead.org>. Add support for
> > PROP_CHARGE_NOW by querying the ACR (accumulated current register)
> > from the EC.
> >
> > Signed-off-by: Andres Salomon <dilinger@debian.org>
> > ---
>
> Hi Andres,
>
> > drivers/power/olpc_battery.c | 10 +++++++++-
> > 1 files changed, 9 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/power/olpc_battery.c
> > b/drivers/power/olpc_battery.c index e3f6ec8..517dacd 100644
> > --- a/drivers/power/olpc_battery.c
> > +++ b/drivers/power/olpc_battery.c
> > @@ -19,7 +19,7 @@
> >
> > #define EC_BAT_VOLTAGE 0x10 /* uint16_t,
> > *9.76/32, mV */ #define EC_BAT_CURRENT 0x11 /*
> > int16_t, *15.625/120, mA */ -#define EC_BAT_ACR 0x12
> > +#define EC_BAT_ACR 0x12 /* int16_t,
> > *416.667, µAh */
>
> The hardware reports uAh * 416.667..?
Perhaps. Richard informs me that this might be incorrect. Richard,
would you care to clarify exactly what the ACR register value
contains? It sounds like we can't get uAh without taking two reads over
time and computing them.
Bonus points if one of us remembers to update
http://wiki.laptop.org/go/Ec_specification with the information. :)
The code snippet above is mangled due to wrapping. It was originally:
-#define EC_BAT_ACR 0x12
+#define EC_BAT_ACR 0x12 /* int16_t, *416.667, µAh */
>
> > #define EC_BAT_TEMP 0x13 /* uint16_t,
> > *100/256, °C */ #define EC_AMB_TEMP 0x14 /*
> > uint16_t, *100/256, °C */ #define EC_BAT_STATUS
> > 0x15 /* uint8_t, bitmask */ @@ -289,6 +289,13 @@
> > static int olpc_bat_get_property(struct power_supply *psy, ec_word
> > = be16_to_cpu(ec_word); val->intval = ec_word * 100 / 256;
> > break;
> > + case POWER_SUPPLY_PROP_CHARGE_NOW:
> > + ret = olpc_ec_cmd(EC_BAT_ACR, NULL, 0, (void
> > *)&ec_word, 2);
> > + if (ret)
> > + return ret;
> > +
> > + val->intval = be16_to_cpu(ec_word);
>
> But you didn't convert it to the uAh, I think you should.
We have logic in userspace that converts ACR to a useful number; for
our purposes, we'd just like to read the raw ACR values.
Perhaps CHARGE_NOW is the wrong thing to be using, if we can't get
uAh and CHARGE_* requires that unit.
>
> > + break;
> > case POWER_SUPPLY_PROP_SERIAL_NUMBER:
> > ret = olpc_ec_cmd(EC_BAT_SERIAL, NULL, 0, (void
> > *)&ser_buf, 8); if (ret)
> > @@ -317,6 +324,7 @@ static enum power_supply_property
> > olpc_bat_props[] = { POWER_SUPPLY_PROP_TEMP_AMBIENT,
> > POWER_SUPPLY_PROP_MANUFACTURER,
> > POWER_SUPPLY_PROP_SERIAL_NUMBER,
> > + POWER_SUPPLY_PROP_CHARGE_NOW,
> > };
> >
> > /* EEPROM reading goes completely around the power_supply API,
> > sadly */
>
next prev parent reply other threads:[~2008-05-08 16:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-08 4:34 [PATCH] power_supply: support CHARGE_NOW in OLPC battery Andres Salomon
2008-05-08 10:51 ` Anton Vorontsov
2008-05-08 17:01 ` Andres Salomon [this message]
2008-05-08 17:13 ` Anton Vorontsov
2008-05-08 18:53 ` Richard A. Smith
2008-05-08 19:36 ` Anton Vorontsov
2008-05-08 20:44 ` Richard A. Smith
2008-05-13 1:46 ` [PATCH] power_supply: add CHARGE_COUNTER property and olpc_battery support for it Andres Salomon
2008-05-13 8:42 ` Anton Vorontsov
2008-05-13 14:20 ` Richard A. Smith
2008-05-13 16:23 ` Andres Salomon
2008-05-18 21:46 ` Anton Vorontsov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080508130102.3218f1e9@ephemeral \
--to=dilinger@queued.net \
--cc=akpm@linux-foundation.org \
--cc=avorontsov@ru.mvista.com \
--cc=cbou@mail.ru \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=richard@laptop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox