From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tony Lindgren Subject: Re: [PATCH v6 net-next 06/13] dt-bindings: net: ti: add new cpsw switch driver bindings Date: Mon, 11 Nov 2019 09:26:52 -0800 Message-ID: <20191111172652.GV5610@atomide.com> References: <20191109151525.18651-1-grygorii.strashko@ti.com> <20191109151525.18651-7-grygorii.strashko@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20191109151525.18651-7-grygorii.strashko@ti.com> Sender: linux-kernel-owner@vger.kernel.org To: Grygorii Strashko Cc: Florian Fainelli , netdev@vger.kernel.org, Ilias Apalodimas , Andrew Lunn , "David S . Miller" , Ivan Khoronzhuk , Jiri Pirko , Sekhar Nori , linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, Murali Karicheri , Ivan Vecera , Rob Herring , devicetree@vger.kernel.org List-Id: linux-omap@vger.kernel.org Hi, * Grygorii Strashko [191109 15:17]: > + mac_sw: switch@0 { > + compatible = "ti,dra7-cpsw-switch","ti,cpsw-switch"; > + reg = <0x0 0x4000>; > + ranges = <0 0 0x4000>; > + clocks = <&gmac_main_clk>; > + clock-names = "fck"; > + #address-cells = <1>; > + #size-cells = <1>; > + syscon = <&scm_conf>; > + inctrl-names = "default", "sleep"; > + > + interrupts = , > + , > + , > + ; > + interrupt-names = "rx_thresh", "rx", "tx", "misc"; I think with the ti-sysc managing the interconnect target module as the parent of this, you should be able add all the modules as direct children of ti-sysc with minor fixups. This would simplify things, and makes it easier to update the driver later on when the child modules get changed/updated/moved around. The child modules just need to call PM runtime to have access to their registers, and whatever cpsw control module part could be a separate driver providing Linux standard services for example for clock gating :) > + davinci_mdio_sw: mdio@1000 { > + compatible = "ti,cpsw-mdio","ti,davinci_mdio"; > + reg = <0x1000 0x100>; > + clocks = <&gmac_clkctrl DRA7_GMAC_GMAC_CLKCTRL 0>; > + clock-names = "fck"; > + #address-cells = <1>; > + #size-cells = <0>; > + bus_freq = <1000000>; > + > + ethphy0_sw: ethernet-phy@0 { > + reg = <0>; > + }; > + > + ethphy1_sw: ethernet-phy@1 { > + reg = <41>; > + }; > + }; And in this case, mdio above would just move up one level. This goes back to my earlier comments saying the cpsw is really just a private interconnect with a collection of various mostly independent modules. Sounds like you're heading that way already though at the driver level :) Regards, Tony