diff mbox series

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

Message ID 6748007f0b6db9554d7a4b52352dce23ca403f9d.1638798796.git.michal.simek@xilinx.com
State Accepted
Commit 12133b11a7ff817fd96210eeb7e84ff9f871e714
Delegated to: Michal Simek
Headers show
Series [v2] net: zynq: Add support for mdio bus address decoding | expand

Commit Message

Michal Simek Dec. 6, 2021, 1:53 p.m. UTC
Xilinx DTS files are using two way how to describe ethernet phy.

The first (already supported) has phy as subnode of gem node.
eth {
        phy-handle = <&phy0>;
         phy0: ethernet-phy@21 {
                ...
        };
};

The second has mdio subnode (with mdio name) which has phy subnode. This
structure allow hadling MDIO reset signal (based on Linux mdio.yaml)
eth {
        phy-handle = <&phy0>;
        mdio {
                phy0: ethernet-phy@21 {
                        ...
                };
        };
};

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@xilinx.com>
---

Changes in v2:
- update commit message

 drivers/net/zynq_gem.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Michal Simek Jan. 5, 2022, 9:33 a.m. UTC | #1
po 6. 12. 2021 v 14:53 odesílatel Michal Simek <michal.simek@xilinx.com> napsal:
>
> Xilinx DTS files are using two way how to describe ethernet phy.
>
> The first (already supported) has phy as subnode of gem node.
> eth {
>         phy-handle = <&phy0>;
>          phy0: ethernet-phy@21 {
>                 ...
>         };
> };
>
> The second has mdio subnode (with mdio name) which has phy subnode. This
> structure allow hadling MDIO reset signal (based on Linux mdio.yaml)
> eth {
>         phy-handle = <&phy0>;
>         mdio {
>                 phy0: ethernet-phy@21 {
>                         ...
>                 };
>         };
> };
>
> 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@xilinx.com>
> ---
>
> Changes in v2:
> - update commit message
>
>  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 3e227725022d..fece077066df 100644
> --- a/drivers/net/zynq_gem.c
> +++ b/drivers/net/zynq_gem.c
> @@ -846,6 +846,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
>

Applied.
M
diff mbox series

Patch

diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index 3e227725022d..fece077066df 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -846,6 +846,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);