net: gem: Add support for more PHYs on MDIO bus

Find out MDIO bus and enable MDIO access to it if this is done via
different GEM controller. Only works across GEM instances.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index da4b6fb..8afec8b 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -758,6 +758,9 @@
 
 	if (!dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
 					&phandle_args)) {
+		fdt_addr_t addr;
+		ofnode parent;
+
 		debug("phy-handle does exist %s\n", dev->name);
 		priv->phyaddr = ofnode_read_u32_default(phandle_args.node,
 							"reg", -1);
@@ -765,6 +768,13 @@
 		priv->max_speed = ofnode_read_u32_default(phandle_args.node,
 							  "max-speed",
 							  SPEED_1000);
+
+		parent = ofnode_get_parent(phandle_args.node);
+		addr = ofnode_get_addr(parent);
+		if (addr != FDT_ADDR_T_NONE) {
+			debug("MDIO bus not found %s\n", dev->name);
+			priv->mdiobase = (struct zynq_gem_regs *)addr;
+		}
 	}
 
 	phy_mode = dev_read_prop(dev, "phy-mode", NULL);