RE: [PATCH 1/9] phy: core: Change the way of_phy_get is called

From: Kamil Debski
Date: Fri Dec 06 2013 - 05:52:27 EST


Hi,

> From: Kishon Vijay Abraham I [mailto:kishon@xxxxxx]
> 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.

[snip]

Best wishes,
--
Kamil Debski
Samsung R&D Institute Poland


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/