From: Greg Ungerer <gerg@snapgear•com>
To: Baruch Siach <baruch@tkos•co.il>
Cc: Sascha Hauer <s.hauer@pengutronix•de>,
netdev@vger•kernel.org, linux-arm-kernel@lists•infradead.org
Subject: Re: [PATCH 3/4] fec: add support for Freescale i.MX25 PDK (3DS)
Date: Wed, 16 Dec 2009 16:49:32 +1000 [thread overview]
Message-ID: <4B2882FC.6010006@snapgear.com> (raw)
In-Reply-To: <20091216063402.GA13160@jasper.tkos.co.il>
Hi Baruch,
Baruch Siach wrote:
> Hi Greg,
>
> On Wed, Dec 16, 2009 at 10:13:56AM +1000, Greg Ungerer wrote:
>> Baruch Siach wrote:
>>> On Tue, Dec 15, 2009 at 09:52:24PM +1000, Greg Ungerer wrote:
>>>> On 12/15/2009 06:31 PM, Baruch Siach wrote:
>>>>> +#ifndef CONFIG_M5272
>>>> I would suggest making this conditional on FEC_MIIGSK_ENR.
>>>> Although the CONFIG_M5272 is the only case here currently,
>>>> that may change over the years. And using this here may not
>>>> be obvious to the causual code reader, since the register
>>>> offset definitions don't explicitly key on CONFIG_M5272.
>>> OK, I'll change this conditional.
>>>
>>> Can I take this as an Ack from you?
>> With that conditional check changed, sure:
>>
>> Acked-by: Greg Ungerer <gerg@uclinux•org>
>
> Thanks. The updated patch below.
>
> baruch
>
>>From 2d0751f868519978603b16baa197bfb9f9ec9e2e Mon Sep 17 00:00:00 2001
> Message-Id: <2d0751f868519978603b16baa197bfb9f9ec9e2e.1260945080.git.baruch@tkos•co.il>
> From: Baruch Siach <baruch@tkos•co.il>
> Date: Mon, 14 Dec 2009 10:36:50 +0200
> Subject: [PATCH] fec: add support for PHY interface platform data
>
> The i.MX25 PDK uses RMII to communicate with its PHY. This patch adds the
> ability to configure RMII, based on platform data.
>
> Signed-off-by: Baruch Siach <baruch@tkos•co.il>
> Acked-by: Greg Ungerer <gerg@uclinux•org>
> ---
> drivers/net/fec.c | 22 ++++++++++++++++++++++
> drivers/net/fec.h | 2 ++
> include/linux/fec.h | 21 +++++++++++++++++++++
> 3 files changed, 45 insertions(+), 0 deletions(-)
> create mode 100644 include/linux/fec.h
>
> diff --git a/drivers/net/fec.c b/drivers/net/fec.c
> index 16a1d58..a7cfe0d 100644
> --- a/drivers/net/fec.c
> +++ b/drivers/net/fec.c
> @@ -40,6 +40,7 @@
> #include <linux/irq.h>
> #include <linux/clk.h>
> #include <linux/platform_device.h>
> +#include <linux/fec.h>
>
> #include <asm/cacheflush.h>
>
> @@ -198,6 +199,7 @@ struct fec_enet_private {
> uint phy_speed;
> phy_info_t const *phy;
> struct work_struct phy_task;
> + phy_interface_t phy_interface;
>
> uint sequence_done;
> uint mii_phy_task_queued;
> @@ -1810,6 +1812,21 @@ fec_restart(struct net_device *dev, int duplex)
> /* Set MII speed */
> writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
>
> +#ifdef FEC_MIIGSK_ENR
> + if (fep->phy_interface == PHY_INTERFACE_MODE_RMII) {
> + /* disable the gasket and wait */
> + writel(0, fep->hwp + FEC_MIIGSK_ENR);
> + while (readl(fep->hwp + FEC_MIIGSK_ENR) & 4)
> + udelay(1);
> +
> + /* configure the gasket: RMII, 50 MHz, no loopback, no echo */
> + writel(1, fep->hwp + FEC_MIIGSK_CFGR);
> +
> + /* re-enable the gasket */
> + writel(2, fep->hwp + FEC_MIIGSK_ENR);
> + }
> +#endif
> +
> /* And last, enable the transmit and receive processing */
> writel(2, fep->hwp + FEC_ECNTRL);
> writel(0, fep->hwp + FEC_R_DES_ACTIVE);
> @@ -1847,6 +1864,7 @@ static int __devinit
> fec_probe(struct platform_device *pdev)
> {
> struct fec_enet_private *fep;
> + struct fec_platform_data *pdata;
> struct net_device *ndev;
> int i, irq, ret = 0;
> struct resource *r;
> @@ -1879,6 +1897,10 @@ fec_probe(struct platform_device *pdev)
>
> platform_set_drvdata(pdev, ndev);
>
> + pdata = pdev->dev.platform_data;
> + if (pdata)
> + fep->phy_interface = pdata->phy;
> +
> /* This device has up to three irqs on some platforms */
> for (i = 0; i < 3; i++) {
> irq = platform_get_irq(pdev, i);
> diff --git a/drivers/net/fec.h b/drivers/net/fec.h
> index cc47f3f..2c48b25 100644
> --- a/drivers/net/fec.h
> +++ b/drivers/net/fec.h
> @@ -43,6 +43,8 @@
> #define FEC_R_DES_START 0x180 /* Receive descriptor ring */
> #define FEC_X_DES_START 0x184 /* Transmit descriptor ring */
> #define FEC_R_BUFF_SIZE 0x188 /* Maximum receive buff size */
> +#define FEC_MIIGSK_CFGR 0x300 /* MIIGSK Configuration reg */
> +#define FEC_MIIGSK_ENR 0x308 /* MIIGSK Enable reg */
>
> #else
>
> diff --git a/include/linux/fec.h b/include/linux/fec.h
> new file mode 100644
> index 0000000..5d3523d
> --- /dev/null
> +++ b/include/linux/fec.h
> @@ -0,0 +1,21 @@
> +/* include/linux/fec.h
> + *
> + * Copyright (c) 2009 Orex Computed Radiography
> + * Baruch Siach <baruch@tkos•co.il>
> + *
> + * Header file for the FEC platform data
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +#ifndef __LINUX_FEC_H__
> +#define __LINUX_FEC_H__
> +
> +#include <linux/phy.h>
> +
> +struct fec_platform_data {
> + phy_interface_t phy;
> +};
> +
> +#endif
Can't this go in drivers/net/fec.h with the other fec data structs?
Regards
Greg
------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: gerg@snapgear•com
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com
next prev parent reply other threads:[~2009-12-16 6:50 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-14 10:19 [PATCH 0/4] mx25: add support for FEC on i.MX25 PDK Baruch Siach
2009-12-14 10:19 ` [PATCH 1/4] mx25: s/NO_PAD_CTL/NO_PAD_CTRL/ Baruch Siach
2009-12-21 11:02 ` Sascha Hauer
2009-12-14 10:19 ` [PATCH 2/4] mx25: don't force input on FEC pins Baruch Siach
2009-12-21 11:04 ` Sascha Hauer
2009-12-22 7:12 ` Baruch Siach
2009-12-14 10:19 ` [PATCH 3/4] fec: add support for Freescale i.MX25 PDK (3DS) Baruch Siach
2009-12-14 10:33 ` Sascha Hauer
2009-12-15 8:31 ` Baruch Siach
2009-12-15 11:52 ` Greg Ungerer
2009-12-15 20:11 ` Baruch Siach
2009-12-16 0:13 ` Greg Ungerer
2009-12-16 6:34 ` Baruch Siach
2009-12-16 6:49 ` Greg Ungerer [this message]
2009-12-16 7:07 ` Baruch Siach
2010-01-05 8:24 ` Baruch Siach
2010-01-11 3:25 ` Greg Ungerer
2010-01-25 11:21 ` Baruch Siach
2010-05-19 15:15 ` Jean-Christophe Dubois
2010-05-20 6:46 ` Sascha Hauer
2010-05-20 6:49 ` David Miller
2009-12-15 1:27 ` Greg Ungerer
2009-12-15 6:08 ` Baruch Siach
2009-12-14 10:19 ` [PATCH 4/4] mx25: add support for FEC on i.MX25 PDK Baruch Siach
2009-12-15 8:47 ` Baruch Siach
2009-12-21 11:08 ` Sascha Hauer
2009-12-21 11:44 ` [PATCH 1/2] mx25: add support for FEC on i.MX25 Baruch Siach
2009-12-21 11:44 ` [PATCH 2/2] mx25: pdk: add platform code for FEC support Baruch Siach
2009-12-21 6:04 ` [PATCH 0/4] mx25: add support for FEC on i.MX25 PDK Baruch Siach
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=4B2882FC.6010006@snapgear.com \
--to=gerg@snapgear$(echo .)com \
--cc=baruch@tkos$(echo .)co.il \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=netdev@vger$(echo .)kernel.org \
--cc=s.hauer@pengutronix$(echo .)de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox