summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTroy Kisky <troy.kisky@boundarydevices.com>2012-10-22 16:40:41 +0000
committerStefano Babic <sbabic@denx.de>2013-01-28 06:57:50 +0100
commit575c5cc06f63d02fda73c7b29c6d782de4df6393 (patch)
tree78cf2c030342131025743e69fc4b35a612cc50be /drivers
parent09439c3197bb19e091ce160b398451517a8fe1b0 (diff)
downloadu-boot-imx-575c5cc06f63d02fda73c7b29c6d782de4df6393.zip
u-boot-imx-575c5cc06f63d02fda73c7b29c6d782de4df6393.tar.gz
u-boot-imx-575c5cc06f63d02fda73c7b29c6d782de4df6393.tar.bz2
net: fec_mxc: change fec_mii_setspeed parameter
Only the hardware ethernet registers are needed for this function, so don't pass the more general structure. I'm trying to separate MII and fec. This also fixes MX28 fec_mii_setspeed use on secondary ethernet port This was found by inspection of the code and should be checked on real hardware. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec_mxc.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 6596ceb..eb89e57 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -135,15 +135,15 @@ static int fec_mdio_read(struct ethernet_regs *eth, uint8_t phyAddr,
return val;
}
-static void fec_mii_setspeed(struct fec_priv *fec)
+static void fec_mii_setspeed(struct ethernet_regs *eth)
{
/*
* Set MII_SPEED = (1/(mii_speed * 2)) * System Clock
* and do not drop the Preamble.
*/
writel((((imx_get_fecclk() / 1000000) + 2) / 5) << 1,
- &fec->eth->mii_speed);
- debug("%s: mii_speed %08x\n", __func__, readl(&fec->eth->mii_speed));
+ &eth->mii_speed);
+ debug("%s: mii_speed %08x\n", __func__, readl(&eth->mii_speed));
}
static int fec_mdio_write(struct ethernet_regs *eth, uint8_t phyAddr,
@@ -611,7 +611,7 @@ static int fec_init(struct eth_device *dev, bd_t* bd)
fec_reg_setup(fec);
if (fec->xcv_type != SEVENWIRE)
- fec_mii_setspeed(fec);
+ fec_mii_setspeed(fec->bus->priv);
/*
* Set Opcode/Pause Duration Register
@@ -966,7 +966,6 @@ static int fec_probe(bd_t *bd, int dev_id, int phy_id, uint32_t base_addr)
}
fec_reg_setup(fec);
- fec_mii_setspeed(fec);
if (dev_id == -1) {
sprintf(edev->name, "FEC");
@@ -995,6 +994,7 @@ static int fec_probe(bd_t *bd, int dev_id, int phy_id, uint32_t base_addr)
#else
bus->priv = fec->eth;
#endif
+ fec_mii_setspeed(bus->priv);
ret = mdio_register(bus);
if (ret) {
printf("mdio_register failed\n");