diff options
author | Marek Vasut | 2011-09-11 18:05:31 +0000 |
---|---|---|
committer | Albert ARIBAUD | 2011-09-30 22:01:01 +0200 |
commit | 9eb3770b7b32d672f5e812788976e72d4c6ed8af (patch) | |
tree | 14461afdc29b9f632b340eaebd14dd00bc1314cd /drivers | |
parent | 77dbd6ab7fcd8e24c14a7512417fa3b9c14ac786 (diff) |
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')
-rw-r--r-- | drivers/net/fec_mxc.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index 8e0d30a1318..9a99272ff92 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"); |