public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Richard A. Smith" <richard@laptop.org>
To: avorontsov@ru.mvista.com
Cc: Andres Salomon <dilinger@queued.net>,
	Andrew Morton <akpm@linux-foundation.org>,
	cbou@mail.ru, linux-kernel@vger.kernel.org, dwmw2@infradead.org
Subject: Re: [PATCH] power_supply: support CHARGE_NOW in OLPC battery
Date: Thu, 08 May 2008 14:53:25 -0400	[thread overview]
Message-ID: <48234C25.4040807@laptop.org> (raw)
In-Reply-To: <20080508171320.GA8226@polina.dev.rtsoft.ru>

Anton Vorontsov wrote:
> On Thu, May 08, 2008 at 01:01:02PM -0400, Andres Salomon wrote:
>> Ok, CC'ing Richard as I should've done in the first place...
> [...]
>>>> +	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.
> 
> No. The purpose of power supply class is to report values in common
> units. Not some random value that userspace then should guess how to
> compute.

I'm fine with that.  I'll have to make my scripts do some detection on 
what kernel is running and convert or not convert but thats not too hard.

I remember Dave asking me if I wanted it converted and I told him not to 
bother and just to export the raw value.  I would deal with the units. 
At the time I was just trying to get some simple debugging info.  Turns 
out that ACR is really useful for debugging battery problems and it stuck.

A single ACR reading itself does not tell you anything usefull.  Its a 
signed 16 bit free running coulomb counter that counts up and down based 
on how much juice goes into or out of the battery.  So to extract any 
meaningful info you need 2 readings separated by some instance in time. 
  The difference between the 2 tells you the relative energy you have 
consumed or added.

The units for the ACR register in the DS2765 are:

6.25 uVh / Rsense
OLPC Rsense = .015 Ohms

The integer math conversion for ACR to mAh that I use in my scripts is:

(ACR2 - ACR1) * 625 / 1500

>> Perhaps CHARGE_NOW is the wrong thing to be using, if we can't get
>> uAh and CHARGE_* requires that unit.
> 
> I don't think that converting X * uAh or uAh / Y to uAh is impossible.
> I'd suggest you to convert the ACR value to uAh using fractions, see
> ds2760_battery.c. Even if the final value losing precision a bit, it is
> still useful to do CHARGE_NOW.

Is CHARGE_NOW supposed to be an absolute indication of the level of 
charge in the battery?  If so then thats not ACR.  That would be SOC% * 
battery capacity.  The EC uses the relative motion of the ACR to update 
the SOC%.

-- 
Richard Smith  <richard@laptop.org>
One Laptop Per Child

  reply	other threads:[~2008-05-08 18:54 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
2008-05-08 17:13     ` Anton Vorontsov
2008-05-08 18:53       ` Richard A. Smith [this message]
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=48234C25.4040807@laptop.org \
    --to=richard@laptop.org \
    --cc=akpm@linux-foundation.org \
    --cc=avorontsov@ru.mvista.com \
    --cc=cbou@mail.ru \
    --cc=dilinger@queued.net \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.kernel.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