> +Example: > +iproc_mdio: iproc_mdio@663f0000 { > + compatible = "brcm,iproc-shared-mdio"; > + reg = <0x6602023c 0x14>; > + reg-names = "mdio"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + sata-master@6 { > + compatible = "brcm,iproc-ns2-sata-phy"; > + reg = <0x6>; > + #address-cells = <1>; > + #size-cells = <0>; > + brcm,phy-internal; > + > + sata_phy0: sata-phy@1 { > + reg = <0x1>; > + #phy-cells = <0>; > + }; > + > + sata_phy1: sata-phy@2 { > + reg = <0x2>; > + #phy-cells = <0>; > + }; > + }; > + > + eth-master@0 { > + compatible = "brcm,iproc-mdio-master-eth"; > + reg = <0x0>; > + #address-cells = <1>; > + #size-cells = <0>; > + gphy0: eth-phy@10 { > + reg = <0x10>; > + phy-mode = "mii"; > + }; > + }; > +}; So looking at this, you have an MDIO bus, an MDIO mux on top of that, and then some MDIO devices on the muxed busses. You don't need a whole new framework for this. You need a new mdio-mux driver, but the existing MDIO framework should do what you need. Andrew -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html