summaryrefslogtreecommitdiffstats
path: root/drivers/net/cpsw.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-11-05 15:47:39 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2014-11-05 15:47:39 +0100
commite3c49aac6963901f793f8b5cb48d041d36162bcf (patch)
tree55fbb5b8f1b62b7e3c3cbbe87b122945e7b9ae90 /drivers/net/cpsw.c
parenta407a4ddaac41819948d16f5bbaa657974e75654 (diff)
parentf95ce0fff0775c04954ae2e4542308baaa434ac8 (diff)
downloadbarebox-e3c49aac6963901f793f8b5cb48d041d36162bcf.tar.gz
barebox-e3c49aac6963901f793f8b5cb48d041d36162bcf.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'drivers/net/cpsw.c')
-rw-r--r--drivers/net/cpsw.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index d3cc0e930b..b6618ad675 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -1199,6 +1199,19 @@ int cpsw_probe(struct device_d *dev)
mdiobus_register(&priv->miibus);
for (i = 0; i < priv->num_slaves; i++) {
+ struct phy_device *phy;
+
+ phy = mdiobus_scan(&priv->miibus, priv->slaves[i].phy_id);
+ if (IS_ERR(phy)) {
+ ret = PTR_ERR(phy);
+ goto out;
+ }
+
+ phy->dev.device_node = priv->slaves[i].dev.device_node;
+ ret = phy_register_device(phy);
+ if (ret)
+ goto out;
+
ret = cpsw_slave_setup(&priv->slaves[i], i, priv);
if (ret)
goto out;