All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Warren <biggerbadderben@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V3 7/8] fec_mxc: add MX25 support
Date: Sun, 31 Jan 2010 22:18:52 -0800	[thread overview]
Message-ID: <4B66724C.7010208@gmail.com> (raw)
In-Reply-To: <1264486378-10316-8-git-send-email-jcrigby@gmail.com>

Tom,

As with the other one, I can't apply this by itself.  Please apply to 
your tree.

John Rigby wrote:
> Use RMII for MX25
> Add code to init gasket that enables RMII
>
> Signed-off-by: John Rigby <jcrigby@gmail.com>
>   
Acked-by: Ben Warren <biggerbadderben@gmail.com>
> ---
>  drivers/net/fec_mxc.c             |   31 ++++++++++++++++++++++++++++++-
>  drivers/net/fec_mxc.h             |   32 ++++++++++++++++++++++++++++++--
>  include/asm-arm/arch-mx25/clock.h |    1 +
>  3 files changed, 61 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
> index b5619eb..f109485 100644
> --- a/drivers/net/fec_mxc.c
> +++ b/drivers/net/fec_mxc.c
> @@ -347,6 +347,34 @@ static int fec_open(struct eth_device *edev)
>  	 */
>  	writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_ETHER_EN,
>  		&fec->eth->ecntrl);
> +#ifdef CONFIG_MX25
> +	udelay(100);
> +	/*
> +	 * setup the MII gasket for RMII mode
> +	 */
> +
> +	/* disable the gasket */
> +	writew(0, &fec->eth->miigsk_enr);
> +
> +	/* wait for the gasket to be disabled */
> +	while (readw(&fec->eth->miigsk_enr) & MIIGSK_ENR_READY)
> +		udelay(2);
> +
> +	/* configure gasket for RMII, 50 MHz, no loopback, and no echo */
> +	writew(MIIGSK_CFGR_IF_MODE_RMII, &fec->eth->miigsk_cfgr);
> +
> +	/* re-enable the gasket */
> +	writew(MIIGSK_ENR_EN, &fec->eth->miigsk_enr);
> +
> +	/* wait until MII gasket is ready */
> +	int max_loops = 10;
> +	while ((readw(&fec->eth->miigsk_enr) & MIIGSK_ENR_READY) == 0) {
> +		if (--max_loops <= 0) {
> +			printf("WAIT for MII Gasket ready timed out\n");
> +			break;
> +		}
> +	}
> +#endif
>  
>  	miiphy_wait_aneg(edev);
>  	miiphy_speed(edev->name, CONFIG_FEC_MXC_PHYADDR);
> @@ -498,7 +526,8 @@ static void fec_halt(struct eth_device *dev)
>  	 * Disable the Ethernet Controller
>  	 * Note: this will also reset the BD index counter!
>  	 */
> -	writel(readl(&fec->eth->ecntrl) & ~FEC_ECNTRL_ETHER_EN, &fec->eth->ecntrl);
> +	writel(readl(&fec->eth->ecntrl) & ~FEC_ECNTRL_ETHER_EN,
> +			&fec->eth->ecntrl);
>  	fec->rbd_index = 0;
>  	fec->tbd_index = 0;
>  	debug("eth_halt: done\n");
> diff --git a/drivers/net/fec_mxc.h b/drivers/net/fec_mxc.h
> index 6cb1bfc..5d0d69d 100644
> --- a/drivers/net/fec_mxc.h
> +++ b/drivers/net/fec_mxc.h
> @@ -145,9 +145,17 @@ struct ethernet_regs {
>  	uint32_t r_fdxfc;		/* MBAR_ETH + 0x2DC */
>  	uint32_t ieee_r_octets_ok;	/* MBAR_ETH + 0x2E0 */
>  
> -	uint32_t res14[6];		/* MBAR_ETH + 0x2E4-2FC */
> -
> +	uint32_t res14[7];		/* MBAR_ETH + 0x2E4-2FC */
> +
> +#ifdef CONFIG_MX25
> +	uint16_t miigsk_cfgr;		/* MBAR_ETH + 0x300 */
> +	uint16_t res15[3];		/* MBAR_ETH + 0x302-306 */
> +	uint16_t miigsk_enr;		/* MBAR_ETH + 0x308 */
> +	uint16_t res16[3];		/* MBAR_ETH + 0x30a-30e */
> +	uint32_t res17[60];		/* MBAR_ETH + 0x300-3FF */
> +#else
>  	uint32_t res15[64];		/* MBAR_ETH + 0x300-3FF */
> +#endif
>  };
>  
>  #define FEC_IEVENT_HBERR		0x80000000
> @@ -196,6 +204,26 @@ struct ethernet_regs {
>  #define FEC_ECNTRL_RESET		0x00000001	/* reset the FEC */
>  #define FEC_ECNTRL_ETHER_EN		0x00000002	/* enable the FEC */
>  
> +#ifdef CONFIG_MX25
> +/* defines for MIIGSK */
> +/* RMII frequency control: 0=50MHz, 1=5MHz */
> +#define MIIGSK_CFGR_FRCONT		(1 << 6)
> +/* loopback mode */
> +#define MIIGSK_CFGR_LBMODE		(1 << 4)
> +/* echo mode */
> +#define MIIGSK_CFGR_EMODE		(1 << 3)
> +/* MII gasket mode field */
> +#define MIIGSK_CFGR_IF_MODE_MASK	(3 << 0)
> +/* MMI/7-Wire mode */
> +#define MIIGSK_CFGR_IF_MODE_MII		(0 << 0)
> +/* RMII mode */
> +#define MIIGSK_CFGR_IF_MODE_RMII	(1 << 0)
> +/* reflects MIIGSK Enable bit (RO) */
> +#define MIIGSK_ENR_READY		(1 << 2)
> +/* enable MIGSK (set by default) */
> +#define MIIGSK_ENR_EN			(1 << 1)
> +#endif
> +
>  /**
>   * @brief Descriptor buffer alignment
>   *
> diff --git a/include/asm-arm/arch-mx25/clock.h b/include/asm-arm/arch-mx25/clock.h
> index b0752e7..c59f588 100644
> --- a/include/asm-arm/arch-mx25/clock.h
> +++ b/include/asm-arm/arch-mx25/clock.h
> @@ -30,6 +30,7 @@ ulong imx_get_perclk(int clk);
>  ulong imx_get_ahbclk(void);
>  
>  #define imx_get_uartclk() imx_get_perclk(15)
> +#define imx_get_fecclk() (imx_get_ahbclk()/2)
>  
>  
>  #endif /* __ASM_ARCH_CLOCK_H */
>   
regards,
Ben

  parent reply	other threads:[~2010-02-01  6:18 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-26  6:12 [U-Boot] [PATCH-V3 0/8] Add support for i.MX25 SOC and KARO TX25 board John Rigby
2010-01-26  6:12 ` [U-Boot] [PATCH V3 1/8] mxc_serial replace platform specific clock John Rigby
2010-01-26  6:12   ` [U-Boot] [PATCH V3 2/8] arm926ejs: add nand_spl boot support John Rigby
2010-01-26  6:12     ` [U-Boot] [PATCH V3 3/8] Add MX25 support to nand_spl fsl nfc driver John Rigby
2010-01-26  6:12       ` [U-Boot] [PATCH V3 4/8] Nand mxc_nand add v1.1 controller support John Rigby
2010-01-26  6:12         ` [U-Boot] [PATCH V3 5/8] fec_mxc: cleanup and factor out MX27 dependencies John Rigby
2010-01-26  6:12           ` [U-Boot] [PATCH V3 6/8] Add support for Freescale MX25 SOC John Rigby
2010-01-26  6:12             ` [U-Boot] [PATCH V3 7/8] fec_mxc: add MX25 support John Rigby
2010-01-26  6:12               ` [U-Boot] [PATCH V3 8/8] Add support for KARO TX25 board John Rigby
2010-01-27  9:03               ` [U-Boot] [PATCH V3 7/8] fec_mxc: add MX25 support Lv Terry-R65388
2010-01-27 15:50                 ` John Rigby
2010-02-01  6:18               ` Ben Warren [this message]
2010-03-02  8:05               ` Lv Terry-R65388
2010-03-02 16:04                 ` John Rigby
2010-02-01  6:15           ` [U-Boot] [PATCH V3 5/8] fec_mxc: cleanup and factor out MX27 dependencies Ben Warren
2010-01-26 20:02         ` [U-Boot] [PATCH V3 4/8] Nand mxc_nand add v1.1 controller support Scott Wood
2010-01-26 20:05       ` [U-Boot] [PATCH V3 3/8] Add MX25 support to nand_spl fsl nfc driver Scott Wood
2010-01-26 21:51         ` John Rigby

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B66724C.7010208@gmail.com \
    --to=biggerbadderben@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.