Messages in this thread | | | Date | Mon, 9 Dec 2013 12:52:40 +0530 | From | Kishon Vijay Abraham I <> | Subject | Re: [PATCH 1/9] phy: core: Change the way of_phy_get is called |
| |
On Friday 06 December 2013 04:22 PM, Kamil Debski wrote: > Hi, > >> From: Kishon Vijay Abraham I [mailto:kishon@ti.com] >> Sent: Friday, December 06, 2013 6:31 AM >> >> Hi, >> >> On Thursday 05 December 2013 05:59 PM, Kamil Debski wrote: >>> Previously the of_phy_get function took a struct device * and was >>> declared static. It was impossible to call it from another driver and >>> thus it was impossible to get phy defined >> >> It was never intended to be called from other drivers. What's up with >> the wrapper of of_phy_get, phy_get()/devm_phy_get()? Why isn't that >> enough? > > Implementing support for multiple phys in the ehci driver is a bit tricky. > Especially when we want to do it right. Please have a look at this part of > the dts file: > > + ehci@12580000 { > + compatible = "samsung,exynos4210-ehci"; > + reg = <0x12580000 0x20000>; > + interrupts = <0 70 0>; > + clocks = <&clock 304>, <&clock 305>; > + clock-names = "usbhost", "otg"; > + status = "disabled"; > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + phys = <&usb2phy 1>; > + phy-names = "host"; > + status = "disabled"; > + }; > + port@1 { > + reg = <1>; > + phys = <&usb2phy 2>; > + phy-names = "hsic0"; > + status = "disabled"; > + }; > + port@2 { > + reg = <2>; > + phys = <&usb2phy 3>; > + phy-names = "hsic1"; > + status = "disabled"; > + }; > + }; > > With the above we have a clear specification of ports and their respective > phys. But to do this properly the ehci driver has to iterate over port > nodes. It is much easier to use devm_of_phy_get by giving the node as its > argument.
I see. There are a couple of more things we do in the wrapper that gets missed while exporting of_phy_get (get_device and try_module_get). You might want to re-work that one.
Thanks Kishon
| |