Re: [PATCH] bq2415x_charger: fix max battery regulation voltage

From: Alexandre Belloni
Date: Tue Oct 15 2013 - 10:54:26 EST



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 15/10/2013 15:56, Pali RohÃr wrote:
> On Wednesday 02 October 2013 12:24:22 Alexandre Belloni wrote:
>> As per the datasheets, maximum battery regulation voltage is
>> 4440mV.
>>
>> The formula is (voltage - offset) / step, so the maximum value
>> is: (4440 - 3500) / 20 = 47
>>
>> Signed-off-by: Alexandre Belloni
>> <alexandre.belloni@xxxxxxxxxxxxxxxxxx> ---
>> drivers/power/bq2415x_charger.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/power/bq2415x_charger.c
>> b/drivers/power/bq2415x_charger.c index 0727f92..0aa643e
>> 100644
>> --- a/drivers/power/bq2415x_charger.c
>> +++ b/drivers/power/bq2415x_charger.c
>> @@ -607,7 +607,7 @@ static int
>> bq2415x_set_battery_regulation_voltage(struct bq2415x_device
>> *bq,
>>
>> if (val < 0)
>> val = 0;
>> - else if (val > 94) /* FIXME: Max is 94 or 122 ? Set max
>> value ? */ + else if (val > 47)
>> return -EINVAL;
>>
>> return bq2415x_i2c_write_mask(bq, BQ2415X_REG_VOLTAGE, val,
>
> Right, max is 47 (101111) and not 94 (1011110). But if you set
> all six registers to 1 then you get 63 (111111) and not 122.
>
> I do not know from where I got above bad values, but you should
> add comment to code that according to datasheet max value is
> 4440mV (101111) and not 4760mV (111111).
>
You probably missed the division by 2. BTW, I much prefer int val = (mV
- 3500) / 20;
which is clearer: offset is 3500mV and step is 20mV. I find your
calculation quite weird ;)

I'll send V2 with a comment then. Thank you for your review.

- --
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJSXVcWAAoJEKbNnwlvZCyzfiUQAKkLAbJlnQpNx+CG+tIzb36Q
3/hRTHMb+/Mrr0Db90OPqmJoItVH5WRsf/sRo+6990C95/PNdraM2a/Tibkz+3iD
rww0I01a73w3LBW5tWyN8kj/0iAQFX6h1fzv6dmeAvwZqTk/w7mfm5jv1fjcPYXI
UkTlPSBbH91YnTG9fqVjgpAYxVC64/eGJPMR6sfMnQ/zOWrX7ihGSEbEt8t4s4cX
ouwT5hHu2MmP5WY5IQKJ92+jx4nJsmtuI6HXEQwYPTnCUE8UbQHyezORTQB3cA7H
k0n1ha2SdwMqRkJGxr2T+NFTv1NCD5p72k34kWJPIeF7aFs51i8OiGUskPSBDK89
G9+8zxiD+8dK4B6RqXkq297AgRaNJm9+Ju30r2lrI/NhHocEWsWai+K0L2TF2Oag
4iEdwoQ9BHapcM4jVp2Ik5Oxg7I3909xR0rfWzCGvASPEZseXtgZWYsxZdGy/mZT
+hYaQYmOwV16FWxP+vSMWQPqW477E0q773j8ArnDx4gSta6+FTxfFeMYOFwF3leQ
FltSuDsKxVtip3Rzg77nbMdx6yTkWPvVgWH72grxSYaNYjQY2+pWhTXYOo2hZYzv
Ljr24qvYfzPiMpzMBFZDrm8SZ9LTKHsuKaLgLPTiHrJi+jS9aRK8avgYYNyyiVRP
60UKJwXam6LOq9/qW0eb
=n54z
-----END PGP SIGNATURE-----

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/