Messages in this thread Patch in this message | | | Date | Sat, 26 Dec 2020 14:45:44 +0100 | From | Jules Maselbas <> | Subject | Re: [RFC PATCH] usb: dwc2: Try usb_get_phy_by_phandle instead of usb_get_phy |
| |
Hi Artur,
On Fri, Dec 25, 2020 at 11:41:04AM +0000, Artur Petrosyan wrote: > > @@ -251,7 +251,12 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg) > > } > > > > if (!hsotg->phy) { > > - hsotg->uphy = devm_usb_get_phy(hsotg->dev, USB_PHY_TYPE_USB2); > > + if (hsotg->dev->of_node) > > + i = of_property_match_string(hsotg->dev->of_node, "phy-names", "usb2-phy"); > > According the device tree you have provided the value of "i" will always > be "0". Yes
> > + if (hsotg->dev->of_node && i >= 0) > > + hsotg->uphy = devm_usb_get_phy_by_phandle(hsotg->dev, "phys", i); > > Why do you use the value of "i" while in "<&usb_phy0>" you have only one > phy. If you had several phy-names and the value of "i" gets more than 0, > then based on your usb_phy0 "devm_usb_get_phy_by_phandle" function will > return error. So, maybe it would be more correct (based on your device > tree), to use below command > hsotg->uphy = devm_usb_get_phy_by_phandle(hsotg->dev, "phys", 0); Yes I could use 0 instead of i, but I would like this to work not only for my case where the "usb2-phy" phandle comes first.
I've tried to follow what's done in phy-core.c, as done by the function phy_get. Where it first call "of_property_match_string" and then get the phy with the matched index.
I don't see how, in my case, the function "devm_usb_get_phy_by_phandle" can be called with i greater than 0, and returning an error.
Best, Jules
| |