On Tue, Oct 13, 2020 at 8:01 PM Peter Chen <peter.chen@xxxxxxx> wrote: > > The pullup does not need to be enabled at below situations: > - For platforms which the hardware pullup starts after setting > register even they do not see the VBUS. If the pullup is always > enabled for these platforms, it will consume more power and > break the USB IF compliance tests [1]. > - For platforms which need to do BC 1.2 charger detection after > seeing the VBUS. Pullup D+ will break the charger detection > flow. > - For platforms which the system suspend is allowed when the > connection with host is there but the bus is not at suspend. > For these platforms, it is better to disable pullup when > entering the system suspend otherwise the host may confuse > the device behavior after controller is in low power mode. > Disable pullup is considered as a disconnection event from > host side. > > [1] USB-IF Full and Low Speed Compliance Test Procedure > F Back-voltage Testing > Section 7.2.1 of the USB specification requires that no device > shall supply (source) current on VBUS at its upstream facing > port at any time. From VBUS on its upstream facing port, > a device may only draw (sink) current. They may not provide power > to the pull-up resistor on D+/D- unless VBUS is present (see > Section 7.1.5). > > Signed-off-by: Peter Chen <peter.chen@xxxxxxx> > --- > drivers/usb/gadget/udc/core.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c > index debf54205d22..215ecbe8b692 100644 > --- a/drivers/usb/gadget/udc/core.c > +++ b/drivers/usb/gadget/udc/core.c > @@ -659,8 +659,7 @@ EXPORT_SYMBOL_GPL(usb_gadget_vbus_disconnect); > * > * Enables the D+ (or potentially D-) pullup. The host will start > * enumerating this gadget when the pullup is active and a VBUS session > - * is active (the link is powered). This pullup is always enabled unless > - * usb_gadget_disconnect() has been used to disable it. > + * is active (the link is powered). > * > * Returns zero on success, else negative errno. > */ > -- > 2.17.1 > Ping... Peter