[PATCHv4 0/5] Add DT support for fixed PHYs
f.fainelli at gmail.com
Fri May 16 11:27:36 PDT 2014
2014-05-16 7:14 GMT-07:00 Thomas Petazzoni
<thomas.petazzoni at free-electrons.com>:
> Subject: Add DT support for fixed PHYs
> Here is a fourth version of the patch set that adds a Device Tree
> binding and the related code to support fixed PHYs. I'm hoping to get
> this merged in 3.16.
Thanks for being persistent on this and coming back with these
patches, that is really appreciated.
I gave this patch set a try on a brcmstb system with SYSTEMPORT and my
latest changes to net/dsa/ to allow for different PHY setups to be
used with the SoC integrated switch. This switch has a mix of fixed
and real PHYs. This works like a charm, so long as you consistently
use the "new" functions, and not the old ones, which is totally
expected. This is excellent work!
As we discussed offline, I think we need to progressively get rid of
of_phy_connect_fixed() to avoid having to debug situations where the
old 'fixed-link' property used some sparse addressing scheme, which is
now incompatible with the dynamic address allocation scheme.
> Changes since v3:
> * Rebased on top of v3.15-rc5
> * In patch "net: phy: decouple PHY id and PHY address in fixed PHY
> driver", changed the PHY ID of fixed PHYs from 0xdeadbeef to 0x0,
> as suggested by Grant Likely.
> * Fixed the !CONFIG_PHY_FIXED case in patch "net: phy: extend fixed
> driver with fixed_phy_register()". Noticed by Florian Fainelli.
> * Added Acked-by from Grant Likely and Florian Fainelli on patch
> "net: phy: extend fixed driver with fixed_phy_register()".
> * Reworked the new fixed-link DT binding to be just a sub-node of the
> Ethernet MAC node, and not a node referenced by the 'phy'
> property. This was requested by Grant Likely.
> * Reworked the code implementing the new DT binding to also make it
> accept the old, single property based, DT binding.
> * Added a patch that actually uses the new fixed link DT binding for
> the Armada XP Matrix board.
> Changes since v2:
> * Rebased on top of v3.14-rc1, and re-tested on hardware.
> * Removed the RFC tag, since there seems to be some real interest in
> this feature, and the code has gone through several iterations
> * The error handling in fixed_phy_register() has been fixed.
> Changes since v1:
> * Instead of using a 'fixed-link' property inside the Ethernet device
> DT node, with a fairly cryptic succession of integer values, we now
> use a PHY subnode under the Ethernet device DT node, with explicit
> properties to configure the duplex, speed, pause and other PHY
> * The PHY address is automatically allocated by the kernel and no
> longer visible in the Device Tree binding.
> * The PHY device is created directly when the network driver calls
> of_phy_connect_fixed_link(), and associated to the PHY DT node,
> which allows the existing of_phy_connect() function to work,
> without the need to use the deprecated of_phy_connect_fixed_link().
> Posts of previous versions:
> RFCv1: http://www.spinics.net/lists/netdev/msg243253.html
> RFCv2: http://lists.infradead.org/pipermail/linux-arm-kernel/2013-September/196919.html
> PATCHv3: http://www.spinics.net/lists/netdev/msg273117.html
> Thomas Petazzoni (5):
> net: phy: decouple PHY id and PHY address in fixed PHY driver
> net: phy: extend fixed driver with fixed_phy_register()
> of: provide a binding for fixed link PHYs
> net: mvneta: add support for fixed links
> ARM: mvebu: use the fixed-link PHY DT binding for the Armada XP Matrix
> .../devicetree/bindings/net/fixed-link.txt | 31 +++++++++
> arch/arm/boot/dts/armada-xp-matrix.dts | 4 ++
> drivers/net/ethernet/marvell/mvneta.c | 19 ++++-
> drivers/net/phy/fixed.c | 81 +++++++++++++++++++---
> drivers/of/of_mdio.c | 67 ++++++++++++++++++
> include/linux/of_mdio.h | 15 ++++
> include/linux/phy_fixed.h | 11 +++
> 7 files changed, 215 insertions(+), 13 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/net/fixed-link.txt
More information about the linux-arm-kernel