2012-05-10 01:24:56

by Peter Chen

[permalink] [raw]
Subject: Re: [PATCH 0/6] twl4030: Various fixes for charing-from-USB

On Wed, Apr 25, 2012 at 05:33:10PM +1000, NeilBrown wrote:
> Following are a collection of patches that I've need using for a while
> to make sure the charge-from-usb on my GTA04 works.
> Hopefully I've included the right people in the recipient list :-)
>
> The issues are:
> - charge the backup battery as well as the main battery
> - charge from a charger which ties ID to ground via a resistor
> - charge while device is suspended, or when no gadget module is
> loaded (i.e. when the USB side thinks the phy should be powered
> down).
According to USB Spec, when the USB bus goes to suspend, the device
should not draw more than 2.5mA. So when the device is suspended,
it should notify the battery driver do NOT charge any more.
>
> Questions and comments more welcome.
>
> Thanks,
> NeilBrown
>
>
> ---
>
> NeilBrown (6):
> twl4030-usb: Don't report EVENT_ID when there is VBUS.
> twl4030-usb: Don't power down phy when it is in-use by charger.
> twl4030_charger: Allow charger to control the regulator that feeds it.
> twl4030_charger: allow charging whenever VBUS is present.
> twl4030_charger: add backup-battery charging.
> twl4030_charger: Fix some typos
>
>
> drivers/mfd/twl-core.c | 9 ++--
> drivers/power/twl4030_charger.c | 86 +++++++++++++++++++++++++++++++++++----
> drivers/usb/otg/twl4030-usb.c | 27 ++++++++----
> include/linux/i2c/twl.h | 2 +
> 4 files changed, 102 insertions(+), 22 deletions(-)
>
> --
> Signature
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

--

Best Regards,
Peter Chen


2012-05-10 02:38:13

by NeilBrown

[permalink] [raw]
Subject: Re: [PATCH 0/6] twl4030: Various fixes for charing-from-USB

On Thu, 10 May 2012 09:24:23 +0800 Peter Chen <[email protected]>
wrote:

> On Wed, Apr 25, 2012 at 05:33:10PM +1000, NeilBrown wrote:
> > Following are a collection of patches that I've need using for a while
> > to make sure the charge-from-usb on my GTA04 works.
> > Hopefully I've included the right people in the recipient list :-)
> >
> > The issues are:
> > - charge the backup battery as well as the main battery
> > - charge from a charger which ties ID to ground via a resistor
> > - charge while device is suspended, or when no gadget module is
> > loaded (i.e. when the USB side thinks the phy should be powered
> > down).
> According to USB Spec, when the USB bus goes to suspend, the device
> should not draw more than 2.5mA. So when the device is suspended,
> it should notify the battery driver do NOT charge any more.

Hi Peter,
thanks for your input.

Would you be able to help me understand exactly what it means for the USB
bus to go to suspend? Is this something that the host initiates or
something that the gadget initiates?
How does this relate to a simple charger? It that considered to have a
non-suspended bus, or is it considered as a separate case?

Maybe we need to not suspend the USB OTG interface when the device as a
whole enters suspend-to-RAM. Maybe we need to register a dummy gadget to
the bus active while in suspend?
Does the gadget have to be responsive while-ever the bus is not suspended?
Maybe we can arrange for any USB activity to trigger a resume?

Entering suspend while still charging really should be possible - at least
with a dump charger and hopefully from a host port as well. I'll like to
find the best way to achieve that, and any help you can provide would be
greatly appreciated.

Thanks,
NeilBrown


> >
> > Questions and comments more welcome.
> >
> > Thanks,
> > NeilBrown
> >
> >
> > ---
> >
> > NeilBrown (6):
> > twl4030-usb: Don't report EVENT_ID when there is VBUS.
> > twl4030-usb: Don't power down phy when it is in-use by charger.
> > twl4030_charger: Allow charger to control the regulator that feeds it.
> > twl4030_charger: allow charging whenever VBUS is present.
> > twl4030_charger: add backup-battery charging.
> > twl4030_charger: Fix some typos
> >
> >
> > drivers/mfd/twl-core.c | 9 ++--
> > drivers/power/twl4030_charger.c | 86 +++++++++++++++++++++++++++++++++++----
> > drivers/usb/otg/twl4030-usb.c | 27 ++++++++----
> > include/linux/i2c/twl.h | 2 +
> > 4 files changed, 102 insertions(+), 22 deletions(-)
> >
> > --
> > Signature
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
>


Attachments:
signature.asc (828.00 B)

2012-05-10 06:47:25

by Chen Peter-B29397

[permalink] [raw]
Subject: RE: [PATCH 0/6] twl4030: Various fixes for charing-from-USB


>
> Would you be able to help me understand exactly what it means for the
> USB
> bus to go to suspend? Is this something that the host initiates or
> something that the gadget initiates?
Host initiates it, when host wants to suspend the whole bus or certain port,
it will stop sending SOF, after 3ms of that, the device will pullup dp.
After that, the bus is at suspend state (dp=3, dm=0).

Please see:
http://www.amebasystems.com/downloads/hardware/datasheets/USB/
usb_20_052709/Suspend%20Current%20ECN.pdf

> How does this relate to a simple charger? It that considered to have a
> non-suspended bus, or is it considered as a separate case?
>
You may need a USB Charger driver which can differentiate dedicated charger (DCP),
host charger (CDP), or pc host port(SDP).
Only at SDP case, you need to consider suspend current limiation.

> Maybe we need to not suspend the USB OTG interface when the device as a
> whole enters suspend-to-RAM. Maybe we need to register a dummy gadget
> to
> the bus active while in suspend?
> Does the gadget have to be responsive while-ever the bus is not
> suspended?
> Maybe we can arrange for any USB activity to trigger a resume?
>
> Entering suspend while still charging really should be possible - at
> least
> with a dump charger and hopefully from a host port as well. I'll like
> to
> find the best way to achieve that, and any help you can provide would be
> greatly appreciated.
>
The host may not limit charge current when the vbus is on, but the device should
not draw much current when the host is suspended. Consider below case:

There is a Media Player connecting at laptop (without connecting wall power),
the laptop may suspend sometime later(vbus is still on), the Media Player may
go on working and continue drawing hundreds of mA from the host. Some hours
later, the capacity of laptop will be exhausted which is not expected.


2012-05-10 14:45:53

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH 0/6] twl4030: Various fixes for charing-from-USB

On Thu, 10 May 2012, NeilBrown wrote:

> Maybe we need to not suspend the USB OTG interface when the device as a
> whole enters suspend-to-RAM. Maybe we need to register a dummy gadget to
> the bus active while in suspend?
> Does the gadget have to be responsive while-ever the bus is not suspended?

Yes.

> Maybe we can arrange for any USB activity to trigger a resume?

Probably not, at least, not fast enough. The gadget is required to
respond to USB packets within a few microseconds. At a minimum, the
USB device controller would have to remain fully powered.

> Entering suspend while still charging really should be possible - at least
> with a dump charger and hopefully from a host port as well. I'll like to
> find the best way to achieve that, and any help you can provide would be
> greatly appreciated.

If the gadget is attached to a dumb charger rather than a host then
there's no problem. But otherwise it's not so simple.

Have you read the USB charger class specification? (I haven't...)

Alan Stern