[PATCH] net: zynq: Add support for mdio bus address decoding

Ramon Fried rfried.dev at gmail.com
Mon Nov 22 11:36:55 CET 2021


On Mon, Nov 22, 2021 at 9:40 AM Michal Simek <michal.simek at xilinx.com> wrote:
>
>
>
> On 11/21/21 20:11, Ramon Fried wrote:
> > On Thu, Nov 18, 2021 at 2:06 PM Michal Simek <michal.simek at xilinx.com> wrote:
> >>
> >> There are flying two configurations around.
> > Can you rephrase ? I don't understand.
>
> The first configuration is
> eth {
>         phy-handle = <&phy0>;
>          phy0: ethernet-phy at 21 {
>                 ...
>         };
> };
>
> The second is (based on mdio.yaml)
> eth {
>         phy-handle = <&phy0>;
>         mdio {
>                 phy0: ethernet-phy at 21 {
>                         ...
>                 };
>         };
> };
>
> Xilinx dts files are using both ways. But the second case is not fully
> when you have one mdio bus shared with at least 2 phys where one phy is
> connected to another gem controller.
> This code is updating logic which finds which gen controller is mdio bus
> owner.
>
> Please let me know if you want me to update commit message.
>
> Thanks,
> Michal
>
>
> >> The first (already supported) has phy as subnode of gem node.
> >> The second has mdio subnode (with mdio name) which has phy subnode.
> >>
> >> This patch adds support for the second case where mdio subnode
> >> is found driver will look at its parent to find out which gem is handling
> >> MDIO bus.
> >>
> >> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> >> ---
> >>
> >>   drivers/net/zynq_gem.c | 3 +++
> >>   1 file changed, 3 insertions(+)
> >>
> >> diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
> >> index 033021f1cbfc..91957757727d 100644
> >> --- a/drivers/net/zynq_gem.c
> >> +++ b/drivers/net/zynq_gem.c
> >> @@ -804,6 +804,9 @@ static int zynq_gem_of_to_plat(struct udevice *dev)
> >>                                                            SPEED_1000);
> >>
> >>                  parent = ofnode_get_parent(phandle_args.node);
> >> +               if (ofnode_name_eq(parent, "mdio"))
> >> +                       parent = ofnode_get_parent(parent);
> >> +
> >>                  addr = ofnode_get_addr(parent);
> >>                  if (addr != FDT_ADDR_T_NONE) {
> >>                          debug("MDIO bus not found %s\n", dev->name);
> >> --
> >> 2.33.1
> >>
"There are flying two configurations around."
The above sentence is semantically incorrect, just fix that.


More information about the U-Boot mailing list