From: Ladislav Michl <ladis@linux-mips.org>
To: Mike Looijmans <mike.looijmans@topic.nl>
Cc: linux-pm@vger.kernel.org, Sebastian Reichel <sre@kernel.org>
Subject: Re: LTC3651 and other GPIO chargers
Date: Fri, 28 Jul 2017 03:04:40 +0200 [thread overview]
Message-ID: <20170728010440.4vw23w5xafyhanp6@lenoch> (raw)
In-Reply-To: <5b439c7f-4401-5333-a45f-2d2e243902c8@topic.nl>
Hello Mike,
On Tue, Jun 27, 2017 at 07:39:21AM +0200, Mike Looijmans wrote:
> On 26-06-17 18:21, Ladislav Michl wrote:
> > Hi there!
> >
> > A driver for LTC3651 was recently added to -next
> > https://patchwork.kernel.org/patch/9717049/
> > which brings a question whenever we want to add separate driver
> > (or vendor specific bindings) for ever growing list of similar
> > chargers. For example those using the same status output lines
> > are: BQ24232HA, LTC4007, LTM8061, RT9502, LT3651, LT3650, TP4056,
> > MAX1737...
> > Others for example BQ24032A and LM3658 (which I have to support)
> > are using different status encoding, ie. LM3658:
> >
> > stat1 stat2 Condition
> > 0 0 Power-Down, charging is suspended or interrupted
> > 1 0 Pre-qualification mode, CC and CV charging
> > 0 1 Charge is completed
> > 1 1 Bad battery (Safety timer expired), or LDO mode
> >
> > What about extending gpio-charger instead?
> > - allow gpio list fdt subnode
> > - consider each gpio line to represent bit in a word
> > - provide per property subnodes
> > - each subnode holds a mask and mapping to property values
> > This way we should be able to cover most chargers providing status
> > using gpios. Comments welcome and appreciated - those will turn into
> > implementation.
>
> It's an interesting idea, and while writing the ltc3651 driver, I was
> thinking along those lines already. However, there are only two gpio charger
> drivers now, so I didn't see the need yet.
>
> The table is an interesting approach. Something else to consider: Some gpio
> chargers allow control as well, e.g. pulling the "charging" ping low
> externally forces the charging to stop.
Just one more question before submitting "one driver for all" patch...
In LTC3651 you made acpr_gpio mandatory while chrg_gpio and fault_gpio
are optional. I quite do not get it as those later two gpios make
driver LTC3651 specific, while without them it is just another gpio-charger
driver. Also I have a board here, where acpr_gpio is not routed at all
and ADC is used to measure Vin, which makes this driver imposible to use.
Any specific reason you implemented it this way? As once 4.13 is out,
devicetree binding will be set in stone and I'm out of luck...
(based on that I exteded gpio-charger to take into account optional
gpios as well)
> Something that might help is to create a "GPIO charger" sub-menu in Kconfig,
> to make hunting for these drivers a bit easier.
Thank you,
ladis
next prev parent reply other threads:[~2017-07-28 1:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-26 16:21 LTC3651 and other GPIO chargers Ladislav Michl
2017-06-27 5:39 ` Mike Looijmans
2017-06-27 6:38 ` Ladislav Michl
2017-06-27 6:59 ` Mike Looijmans
2017-07-28 1:04 ` Ladislav Michl [this message]
2017-07-28 5:27 ` Mike Looijmans
2017-07-03 13:52 ` Sebastian Reichel
2017-07-13 7:25 ` Ladislav Michl
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=20170728010440.4vw23w5xafyhanp6@lenoch \
--to=ladis@linux-mips.org \
--cc=linux-pm@vger.kernel.org \
--cc=mike.looijmans@topic.nl \
--cc=sre@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