linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Pavel Machek <pavel@ucw.cz>
Cc: Samuel Ortiz <sameo@linux.intel.com>,
	Tony Lindgren <tony@atomide.com>,
	Lee Jones <lee.jones@linaro.org>,
	Sebastian Reichel <sre@kernel.org>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	GTA04 owners <gta04-owner@goldelico.com>,
	linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH 12/15] twl4030_charger: add software controlled linear charging mode.
Date: Thu, 5 Mar 2015 17:33:50 +1100	[thread overview]
Message-ID: <20150305173350.50502b95@notabene.brown> (raw)
In-Reply-To: <20150302210926.GP13270@amd>

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

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

> On Tue 2015-02-24 15:33:52, NeilBrown wrote:
> > Add a 'continuous' option for usb charging which enabled
> > the "linear" charging mode of the twl4030.
> 
> Documentation/ :-).

!

> 
> > Linear charging does a good job with not so reliable power sources, since
> > several voltage controlling is then often too intelligent.
> 
> Parse error.

========
Linear charging does a good job with not-so-reliable power sources.
Auto mode does not work well as it switches off when voltage drops
momentarily.  Care must be taken not to over-charge.

It was used with a bike hub dynamo since a year or so. In that case
there are automatically charging stops when the cyclist needs a break.
=========

