From: Tony Lindgren <tony@atomide.com>
To: Hans de Goede <hdegoede@redhat.com>
Cc: Sebastian Reichel <sre@kernel.org>, Takashi Iwai <tiwai@suse.de>,
linux-pm@vger.kernel.org, Liam Breck <kernel@networkimprov.net>
Subject: Re: [PATCH v2 4/7] power: supply: bq24190_charger: Never reset the charger chip
Date: Wed, 22 Mar 2017 08:51:25 -0700 [thread overview]
Message-ID: <20170322155124.GY8575@atomide.com> (raw)
In-Reply-To: <2ab0b7d5-61b0-2a1f-7c45-07d7f3f180b6@redhat.com>
* Hans de Goede <hdegoede@redhat.com> [170322 08:47]:
> Hi,
>
> On 22-03-17 16:43, Tony Lindgren wrote:
> > * Hans de Goede <hdegoede@redhat.com> [170322 07:57]:
> > > Resetting the charger should never be necessary it should always have
> > > sane values programmed. If it is running with invalid values while we
> > > are not running (system turned off or suspended) there is a big problem
> > > as that may lead to overcharging the battery.
> >
> > And some systems may only configure it in the bootloader with no
> > configuration passed to the kernel at all.
>
> Right.
>
> > > The reset in suspend() is meant to put the charger back into default
> > > mode, but this is not necessary and not a good idea. If the charger has
> > > been programmed with a higher max charge_current / charge_voltage then
> > > putting it back in default-mode will reset those to the safe power-on
> > > defaults, leading to slower charging, or charging to a lower voltage
> > > (and thus not using the full capacity) while suspended which is
> > > undesirable. Reprogramming the max charge_current / charge_voltage
> > > after the reset will not help here as that will put the charger back
> > > in host mode and start the i2c watchdog if the host then does not do
> > > anything for 40s (iow if we're suspended for more then 40s) the watchdog
> > > expires resetting the device to default-mode, including resetting all
> > > the registers to there safe power-on defaults. So the only way to keep
> > > using custom charge settings while suspending is to keep the charger in
> > > its normal running state with the i2c watchdog disabled. This is fine
> > > as the charger will still automatically switch from constant current
> > > to constant voltage and stop charging when the battery is full.
> > >
> > > Besides never being necessary resetting the charger also causes problems
> > > on systems where the charge voltage limit is set higher then the reset
> > > value, if this is the case and the charger is reset while charging and
> > > the battery voltage is between the 2 voltages, then about half the time
> > > the charger gets confused and claims to be charging (REG08 contains 0x64)
> > > but in reality the charger has decoupled itself from VBUS (Q1 off) and
> > > is drawing 0A from VBUS, leaving the system running from the battery.
> >
> > We do have cases where Linux kernel is the bootloader though using
> > kexec. And in those cases we may need to reset, so I wonder if the
> > reset should just be optional based on a proper device tree
> > (or platform_data) configuration?
>
> As described above during my testing I've found that the chip does not
> respond well to reset under certain conditions, so I think that if
> we have settings to apply we should just overwrite the settings with
> our settings, what does doing a reset before overwriting the registers
> buy us? We still need to do the overwrite anyways.
OK with me if that works and reset is buggy.
Regards,
Tony
next prev parent reply other threads:[~2017-03-22 15:51 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-22 14:55 [PATCH 0/7] power: supply: bq24190_charger: Various fixes + extcon support Hans de Goede
2017-03-22 14:55 ` [PATCH v2 1/7] power: supply: bq24190_charger: Use i2c-core irq-mapping code Hans de Goede
2017-03-22 15:37 ` Tony Lindgren
2017-03-23 11:11 ` Sebastian Reichel
2017-03-24 23:44 ` Liam Breck
2017-03-22 14:55 ` [PATCH v2 2/7] power: supply: bq24190_charger: Add support for bq24192i Hans de Goede
2017-03-23 11:12 ` Sebastian Reichel
2017-03-24 23:34 ` Liam Breck
2017-03-22 14:55 ` [PATCH v2 3/7] power: supply: bq24190_charger: Use extcon to determine ilimit, 5v boost Hans de Goede
2017-03-22 15:50 ` Tony Lindgren
2017-03-22 15:57 ` Hans de Goede
2017-03-22 18:50 ` Liam Breck
2017-03-23 8:31 ` Hans de Goede
2017-03-22 14:55 ` [PATCH v2 4/7] power: supply: bq24190_charger: Never reset the charger chip Hans de Goede
2017-03-22 15:43 ` Tony Lindgren
2017-03-22 15:45 ` Hans de Goede
2017-03-22 15:51 ` Tony Lindgren [this message]
2017-03-23 7:16 ` Liam Breck
2017-03-23 8:44 ` Hans de Goede
2017-03-23 11:36 ` Liam Breck
2017-03-23 11:44 ` Hans de Goede
2017-03-23 11:47 ` Liam Breck
2017-03-23 11:48 ` Hans de Goede
2017-03-23 20:33 ` Liam Breck
2017-03-23 22:01 ` Hans de Goede
2017-03-24 23:49 ` Liam Breck
2017-03-22 18:41 ` Liam Breck
2017-03-23 8:16 ` Hans de Goede
2017-03-23 10:59 ` Sebastian Reichel
2017-03-23 11:20 ` Sebastian Reichel
2017-03-22 14:55 ` [PATCH v2 5/7] power: supply: bq24190_charger: Don't spam the logs on charger plug / unplug Hans de Goede
2017-03-22 15:44 ` Tony Lindgren
2017-03-23 11:17 ` Sebastian Reichel
2017-03-23 13:34 ` Liam Breck
2017-03-23 21:31 ` Liam Breck
2017-03-23 22:02 ` Hans de Goede
2017-03-23 22:24 ` Liam Breck
2017-03-24 9:25 ` Sebastian Reichel
2017-03-24 23:31 ` Liam Breck
2017-03-24 10:29 ` [PATCH] power: bq24190_charger: Limit over/under voltage fault logging Liam Breck
2017-03-25 11:17 ` Hans de Goede
2017-03-25 11:24 ` [PATCH v2] " Liam Breck
2017-03-26 8:44 ` Hans de Goede
2017-03-26 10:56 ` Liam Breck
2017-03-26 11:04 ` Hans de Goede
2017-03-29 16:33 ` Tony Lindgren
2017-03-22 14:55 ` [PATCH v2 6/7] power: supply: bq24190_charger: Cleanup error-exit labels in probe() Hans de Goede
2017-03-22 15:45 ` Tony Lindgren
2017-03-22 19:09 ` Liam Breck
2017-03-23 8:37 ` Hans de Goede
2017-03-24 23:58 ` Liam Breck
2017-03-23 11:21 ` Sebastian Reichel
2017-03-23 11:46 ` Hans de Goede
2017-03-22 14:55 ` [PATCH v2 7/7] power: supply: bq24190_charger: Remove battery power_supply device Hans de Goede
2017-03-25 0:19 ` Liam Breck
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=20170322155124.GY8575@atomide.com \
--to=tony@atomide.com \
--cc=hdegoede@redhat.com \
--cc=kernel@networkimprov.net \
--cc=linux-pm@vger.kernel.org \
--cc=sre@kernel.org \
--cc=tiwai@suse.de \
/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).