From mboxrd@z Thu Jan 1 00:00:00 1970 From: florian@openwrt.org (Florian Fainelli) Date: Mon, 21 Jan 2013 12:12:52 +0100 Subject: [PATCH] net: fec: Add support for multiple phys on mdiobus In-Reply-To: <50FD2172.2020608@grandegger.com> References: <1358757475-21035-1-git-send-email-s.hauer@pengutronix.de> <50FD02B8.8080401@grandegger.com> <20130121100701.GX1906@pengutronix.de> <50FD2172.2020608@grandegger.com> Message-ID: <50FD22B4.5070307@openwrt.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 01/21/2013 12:07 PM, Wolfgang Grandegger wrote: > On 01/21/2013 11:07 AM, Sascha Hauer wrote: >> On Mon, Jan 21, 2013 at 09:56:24AM +0100, Wolfgang Grandegger wrote: >>> On 01/21/2013 09:37 AM, Sascha Hauer wrote: >>>> There may be multiple phys on an mdio bus. This series adds support >>>> for this to the fec driver. I recently had a board which has a switch >>>> connected to the fec's mdio bus, so I had to pick the correct phy. >>> >>> Pick one PHY from a switch port? Well, does a PHY-less (or fixed-link) >>> configuration for a switch not make more sense? >> >> Yes, you're probably right. >> >>> Various ARM Ethernet >>> contoller drivers do not support it. I recently needed a hack for an >>> AT91 board. >> >> I wonder how we want to proceed. Should there be a devicetree property >> 'fixed-link' like done for fs_enet (and not recommended for new code, >> stated in the comment above of_phy_connect_fixed_link)? > > Also the gianfar and ucc_geth drivers use this interface (via fixed > link phy). I tried to use it for the AT91 macb driver but stopped > quickly because the usage was not straight forward (too much code)... > even if the idea of using a fake fixed-link phy is not bad. > >> Currently I have a property 'phy' in the fec binding which has a phandle >> to a phy provided by the fec's mdio bus, but this could equally well > > But than the cable must be connected to the associated switch port. > >> point to a fixed dummy phy: >> >> phy = &fixed-phy; > > The link speed, full/half duplex and maybe some mroe parameter should > be configurable via device tree. > >> Currently there seems to be no common convention for the devicetree how >> to handle such situations, or am I missing something? > > That's also may impression. There seem to be a few more related hacks: > > $ find . -name '*.c'| xargs grep -i "phy-less" > ./ethernet/amd/au1000_eth.c: netdev_info(dev, "using PHY-less setup\n"); > ./ethernet/amd/au1000_eth.c: } else { /* PHY-less op, assume full-duplex */ > ./ethernet/ibm/emac/core.c: /* PHY-less configuration. > ./ethernet/ibm/emac/core.c: /* PHY-less configuration. > > I would prefer to handle the "fixed-link" property of the ethernet dt > node directly in the driver with a generic helper function. Is not what of_phy_connect_fixed_link() offer? I am not sure there can be much done by an helper than that. -- Florian From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Fainelli Subject: Re: [PATCH] net: fec: Add support for multiple phys on mdiobus Date: Mon, 21 Jan 2013 12:12:52 +0100 Message-ID: <50FD22B4.5070307@openwrt.org> References: <1358757475-21035-1-git-send-email-s.hauer@pengutronix.de> <50FD02B8.8080401@grandegger.com> <20130121100701.GX1906@pengutronix.de> <50FD2172.2020608@grandegger.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Sascha Hauer , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, shawn.guo@linaro.org, davem@davemloft.net To: Wolfgang Grandegger Return-path: Received: from mail-lb0-f178.google.com ([209.85.217.178]:47710 "EHLO mail-lb0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753033Ab3AULPg (ORCPT ); Mon, 21 Jan 2013 06:15:36 -0500 Received: by mail-lb0-f178.google.com with SMTP id n1so1920548lba.37 for ; Mon, 21 Jan 2013 03:15:35 -0800 (PST) In-Reply-To: <50FD2172.2020608@grandegger.com> Sender: netdev-owner@vger.kernel.org List-ID: On 01/21/2013 12:07 PM, Wolfgang Grandegger wrote: > On 01/21/2013 11:07 AM, Sascha Hauer wrote: >> On Mon, Jan 21, 2013 at 09:56:24AM +0100, Wolfgang Grandegger wrote: >>> On 01/21/2013 09:37 AM, Sascha Hauer wrote: >>>> There may be multiple phys on an mdio bus. This series adds support >>>> for this to the fec driver. I recently had a board which has a switch >>>> connected to the fec's mdio bus, so I had to pick the correct phy. >>> >>> Pick one PHY from a switch port? Well, does a PHY-less (or fixed-link) >>> configuration for a switch not make more sense? >> >> Yes, you're probably right. >> >>> Various ARM Ethernet >>> contoller drivers do not support it. I recently needed a hack for an >>> AT91 board. >> >> I wonder how we want to proceed. Should there be a devicetree property >> 'fixed-link' like done for fs_enet (and not recommended for new code, >> stated in the comment above of_phy_connect_fixed_link)? > > Also the gianfar and ucc_geth drivers use this interface (via fixed > link phy). I tried to use it for the AT91 macb driver but stopped > quickly because the usage was not straight forward (too much code)... > even if the idea of using a fake fixed-link phy is not bad. > >> Currently I have a property 'phy' in the fec binding which has a phandle >> to a phy provided by the fec's mdio bus, but this could equally well > > But than the cable must be connected to the associated switch port. > >> point to a fixed dummy phy: >> >> phy = &fixed-phy; > > The link speed, full/half duplex and maybe some mroe parameter should > be configurable via device tree. > >> Currently there seems to be no common convention for the devicetree how >> to handle such situations, or am I missing something? > > That's also may impression. There seem to be a few more related hacks: > > $ find . -name '*.c'| xargs grep -i "phy-less" > ./ethernet/amd/au1000_eth.c: netdev_info(dev, "using PHY-less setup\n"); > ./ethernet/amd/au1000_eth.c: } else { /* PHY-less op, assume full-duplex */ > ./ethernet/ibm/emac/core.c: /* PHY-less configuration. > ./ethernet/ibm/emac/core.c: /* PHY-less configuration. > > I would prefer to handle the "fixed-link" property of the ethernet dt > node directly in the driver with a generic helper function. Is not what of_phy_connect_fixed_link() offer? I am not sure there can be much done by an helper than that. -- Florian