net: phy: add XAUI and 10GBASE-KR PHY connection types
authorRussell King <rmk+kernel@armlinux.org.uk>
Mon, 5 Jun 2017 11:23:10 +0000 (12:23 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 Jun 2017 01:14:13 +0000 (21:14 -0400)
XAUI allows XGMII to reach an extended distance by using a XGXS layer at
each end of the MAC to PHY link, operating over four Serdes lanes.

10GBASE-KR is a single lane Serdes backplane ethernet connection method
with autonegotiation on the link.  Some PHYs use this to connect to the
ethernet interface at 10G speeds, switching to other connection types
when utilising slower speeds.

10GBASE-KR is also used for XFI and SFI to connect to XFP and SFP fiber
modules.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/ABI/testing/sysfs-class-net-phydev
Documentation/devicetree/bindings/net/ethernet.txt
include/linux/phy.h

index c768d5fd849622c71d2060c1db7939114d9c550a..6ebabfb279129a16b403fcc2059fb2d1523098d9 100644 (file)
@@ -32,5 +32,5 @@ Description:
                <empty> (not available), mii, gmii, sgmii, tbi, rev-mii,
                rmii, rgmii, rgmii-id, rgmii-rxid, rgmii-txid, rtbi, smii
                xgmii, moca, qsgmii, trgmii, 1000base-x, 2500base-x, rxaui,
-               unknown
+               xaui, 10gbase-kr, unknown
 
index 3a6916909d90193d57af64ff1fd63ef9c875f3fd..d4abe9a981092a47e887f72793a2b0491000288c 100644 (file)
@@ -32,6 +32,8 @@ The following properties are common to the Ethernet controllers:
   * "2000base-x",
   * "2500base-x",
   * "rxaui"
+  * "xaui"
+  * "10gbase-kr" (10GBASE-KR, XFI, SFI)
 - phy-connection-type: the same as "phy-mode" property but described in ePAPR;
 - phy-handle: phandle, specifies a reference to a node representing a PHY
   device; this property is described in ePAPR and so preferred;
index b24de9ddc886a768525ac454f84f8a3eb3acb7b6..414242200a9040427b5dbd1d1783782e4edddd04 100644 (file)
@@ -83,6 +83,9 @@ typedef enum {
        PHY_INTERFACE_MODE_1000BASEX,
        PHY_INTERFACE_MODE_2500BASEX,
        PHY_INTERFACE_MODE_RXAUI,
+       PHY_INTERFACE_MODE_XAUI,
+       /* 10GBASE-KR, XFI, SFI - single lane 10G Serdes */
+       PHY_INTERFACE_MODE_10GKR,
        PHY_INTERFACE_MODE_MAX,
 } phy_interface_t;
 
@@ -149,6 +152,10 @@ static inline const char *phy_modes(phy_interface_t interface)
                return "2500base-x";
        case PHY_INTERFACE_MODE_RXAUI:
                return "rxaui";
+       case PHY_INTERFACE_MODE_XAUI:
+               return "xaui";
+       case PHY_INTERFACE_MODE_10GKR:
+               return "10gbase-kr";
        default:
                return "unknown";
        }