On Thu, 2019-02-21 at 08:37 +0000, Peter Chen wrote: > > > > If there is a generic PHY node under USB controller, and there is a > > > USB PHY at other sides, both ci->phy and ci->usb_phy are valid, I > > > original thought it is the problem you met. > > > > Right, this is not the problem we are having. The problem is that legacy USB PHYs > > are not grabbed from device-tree. Instead, they are currently matched with their > > type in the list of registered USB PHYs, making it impossible to use 2 distinct USB > > PHYs this way. > > > > > Since you are trying to fix the legacy USB PHY grab issue, I hope you > > > could consider the generic PHY as well. > > > > What do you have in mind about generic PHYs? Everything already works as > > expected with them. > > > > Current code w/o your patch, it is possible both ci->phy and ci->usb_phy are valid > if the USB PHY is not at the device tree, but generic PHY is at the device tree. > If you don't want to fix this issue with this patch, it is ok too. We could fix it later. I'm not sure I understand the issue. With my patch, if there is a generic PHY described in device-tree, then devm_usb_get_phy_by_phandle for legacy PHY will fail and the code will fallback to devm_usb_get_phy, which is the same behavior as before. Is it a problem that we can end up with both a generic and legacy PHY? I thought this was expected behavior at probe, and the rest of the code will just use the generic one in priority. Do you want to make it so that only one (generic or legacy) PHY remains after probe? Cheers, Paul -- Paul Kocialkowski, Bootlin Embedded Linux and kernel engineering https://bootlin.com