Hi Tony, On 08/29/2018 10:00 AM, Tony Lindgren wrote: > The current cpsw usage for cpsw-phy-sel is undocumented but is used for > all the boards using cpsw. And cpsw-phy-sel is not really a child of > the cpsw device, it lives in the system control module instead. > > Let's document the existing usage, and improve it a bit where we prefer > to use a phandle instead of a child device for it. That way we can > properly describe the hardware in dts files for things like genpd. I'm ok with this series, but I really don't like cpsw-phy-sel in general. It was introduced long time back and now I'm thinking about possibility to replace it with one of current generic interfaces - for example mux-controller. Each port will control up to 3 muxes (port mode, idmode and rmii_ext_clk) and transform phy-mode => mux states. What do you think? Another option is to use phy, but it'd be complicated. > > Cc: devicetree@xxxxxxxxxxxxxxx > Cc: Andrew Lunn <andrew@xxxxxxx> > Cc: Grygorii Strashko <grygorii.strashko@xxxxxx> > Cc: Ivan Khoronzhuk <ivan.khoronzhuk@xxxxxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: Murali Karicheri <m-karicheri2@xxxxxx> > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- > Documentation/devicetree/bindings/net/cpsw.txt | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt > --- a/Documentation/devicetree/bindings/net/cpsw.txt > +++ b/Documentation/devicetree/bindings/net/cpsw.txt > @@ -19,6 +19,10 @@ Required properties: > - slaves : Specifies number for slaves > - active_slave : Specifies the slave to use for time stamping, > ethtool and SIOCGMIIPHY > +- cpsw-phy-sel : Specifies the phandle to the CPSW phy mode selection > + device. See also cpsw-phy-sel.txt for it's binding. > + Note that in legacy cases cpsw-phy-sel may be > + a child device instead of a phandle. > > Optional properties: > - ti,hwmods : Must be "cpgmac0" > @@ -75,6 +79,7 @@ Examples: > cpts_clock_mult = <0x80000000>; > cpts_clock_shift = <29>; > syscon = <&cm>; > + cpsw-phy-sel = <&phy_sel>; > cpsw_emac0: slave@0 { > phy_id = <&davinci_mdio>, <0>; > phy-mode = "rgmii-txid"; > @@ -103,6 +108,7 @@ Examples: > cpts_clock_mult = <0x80000000>; > cpts_clock_shift = <29>; > syscon = <&cm>; > + cpsw-phy-sel = <&phy_sel>; > cpsw_emac0: slave@0 { > phy_id = <&davinci_mdio>, <0>; > phy-mode = "rgmii-txid"; > -- regards, -grygorii