• Peter Chen's avatar
    usb: gadget: core: change the comment for usb_gadget_connect · 7043e311
    Peter Chen authored
    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: default avatarPeter Chen <peter.chen@nxp.com>
    Link: https://lore.kernel.org/r/20201230051114.21370-1-peter.chen@nxp.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    7043e311
core.c 45.3 KB