net: phy: Add 25G BASE-R interface mode
authorSteen Hegelund <steen.hegelund@microchip.com>
Fri, 11 Jun 2021 12:54:51 +0000 (14:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 12 Jun 2021 20:08:57 +0000 (13:08 -0700)
Add 25gbase-r phy interface mode

Signed-off-by: Steen Hegelund <steen.hegelund@microchip.com>
Signed-off-by: Bjarni Jonasson <bjarni.jonasson@microchip.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/phy.rst
include/linux/phy.h

index 3f05d50..571ba08 100644 (file)
@@ -292,6 +292,12 @@ Some of the interface modes are described below:
     Note: due to legacy usage, some 10GBASE-R usage incorrectly makes
     use of this definition.
 
+``PHY_INTERFACE_MODE_25GBASER``
+    This is the IEEE 802.3 PCS Clause 107 defined 25GBASE-R protocol.
+    The PCS is identical to 10GBASE-R, i.e. 64B/66B encoded
+    running 2.5 as fast, giving a fixed bit rate of 25.78125 Gbaud.
+    Please refer to the IEEE standard for further information.
+
 ``PHY_INTERFACE_MODE_100BASEX``
     This defines IEEE 802.3 Clause 24.  The link operates at a fixed data
     rate of 125Mpbs using a 4B/5B encoding scheme, resulting in an underlying
index b606947..3b80dc3 100644 (file)
@@ -112,6 +112,7 @@ extern const int phy_10gbit_features_array[1];
  * @PHY_INTERFACE_MODE_RXAUI: Reduced XAUI
  * @PHY_INTERFACE_MODE_XAUI: 10 Gigabit Attachment Unit Interface
  * @PHY_INTERFACE_MODE_10GBASER: 10G BaseR
+ * @PHY_INTERFACE_MODE_25GBASER: 25G BaseR
  * @PHY_INTERFACE_MODE_USXGMII:  Universal Serial 10GE MII
  * @PHY_INTERFACE_MODE_10GKR: 10GBASE-KR - with Clause 73 AN
  * @PHY_INTERFACE_MODE_MAX: Book keeping
@@ -147,6 +148,7 @@ typedef enum {
        PHY_INTERFACE_MODE_XAUI,
        /* 10GBASE-R, XFI, SFI - single lane 10G Serdes */
        PHY_INTERFACE_MODE_10GBASER,
+       PHY_INTERFACE_MODE_25GBASER,
        PHY_INTERFACE_MODE_USXGMII,
        /* 10GBASE-KR - with Clause 73 AN */
        PHY_INTERFACE_MODE_10GKR,
@@ -223,6 +225,8 @@ static inline const char *phy_modes(phy_interface_t interface)
                return "xaui";
        case PHY_INTERFACE_MODE_10GBASER:
                return "10gbase-r";
+       case PHY_INTERFACE_MODE_25GBASER:
+               return "25gbase-r";
        case PHY_INTERFACE_MODE_USXGMII:
                return "usxgmii";
        case PHY_INTERFACE_MODE_10GKR: