summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimur Tabi <timur@freescale.com>2012-08-14 06:47:22 +0000
committerAndy Fleming <afleming@freescale.com>2012-08-23 10:24:18 -0500
commitae2291fbe0f9858d332423a97c6b09157005050f (patch)
tree1169c04179489ea568b65ab78e3db98106e3c2e6
parent99abf7ded3b8daf82bdf1a60d1a92cb76c482c9a (diff)
fm-eth: add function fm_info_get_phy_address()
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>
-rw-r--r--drivers/net/fm/init.c16
-rw-r--r--include/fm_eth.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/fm/init.c b/drivers/net/fm/init.c
index 9834cd9705..8a5311c74f 100644
--- a/drivers/net/fm/init.c
+++ b/drivers/net/fm/init.c
@@ -155,6 +155,22 @@ void fm_info_set_phy_address(enum fm_port port, int 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.
*/
diff --git a/include/fm_eth.h b/include/fm_eth.h
index 05121ea8ef..e56541df1b 100644
--- a/include/fm_eth.h
+++ b/include/fm_eth.h
@@ -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);