[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200806161057.03158.laurentp@cse-semaphore.com>
Date: Mon, 16 Jun 2008 10:57:02 +0200
From: Laurent Pinchart <laurentp@...-semaphore.com>
To: linuxppc-dev@...abs.org
Cc: Scott Wood <scottwood@...escale.com>, netdev@...r.kernel.org,
jgarzik@...ox.com, vbordug@...mvista.com,
pantelis.antoniou@...il.com
Subject: Re: [PATCH 2/2] fs_enet: MDIO on GPIO support
On Monday 26 May 2008 11:53, Laurent Pinchart wrote:
> Port the fs_enet driver to support the MDIO on GPIO driver for PHY access
> in addition to the mii-bitbang driver.
Now that 1/2 has been applied by Jeff, could this one make it to
powerpc-next ?
> Signed-off-by: Laurent Pinchart <laurentp@...-semaphore.com>
> ---
> drivers/net/fs_enet/fs_enet-main.c | 31 ++++++++++++++++++++-----------
> 1 files changed, 20 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/net/fs_enet/fs_enet-main.c
b/drivers/net/fs_enet/fs_enet-main.c
> index 67b4b07..b0eb1d2 100644
> --- a/drivers/net/fs_enet/fs_enet-main.c
> +++ b/drivers/net/fs_enet/fs_enet-main.c
> @@ -43,6 +43,7 @@
> #include <asm/uaccess.h>
>
> #ifdef CONFIG_PPC_CPM_NEW_BINDING
> +#include <linux/of_gpio.h>
> #include <asm/of_platform.h>
> #endif
>
> @@ -1172,8 +1173,7 @@ static int __devinit find_phy(struct device_node *np,
> struct fs_platform_info *fpi)
> {
> struct device_node *phynode, *mdionode;
> - struct resource res;
> - int ret = 0, len;
> + int ret = 0, len, bus_id;
> const u32 *data;
>
> data = of_get_property(np, "fixed-link", NULL);
> @@ -1190,19 +1190,28 @@ static int __devinit find_phy(struct device_node
*np,
> if (!phynode)
> return -EINVAL;
>
> - mdionode = of_get_parent(phynode);
> - if (!mdionode)
> + data = of_get_property(phynode, "reg", &len);
> + if (!data || len != 4) {
> + ret = -EINVAL;
> goto out_put_phy;
> + }
>
> - ret = of_address_to_resource(mdionode, 0, &res);
> - if (ret)
> - goto out_put_mdio;
> + mdionode = of_get_parent(phynode);
> + if (!mdionode) {
> + ret = -EINVAL;
> + goto out_put_phy;
> + }
>
> - data = of_get_property(phynode, "reg", &len);
> - if (!data || len != 4)
> - goto out_put_mdio;
> + bus_id = of_get_gpio(mdionode, 0);
> + if (bus_id < 0) {
> + struct resource res;
> + ret = of_address_to_resource(mdionode, 0, &res);
> + if (ret)
> + goto out_put_mdio;
> + bus_id = res.start;
> + }
>
> - snprintf(fpi->bus_id, 16, "%x:%02x", res.start, *data);
> + snprintf(fpi->bus_id, 16, "%x:%02x", bus_id, *data);
>
> out_put_mdio:
> of_node_put(mdionode);
> --
> 1.5.0
>
>
--
Laurent Pinchart
CSE Semaphore Belgium
Chaussee de Bruxelles, 732A
B-1410 Waterloo
Belgium
T +32 (2) 387 42 59
F +32 (2) 387 42 75
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists