> The embedded PHYs are only connected to the switch in this SoC and on > all other SoCs from this line I am aware of. Hi Hauke O.K, then it makes sense to have it part of the switch driver. > The firmware is 64KBytes big and we have to load that into continuous > memory which is then used by the PHY itself. When we are late in the > boot process we could run into memory problems, most devices have 64MB > or 128MB of RAM. You might want to look at using CMA. I've never used it myself, so cannot help much. > How should the device tree binding should look like? > > Should I create an extra sub node: > > gswip: gswip@E108000 { > #address-cells = <1>; > #size-cells = <0>; > compatible = "lantiq,xrx200-gswip"; > reg = < 0xE108000 0x3000 /* switch */ > 0xE10B100 0x70 /* mdio */ > 0xE10B1D8 0x30 /* mii */ > >; > dsa,member = <0 0>; > > ports { > #address-cells = <1>; > #size-cells = <0>; > > port@0 { > reg = <0>; > label = "lan3"; > phy-mode = "rgmii"; > phy-handle = <&phy0>; > }; > .... > }; > > mdio@0 { > #address-cells = <1>; > #size-cells = <0>; > compatible = "lantiq,xrx200-mdio"; > reg = <0>; > > phy0: ethernet-phy@0 { > reg = <0x0>; > }; > .... > }; > > # this would be the new part > phys { > gphy0: gphy@20 { > compatible = "lantiq,xrx200a2x-gphy"; It would be good to make it clear this is for firmware download. So scatter "firmware" or "fw" in some of these names. What we don't want is a mix up with phy's within the mdio subtree. Otherwise this looks good. But you should cross post the device tree binding to the device tree mailing list. Andrew