> 
> > It was used with a bike hub dynamo since a year or so. In that case there
> > are automatically charging stops when the cyclist needs a break.
> > 
> > Orignal-by: Andreas Kemnade <andreas@kemnade.info>
> > Signed-off-by: NeilBrown <neilb@suse.de>
> 
> 
> > +			ret = twl_i2c_write_u8(TWL_MODULE_MAIN_CHARGE, 0x33,
> > +					       TWL4030_BCIWDKEY);
> > +			/* 0x24 + EKEY6:  off mode */
> 
> "  " -> " "
> 
> > +			ret = twl_i2c_write_u8(TWL_MODULE_MAIN_CHARGE, 0x2a,
> > +					       TWL4030_BCIMDKEY);
> > +			/* EKEY2: Linear charge: usb path */
> 
> USB
> 
> > +			ret = twl_i2c_write_u8(TWL_MODULE_MAIN_CHARGE, 0x26,
> > +					       TWL4030_BCIMDKEY);
> > +			/* WDKEY5: stop watchdog count */
> > +			ret = twl_i2c_write_u8(TWL_MODULE_MAIN_CHARGE, 0xf3,
> > +					       TWL4030_BCIWDKEY);
> > +			/* enable MFEN3 access */
> > +			ret = twl_i2c_write_u8(TWL_MODULE_MAIN_CHARGE, 0x9c,
> > +					       TWL4030_BCIMFKEY);
> > +			 /* ICHGEOCEN - end-of-charge monitor (current < 80mA)
> > +			  *                      (charging continues)
> > +			  * ICHGLOWEN - current level monitor (charge continues)
> > +			  * don't monitor over-current or heat save
> 
> Heat save? Is ignoring over-current good idea?

The data sheet refers to a flag "HSEN" which is "Heat Save function enable".

your guess is as good as mine.

We don't currently have any code for responding to warnings.  Maybe we should.

For now this feature is "use at your own risk" - and one person has found it
very useful.

> 
> > @@ -650,6 +684,8 @@ twl4030_bci_mode_store(struct device *dev, struct device_attribute *attr,
> >  		mode = 0;
> >  	else if (sysfs_streq(buf, modes[1]))
> >  		mode = 1;
> > +	else if (sysfs_streq(buf, modes[2]))
> > +		mode = 2;
> 
> Time for loop?

When we get one more mode it will be :-)

Thanks,
NeilBrown


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

  reply	other threads:[~2015-03-05  6:34 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-24  4:33 [PATCH 00/15] Enhance twl4030_charger functionality NeilBrown
2015-02-24  4:33 ` [PATCH 01/15] power_supply core: support use of devres to register/unregister a power supply NeilBrown
2015-02-26  2:25   ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 03/15] twl4030_charger: use devres for power_supply_register and kzalloc NeilBrown
2015-03-07 20:25   ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 02/15] twl4030_charger: use devm_request_threaded_irq NeilBrown
2015-02-24  4:33 ` [PATCH 05/15] twl4030_charger: trust phy to determine when USB power is available NeilBrown
2015-02-24  4:33 ` [PATCH 06/15] twl4030_charger: split uA calculation into a function NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-03-04  9:20     ` NeilBrown
2015-02-24  4:33 ` [PATCH 04/15] twl4030_charger: use runtime_pm to keep usb phy active while charging NeilBrown
2015-02-25  7:24   ` Lee Jones
2015-03-05  5:48     ` NeilBrown
2015-02-24  4:33 ` [PATCH 07/15] twl4030_charger: allow fine control of charger current NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-03-04  6:47     ` NeilBrown
2015-03-04 10:24       ` Pavel Machek
2015-03-07 20:32         ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 08/15] twl4030_charger: distinguish between USB current and 'AC' current NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-03-04  6:53     ` NeilBrown
2015-02-24  4:33 ` [PATCH 10/15] twl4030_charger: only draw USB current as negotiated with host NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-02-24  4:33 ` [PATCH 12/15] twl4030_charger: add software controlled linear charging mode NeilBrown
2015-03-02 21:09   ` Pavel Machek
2015-03-05  6:33     ` NeilBrown [this message]
2015-03-06 21:24       ` twl4030_charger: need changes to get probed? Pavel Machek
2015-03-06 21:57         ` Pali Rohár
2015-03-06 22:12           ` Grazvydas Ignotas
2015-03-06 22:40             ` Pavel Machek
2015-03-06 22:56               ` Pali Rohár
2015-03-07 15:56                 ` Grazvydas Ignotas
2015-03-07 16:43                   ` Pali Rohár
2015-04-26 10:13                   ` Pavel Machek
2015-03-07 21:01         ` Sebastian Reichel
2015-03-09  0:06           ` NeilBrown
2015-03-09 11:14             ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 09/15] twl4030_charger: allow max_current to be managed via sysfs NeilBrown
2015-03-02 21:05   ` Pavel Machek
2015-03-05  6:26     ` NeilBrown
2015-03-05  8:17       ` Pavel Machek
2015-03-07 20:37       ` Sebastian Reichel
2015-02-24  4:33 ` [PATCH 11/15] twl4030_charger: enable manual enable/disable of usb charging NeilBrown
2015-03-02 21:03   ` Pavel Machek
2015-03-04  6:15     ` NeilBrown
2015-03-04 10:19       ` Pavel Machek
2015-02-24  4:33 ` [PATCH 15/15] twl4030_charger: assume a 'charger' can supply maximum current NeilBrown
2015-03-02 21:29   ` Pavel Machek
2015-03-05  6:45     ` NeilBrown
2015-02-24  4:33 ` [PATCH 14/15] twl4030_charger: Increase current carefully while watching voltage NeilBrown
2015-03-02 21:29   ` Pavel Machek
2015-03-05  6:51     ` NeilBrown
2015-02-24  4:33 ` [PATCH 13/15] twl4030_charger: add ac/mode to match usb/mode NeilBrown
2015-03-02 21:13   ` Pavel Machek
2015-03-06 21:59   ` Grazvydas Ignotas
2015-03-22 23:13     ` NeilBrown

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=20150305173350.50502b95@notabene.brown \
    --to=neilb@suse.de \
    --cc=dbaryshkov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=gta04-owner@goldelico.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=sameo@linux.intel.com \
    --cc=sre@kernel.org \
    --cc=tony@atomide.com \
    /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;
as well as URLs for NNTP newsgroup(s).