• Robert Jarzmik's avatar
    usb: phy: generic: cope with initial state · 9835a6ef
    Robert Jarzmik authored
    In the gpio based case, the status of the phy is known at start by
    reading the VBus gpio.
    
    Actually, this is a fix, as this initial state, when not set up,
    prevents a gadget to answer to the enumeration phase, as there is no
    notification in this case (the VBus is already high when kernel boots)
    so no interrupt is triggered, and the flow is :
     - gadget initializes
     - gadget gets its phy-generic with a xxx_get_phy_xxx() call type
     - gadget does a "set_peripheral()" call type
       => here if the otg->state is correctly filled, the proper vbus
       handling will be called, and the gadget will be aware it should
       answer enumeration and go forth
    
    Without this fix, the USB cable must be removed and replugged for any
    gadget relying on phy-generic and its gpio vbus handling to work.
    
    The problem was seen on a pxa27x architecture based board on a
    devicetree build.
    Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    9835a6ef
phy-generic.c 8.95 KB