On Fri, Oct 30, 2015 at 3:17 PM, Douglas Anderson <dianders@xxxxxxxxxxxx> wrote: > From: Doug Anderson <dianders@xxxxxxxxxxxx> > > 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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html