Re: [PATCH 07/15] twl4030_charger: allow fine control of charger current.

NeilBrown
2015-03-04T06:47:56Z

[-- Attachment #1: Type: text/plain, Size: 1434 bytes --]

On Mon, 2 Mar 2015 22:05:01 +0100 Pavel Machek <pavel@ucw.cz> wrote:

> Hi!
>
> > + /* ichg values in uA. If any are 'large', we set CGAIN to
> > + * '1' which doubles the range for half the precision.
> > + */
> > + int ichg_eoc, ichg_lo, ichg_hi, cur;
>
> We should really get uA_t.

Maybe. 32bits allows for 4000A, which should be plenty...
I made it unsigned int.

>
> [Plus, this is not kernel comment style, but...]

Fixed

>
> > + /* For ichg_eoc, reg value must be 100XXXX000, we only
> > + * set the XXXX in high nibble.
> > + */
>
> Confused. High nibble is 0xf0, right?

does this help?

/*
* For ichg_eoc, the hardware only supports reg values matching
* 100XXXX000, and requires the XXXX be stored in the high nibble
* of TWL4030_BCIMFTH8
*/

>
> > + /* And finally, set the current. This is stored in
> > + * two registers. */
> > + reg = ua2regval(bci->cur, cgain);
> > + /* we have only 10 bit */
>
> bits
>
> > @@ -562,6 +698,14 @@ static int __init twl4030_bci_probe(struct platform_device *pdev)
> > if (!pdata)
> > pdata = twl4030_bci_parse_dt(&pdev->dev);
> >
> > + bci->ichg_eoc = 80100; /* Stop charging when current drops to here */
> > + bci->ichg_lo = 241000; /* low threshold */
>
> Low
>
> > + bci->ichg_hi = 500000; /* High threshold */
>
> Acked-by: Pavel Machek <pavel@ucw.cz>
>

Thanks again!

NeilBrown

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]