[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