[PATCH 15/15] pxa2[57]x_udc: drop gpio_pullup handling
Felipe Balbi
balbi at ti.com
Wed Jul 6 03:20:43 EDT 2011
hi,
On Wed, Jul 06, 2011 at 12:58:48AM +0400, Dmitry Eremin-Solenikov wrote:
> On 7/6/11, Robert Jarzmik <robert.jarzmik at free.fr> wrote:
> > On 07/05/2011 03:08 PM, Dmitry Eremin-Solenikov wrote:
> >> Now as all drivers were converted to using gpio-vbus, drop gpio-pullup
> >> handling from pxa UDC drivers, thus simplifying them a bit.
> >
> > Is this patch compliant with USB 2 specification regarding maximum time
> > between pullup triggering and UDC ready to answer the "RESET" packet and
> > be assigned an address ?
> >
> > This is the sequence I'm worried about :
> > (1) The gpio-vbus is loaded
> > (2) The pxa27x_udc is loaded
> > (3) USB cable is plugged
> > => VBUS is sensed
> > (4) gpio-vbus pulls up the D+ (Dmitry, is that right ?)
> > (5) the host waits for UDC to settle (100 ms ?)
> > (5) set address packet(s) are sent from host to UDC
> > (6) UDC is not enabled, as no gadget is registered
> > => UDC doesn't answer
> > => usb host cannot assign it an address
> > (7) a gadget is loaded (g_ether for example)
> > => UDC is enabled, but too late
> >
> > Alan, Gregh, could you confirm point (5) about a maximum time between D+
> > line activation and UDC duty to repond to "set address" packets, as well
> > as the consequence of point (6) where the usb device is rejected because
> > no address could be assigned ?
> >
> > Dmitry, could you confirm the the D+ pullup is done at point (4) ?
>
> No, I can't confirm this. IIUC, evrything happens in abit different way:
> (4) trancseiver notifies udc about VBUS sense
> (5) a gadget is loaded (g_ether for example)
> (6) gadget asks udc to enale pullup
> (7) udc tells gpio_vbus to enable pullup.
yeah, with udc-core.c we only enable pullup after gadget driver is
loaded.
290 ret = bind(udc->gadget);
291 if (ret)
292 goto err1;
293 ret = usb_gadget_udc_start(udc->gadget, driver);
294 if (ret) {
295 driver->unbind(udc->gadget);
296 goto err1;
297 }
298 usb_gadget_connect(udc->gadget);
but this is the new style bind() and many UDCs still need to be
converted.
--
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20110706/eb2b3213/attachment.sig>
More information about the linux-arm-kernel
mailing list