瀏覽代碼

net: gem: Pass phy address to init

Pass the PHY address to the driver init to
allow parallel use of both interfaces

Signed-off-by: David Andrey <david.andrey@netmodule.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Tom Rini <trini@ti.com>
David Andrey 12 年之前
父節點
當前提交
117cd4cc10
共有 4 個文件被更改,包括 8 次插入9 次删除
  1. 4 2
      board/xilinx/zynq/board.c
  2. 2 6
      drivers/net/zynq_gem.c
  3. 1 0
      include/configs/zynq.h
  4. 1 1
      include/netdev.h

+ 4 - 2
board/xilinx/zynq/board.c

@@ -42,10 +42,12 @@ int board_eth_init(bd_t *bis)
 
 
 #if defined(CONFIG_ZYNQ_GEM)
 #if defined(CONFIG_ZYNQ_GEM)
 # if defined(CONFIG_ZYNQ_GEM0)
 # if defined(CONFIG_ZYNQ_GEM0)
-	ret |= zynq_gem_initialize(bis, ZYNQ_GEM_BASEADDR0);
+	ret |= zynq_gem_initialize(bis, ZYNQ_GEM_BASEADDR0,
+						CONFIG_ZYNQ_GEM_PHY_ADDR0);
 # endif
 # endif
 # if defined(CONFIG_ZYNQ_GEM1)
 # if defined(CONFIG_ZYNQ_GEM1)
-	ret |= zynq_gem_initialize(bis, ZYNQ_GEM_BASEADDR1);
+	ret |= zynq_gem_initialize(bis, ZYNQ_GEM_BASEADDR1,
+						CONFIG_ZYNQ_GEM_PHY_ADDR1);
 # endif
 # endif
 #endif
 #endif
 	return ret;
 	return ret;

+ 2 - 6
drivers/net/zynq_gem.c

@@ -427,7 +427,7 @@ static int zynq_gem_miiphy_write(const char *devname, uchar addr,
 	return phywrite(dev, addr, reg, val);
 	return phywrite(dev, addr, reg, val);
 }
 }
 
 
-int zynq_gem_initialize(bd_t *bis, int base_addr)
+int zynq_gem_initialize(bd_t *bis, int base_addr, int phy_addr)
 {
 {
 	struct eth_device *dev;
 	struct eth_device *dev;
 	struct zynq_gem_priv *priv;
 	struct zynq_gem_priv *priv;
@@ -443,11 +443,7 @@ int zynq_gem_initialize(bd_t *bis, int base_addr)
 	}
 	}
 	priv = dev->priv;
 	priv = dev->priv;
 
 
-#ifdef CONFIG_PHY_ADDR
-	priv->phyaddr = CONFIG_PHY_ADDR;
-#else
-	priv->phyaddr = -1;
-#endif
+	priv->phyaddr = phy_addr;
 
 
 	sprintf(dev->name, "Gem.%x", base_addr);
 	sprintf(dev->name, "Gem.%x", base_addr);
 
 

+ 1 - 0
include/configs/zynq.h

@@ -54,6 +54,7 @@
 #define CONFIG_NET_MULTI
 #define CONFIG_NET_MULTI
 #define CONFIG_ZYNQ_GEM
 #define CONFIG_ZYNQ_GEM
 #define CONFIG_ZYNQ_GEM0
 #define CONFIG_ZYNQ_GEM0
+#define CONFIG_ZYNQ_GEM_PHY_ADDR0	7
 
 
 #if defined(CONFIG_ZYNQ_DCC)
 #if defined(CONFIG_ZYNQ_DCC)
 # define CONFIG_ARM_DCC
 # define CONFIG_ARM_DCC

+ 1 - 1
include/netdev.h

@@ -104,7 +104,7 @@ int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,
 							int txpp, int rxpp);
 							int txpp, int rxpp);
 int xilinx_ll_temac_eth_init(bd_t *bis, unsigned long base_addr, int flags,
 int xilinx_ll_temac_eth_init(bd_t *bis, unsigned long base_addr, int flags,
 						unsigned long ctrl_addr);
 						unsigned long ctrl_addr);
-int zynq_gem_initialize(bd_t *bis, int base_addr);
+int zynq_gem_initialize(bd_t *bis, int base_addr, int phy_addr);
 /*
 /*
  * As long as the Xilinx xps_ll_temac ethernet driver has not its own interface
  * As long as the Xilinx xps_ll_temac ethernet driver has not its own interface
  * exported by a public hader file, we need a global definition at this point.
  * exported by a public hader file, we need a global definition at this point.