Hi, On Sun, Apr 04, 2021 at 10:21:46AM +0300, Tony Lindgren wrote: > * Carl Philipp Klemm <philipp@xxxxxxxx> [210117 23:48]: > > Adds 80000 us sleep when the usb cable is plugged in to hopefully avoid > > bouncing contacts. > > > > Upon pluging in the usb cable vbus will bounce for some time, causing cpcap to > > dissconnect charging due to detecting an undervoltage condition. This is a > > scope of vbus on xt894 while quickly inserting the usb cable with firm force, > > probed at the far side of the usb socket and vbus loaded with approx 1k: > > http://uvos.xyz/maserati/usbplug.jpg. > > > > As can clearly be seen, vbus is all over the place for the first 15 ms or so > > with a small blip at ~40 ms this causes the cpcap to trip up and disable > > charging again. > > > > The delay helps cpcap_usb_detect avoid the worst of this. It is, however, still > > not ideal as strong vibrations can cause the issue to reapear any time during > > charging. I have however not been able to cause the device to stop charging due > > to this in practice as it is hard to vibrate the device such that the vbus pins > > start bouncing again but cpcap_usb_detect is not called again due to a detected > > disconnect/reconnect event. > > > > Signed-off-by: Carl Philipp Klemm <philipp@xxxxxxxx> > > This patch fixes an issue where connecting a charger often fails for me: > > Tested-by: Tony Lindgren <tony@xxxxxxxxxxx> Thanks, queued. -- Sebastian > > --- > > drivers/power/supply/cpcap-charger.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/power/supply/cpcap-charger.c b/drivers/power/supply/cpcap-charger.c > > index be7d1da7a5a5..3e5fbdbdd645 100644 > > --- a/drivers/power/supply/cpcap-charger.c > > +++ b/drivers/power/supply/cpcap-charger.c > > @@ -650,6 +650,9 @@ static void cpcap_usb_detect(struct work_struct *work) > > return; > > } > > > > + /* Delay for 80ms to avoid vbus bouncing when usb cable is plugged in */ > > + usleep_range(80000, 120000); > > + > > /* Throttle chrgcurr2 interrupt for charger done and retry */ > > switch (ddata->status) { > > case POWER_SUPPLY_STATUS_CHARGING: > > -- > > 2.29.2 > >
Attachment:
signature.asc
Description: PGP signature