diff options
author | Mugunthan V N <mugunthanvnm@ti.com> | 2014-05-22 14:37:10 +0530 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-07-25 15:21:05 -0400 |
commit | 7a0227534dfc17c96bb02529fb69971d079a85f0 (patch) | |
tree | 227d8e6dbda89eec57ba97d1ffc227ada11f1267 | |
parent | 23f23f23d509e8e873797884456070c8a47d72b2 (diff) | |
download | u-boot-imx-7a0227534dfc17c96bb02529fb69971d079a85f0.zip u-boot-imx-7a0227534dfc17c96bb02529fb69971d079a85f0.tar.gz u-boot-imx-7a0227534dfc17c96bb02529fb69971d079a85f0.tar.bz2 |
drivers: net: cpsw: add support for using second port as ethernet
Add support for using the second slave port of cpsw
to be used as primary ethernet.
Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
-rw-r--r-- | drivers/net/cpsw.c | 8 | ||||
-rw-r--r-- | include/cpsw.h | 1 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c index bd5fba2..8ec5161 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -211,6 +211,8 @@ struct cpdma_chan { #define chan_read(chan, fld) __raw_readl((chan)->fld) #define chan_read_ptr(chan, fld) ((void *)__raw_readl((chan)->fld)) +#define for_active_slave(slave, priv) \ + slave = (priv)->slaves + (priv)->data.active_slave; if (slave) #define for_each_slave(slave, priv) \ for (slave = (priv)->slaves; slave != (priv)->slaves + \ (priv)->data.slaves; slave++) @@ -609,7 +611,7 @@ static int cpsw_update_link(struct cpsw_priv *priv) int link = 0; struct cpsw_slave *slave; - for_each_slave(slave, priv) + for_active_slave(slave, priv) cpsw_slave_update_link(slave, priv, &link); priv->mdio_link = readl(&mdio_regs->link); return link; @@ -785,7 +787,7 @@ static int cpsw_init(struct eth_device *dev, bd_t *bis) ALE_SECURE); cpsw_ale_add_mcast(priv, NetBcastAddr, 1 << priv->host_port); - for_each_slave(slave, priv) + for_active_slave(slave, priv) cpsw_slave_init(slave, priv); cpsw_update_link(priv); @@ -1013,7 +1015,7 @@ int cpsw_register(struct cpsw_platform_data *data) cpsw_mdio_init(dev->name, data->mdio_base, data->mdio_div); priv->bus = miiphy_get_dev_by_name(dev->name); - for_each_slave(slave, priv) + for_active_slave(slave, priv) cpsw_phy_init(dev, slave); return 1; diff --git a/include/cpsw.h b/include/cpsw.h index a73843d..547b40c 100644 --- a/include/cpsw.h +++ b/include/cpsw.h @@ -44,6 +44,7 @@ struct cpsw_platform_data { struct cpsw_slave_data *slave_data; void (*control)(int enabled); u32 host_port_num; + u32 active_slave; u8 version; }; |