[PATCH 5/5] net: fec_imx: configure FEC for 10Mbit when necessary
Eric Bénard
eric at eukrea.com
Tue Jan 24 10:38:15 EST 2012
Hi Wolfram,
Le Tue, 24 Jan 2012 14:53:51 +0100,
Wolfram Sang <w.sang at pengutronix.de> a écrit :
> Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
> ---
> drivers/net/fec_imx.c | 11 +++++++++++
> 1 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
> index 45af78f..653b488 100644
> --- a/drivers/net/fec_imx.c
> +++ b/drivers/net/fec_imx.c
> @@ -373,6 +373,17 @@ static int fec_open(struct eth_device *edev)
> ret = miidev_wait_aneg(&fec->miidev);
> if (ret)
> return ret;
> +
> + ret = miidev_get_status(&fec->miidev);
> + if (ret < 0)
> + return ret;
> +
> + if (ret & MIIDEV_STATUS_IS_10MBIT) {
> + u32 rcntl = readl(fec->regs + FEC_R_CNTRL);
> + rcntl |= FEC_R_CNTRL_RMII_10T;
> + writel(rcntl, fec->regs + FEC_R_CNTRL);
> + }
> +
> miidev_print_status(&fec->miidev);
> }
>
I didn't check the code where this patch is inserted but if the fec is
similar to the MX25 one, you need to set this bit only when wired in
RMII so maybe you need a test for the way the PHY is wired.
Here is what is in the kernel for the i.MX25 :
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8d82f219c2d476811cd3157a39c7b5c1f045ebc3;hp=25cecd7e355bf90b8fea039bd06947bb3234e77d
Eric
More information about the barebox
mailing list