David Daney wrote: > Well, the MDIO bus must have an associated device tree node. > > For my OCTEON code, the MDIO bus device is created as a result of the > call to of_platform_bus_probe(), which takes care of filling in all the > device tree nodes of the devices it finds and creates.
Ok, let me give you some background. We actually already have MDIO muxing code in-house, but it's different from yours. So now I'm rewriting it to use your design instead. So our current code looks for "virtual MDIO nodes", and we call mdiobus_alloc() and then of_mdiobus_register(). I think this is what I'm missing now. I just don't know what to do next. Part of the problem is that I don't have much experience with MDIO drivers. >> It returns NULL. Here is my MDIO node: >> >> fman0: fman@400000 { >> enet0: ethernet@e0000 { >> tbi-handle =<&tbi0>; >> phy-handle =<&phy0>; >> phy-connection-type = "sgmii"; >> }; >> >> mdio0: mdio@e1120 { >> gpios =<&gpio0 0 0 >> &gpio0 1 0>; >> >> tbi0: tbi-phy@8 { >> reg =<0x8>; >> device_type = "tbi-phy"; >> }; >> >> phy0: ethernet-phy@1c { >> reg =<0x1c>; >> }; >> }; >> }; >> >> What am I missing? > > For starters, I do not see any compatible properties that would allow > the proper drivers to be bound to anything. Ok, that makes sense. > Also I see no MDIO mux node there, so it is unclear why you are even > asking these questions. I only gave you part of the device tree. Here's my mdio mux node: mdio-mux { compatible = "mdio-mux-gpio"; gpios = <&gpio0 0 0>, <&gpio0 1 0>; mdio-parent-bus = <&mdio0>; #address-cells = <1>; #size-cells = <0>; mdio@2 { reg = <2>; #address-cells = <1>; #size-cells = <0>; phy21: ethernet-phy@1 { reg = <1>; // compatible = "marvell,88e1149r", "ethernet-phy-ieee802.3-c22"; marvell,reg-init = <3 0x10 0 0x5777>, <3 0x11 0 0x00aa>, <3 0x12 0 0x4105>, <3 0x13 0 0x0a60>; interrupt-parent = <&gpio0>; // interrupts = <10 8>; /* Pin 10, active low */ }; }; }; }; > > David Daney > -- Timur Tabi Linux kernel developer at Freescale _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev