[RFD PATCH] netdev/phy/of: Augment device tree bindings for PHYs to specify IEEE802.3-2005 Section 45 addressing.

Andy Fleming afleming at gmail.com
Sun Oct 2 13:59:23 EST 2011


On Friday, September 30, 2011, David Daney <david.daney at cavium.com> wrote:
> Many 10 gigabit Ethernet PHY devices are interfaced to the MDIO bus
> using a protocol called IEEE802.3-2005 Section 45.  Where as PHYS for
> 1G, 100M and 10M usually use IEEE802.3-2005 Section 22.  These two
> protocols can be present on the same MDIO bus.
>
> If we look at the Linux PHY probing code in drivers/of/of_mdio.c and
> drivers/net/phy/phy_device.c, we have the situation where we need to
> read the PHY registers to get the PHY ID out so that we can use this
> to bind to a compatible driver.  However we can only read these
> registers if we know the proper MDIO bus protocol to use.
>
> My idea is as follows:
>
> o Add an optional property "mdio-clause-45" to the PHY's device tree
>  node to indicate that clause 45 addressing is used.
>
> o When calling get_phy_id() we will set MII_ADDR_C45 in the address
>  if we know that clause 45 addressing is required for the PHY.
>  get_phy_id() will then use the proper bus protocol and register
>  numbers to read PHY ID based on MII_ADDR_C45.
>
> o of_mdiobus_register() will signal MII_ADDR_C45 for PHYs tagged with
>  "mdio-clause-45"
>
> o Existing PHYs without "mdio-clause-45" are unaffected.
>
> o If no specific driver for the probed PHY ID is present, we can still
>  communicate with the PHY and perhaps use a generic 10G phy driver.
>  If the MDIO bus protocol were just to depend on the "compatible"
>  property, then we could not use generic drivers for unknown PHY IDs
>
> Comments/other ideas welcome.


About a year ago, I  submitted some patches to deal with the Clause 45
stuff. I'm currently working on updating them and fixing the issues raised
during the review. My preferred solution is actually to modify all of the
mdio drivers to support an additional argument which will either be
MDIO_DEVAD_NONE, or an actual device address. IMHO, it makes the interface
more communicative.

I had a mechanism in place in my patches which, I believe, should have
properly noted whether a PHY at a given address was operating under clause
45 rather than clause 22. I also had a generic driver (The last issues
remaining with my patches are related to how the generic driver operates; my
original driver was a stub which worked fine for my particular PHY, but
assumed too much about the PHY state).

However, I think that the idea of a different compatible property for 10g
PHYs could be useful, anyway.

>
> Thanks,
>
> Signed-off-by: David Daney <david.daney at cavium.com>
> ---
>  Documentation/devicetree/bindings/net/phy.txt |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/phy.txt
b/Documentation/devicetree/bindings/net/phy.txt
> index bb8c742..69fd948 100644
> --- a/Documentation/devicetree/bindings/net/phy.txt
> +++ b/Documentation/devicetree/bindings/net/phy.txt
> @@ -14,6 +14,11 @@ Required properties:
>  - linux,phandle :  phandle for this node; likely referenced by an
>    ethernet controller node.
>
> +Optional properties:
> +
> + - mdio-clause-45 : Optional.  If present, IEEE802.3-2005 Section 45
> +   protocol is used for register access (usually for 10G PHYs).
> +
>  Example:
>
>  ethernet-phy at 0 {
> --
> 1.7.2.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/devicetree-discuss/attachments/20111001/2666b18f/attachment.html>


More information about the devicetree-discuss mailing list