RE: [PATCH 0/6] twl4030: Various fixes for charing-from-USB
From: Chen Peter-B29397
Date: Thu May 10 2012 - 02:47:31 EST
> Would you be able to help me understand exactly what it means for the
> 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).
> 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
> the bus active while in suspend?
> Does the gadget have to be responsive while-ever the bus is not
> Maybe we can arrange for any USB activity to trigger a resume?
> Entering suspend while still charging really should be possible - at
> with a dump charger and hopefully from a host port as well. I'll like
> 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.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/