Messages in this thread | | | From | Rob Herring <> | Date | Mon, 2 Nov 2015 10:12:32 -0600 | Subject | Re: [PATCH v2 1/2] usb: dwc2: optionally assert phy "full reset" when waking up |
| |
On Fri, Oct 30, 2015 at 3:17 PM, Douglas Anderson <dianders@chromium.org> wrote: > From: Doug Anderson <dianders@chromium.org> > > On the rk3288 USB host-only port (the one that's not the OTG-enabled > port) the PHY can get into a bad state when a wakeup is asserted (not > just a wakeup from full system suspend but also a wakeup from > autosuspend).
I would think re-enumerating means autosuspend is broken.
> We can get the PHY out of its bad state by asserting its "port reset", > but unfortunately that seems to assert a reset onto the USB bus so it > could confuse things if we don't actually deenumerate / reenumerate the > device. > > We can also get the PHY out of its bad state by fully resetting it using > the reset from the CRU (clock reset unit), which does a more full > reset. The CRU-based reset appears to actually cause devices on the bus > to be removed and reinserted, which fixes the problem (albeit in a hacky > way).
The reset from the CRU goes to the PHY, correct? Therefore, the binding should reflect that. Connecting it to the host controller is a hack.
So describe the reset connection properly and then add a .phy_reset() hook to the phy subsystem. Then call that when flag property you added is set.
Rob
| |