summaryrefslogtreecommitdiffstats
path: root/drivers/net/cpsw.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-05-14 16:48:26 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-05-15 13:58:39 +0200
commit26576f8ef552c3be2dded065c546d3b38903ddbc (patch)
treefd48ed09125317dc43284e6f1bb1addac62a9f9b /drivers/net/cpsw.c
parent6322a0305f0f87b3fcee5386d605925e5f10aefc (diff)
downloadbarebox-26576f8ef552c3be2dded065c546d3b38903ddbc.tar.gz
barebox-26576f8ef552c3be2dded065c546d3b38903ddbc.tar.xz
net: cpsw: Allow multiple slaves
The driver is ready now for handling both slaved, so add support for it. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/net/cpsw.c')
-rw-r--r--drivers/net/cpsw.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index 493092698c..ccae5376c3 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -572,9 +572,6 @@ static void cpsw_slave_update_link(struct cpsw_slave *slave,
if (!phydev)
return;
- if (slave->slave_num)
- return;
-
if (phydev->link) {
*link = 1;
mac_control = BIT(5); /* MIIEN */
@@ -1096,9 +1093,6 @@ static int cpsw_probe_dt(struct cpsw_priv *priv)
cpsw_gmii_sel_am335x(slave);
}
- /* Only one slave supported by this driver */
- priv->num_slaves = 1;
-
return 0;
}
@@ -1110,7 +1104,7 @@ int cpsw_probe(struct device_d *dev)
uint64_t start;
uint32_t phy_mask;
struct cpsw_data *cpsw_data;
- int ret;
+ int i, ret;
dev_dbg(dev, "* %s\n", __func__);
@@ -1202,9 +1196,11 @@ int cpsw_probe(struct device_d *dev)
mdiobus_register(&priv->miibus);
- ret = cpsw_slave_setup(&priv->slaves[0], 0, priv);
- if (ret)
- goto out;
+ for (i = 0; i < priv->num_slaves; i++) {
+ ret = cpsw_slave_setup(&priv->slaves[i], i, priv);
+ if (ret)
+ goto out;
+ }
return 0;
out: