summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorMarek Vasut <marek.vasut@gmail.com>2011-09-11 18:05:31 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2011-09-30 22:01:01 +0200
commit9eb3770b7b32d672f5e812788976e72d4c6ed8af (patch)
tree14461afdc29b9f632b340eaebd14dd00bc1314cd /drivers/net
parent77dbd6ab7fcd8e24c14a7512417fa3b9c14ac786 (diff)
downloadu-boot-imx-9eb3770b7b32d672f5e812788976e72d4c6ed8af.zip
u-boot-imx-9eb3770b7b32d672f5e812788976e72d4c6ed8af.tar.gz
u-boot-imx-9eb3770b7b32d672f5e812788976e72d4c6ed8af.tar.bz2
FEC: Kill mode select FIXME's
Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Cc: Ben Warren <biggerbadderben@gmail.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Wolfgang Denk <wd@denx.de> Cc: Detlev Zundel <dzu@denx.de>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/fec_mxc.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 8e0d30a..9a99272 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -400,6 +400,7 @@ static int fec_init(struct eth_device *dev, bd_t* bd)
{
uint32_t base;
struct fec_priv *fec = (struct fec_priv *)dev->priv;
+ uint32_t rcntrl;
/* Initialize MAC address */
fec_set_hwaddr(dev);
@@ -442,19 +443,19 @@ static int fec_init(struct eth_device *dev, bd_t* bd)
/*
* Set FEC-Lite receive control register(R_CNTRL):
*/
- if (fec->xcv_type == SEVENWIRE) {
- /*
- * Frame length=1518; 7-wire mode
- */
- writel(0x05ee0020, &fec->eth->r_cntrl); /* FIXME 0x05ee0000 */
- } else {
- /*
- * Frame length=1518; MII mode;
- */
- writel(0x05ee0024, &fec->eth->r_cntrl); /* FIXME 0x05ee0004 */
+ /* Start with frame length = 1518, common for all modes. */
+ rcntrl = PKTSIZE << FEC_RCNTRL_MAX_FL_SHIFT;
+ if (fec->xcv_type == SEVENWIRE)
+ rcntrl |= FEC_RCNTRL_FCE;
+ else /* MII mode */
+ rcntrl |= FEC_RCNTRL_FCE | FEC_RCNTRL_MII_MODE;
+
+ writel(rcntrl, &fec->eth->r_cntrl);
+
+ if (fec->xcv_type == MII10 || fec->xcv_type == MII100)
fec_mii_setspeed(fec);
- }
+
/*
* Set Opcode/Pause Duration Register
*/
@@ -731,7 +732,8 @@ static int fec_probe(bd_t *bd)
/*
* Frame length=1518; MII mode;
*/
- writel(0x05ee0024, &fec->eth->r_cntrl); /* FIXME 0x05ee0004 */
+ writel((PKTSIZE << FEC_RCNTRL_MAX_FL_SHIFT) | FEC_RCNTRL_FCE |
+ FEC_RCNTRL_MII_MODE, &fec->eth->r_cntrl);
fec_mii_setspeed(fec);
sprintf(edev->name, "FEC");