fm-eth: add function fm_info_get_phy_address()
authorTimur Tabi <timur@freescale.com>
Tue, 14 Aug 2012 06:47:22 +0000 (06:47 +0000)
committerAndy Fleming <afleming@freescale.com>
Thu, 23 Aug 2012 15:24:18 +0000 (10:24 -0500)
Function fm_info_get_phy_address() returns the PHY address for a given
Fman port.  This is handy when the MDIO code needs to fixup the Ethernet
nodes in the device tree to point to PHY nodes for a specific PHY address.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
drivers/net/fm/init.c
include/fm_eth.h

index 9834cd97053b768d2307d5e54e9a35276fea71c1..8a5311c74fab5a628658c52af64ae5bafefe814d 100644 (file)
@@ -154,6 +154,22 @@ void fm_info_set_phy_address(enum fm_port port, int address)
        fm_info[i].phy_addr = address;
 }
 
+/*
+ * Returns the PHY address for a given Fman port
+ *
+ * The port must be set via a prior call to fm_info_set_phy_address().
+ * A negative error code is returned if the port is invalid.
+ */
+int fm_info_get_phy_address(enum fm_port port)
+{
+       int i = fm_port_to_index(port);
+
+       if (i == -1)
+               return -1;
+
+       return fm_info[i].phy_addr;
+}
+
 /*
  * Returns the type of the data interface between the given MAC and its PHY.
  * This is typically determined by the RCW.
index 05121ea8ef839994fdc663c6e481500533128e0d..e56541df1b727a997391fdc24a051e81209de965 100644 (file)
@@ -110,6 +110,7 @@ void fman_enet_init(void);
 void fdt_fixup_fman_ethernet(void *fdt);
 phy_interface_t fm_info_get_enet_if(enum fm_port port);
 void fm_info_set_phy_address(enum fm_port port, int address);
+int fm_info_get_phy_address(enum fm_port port);
 void fm_info_set_mdio(enum fm_port port, struct mii_dev *bus);
 void fm_disable_port(enum fm_port port);