The "reverse SGMII" protocol name is a personal invention, derived from "reverse MII" and "reverse RMII", this means: "behave like an SGMII PHY". Signed-off-by: David Yang --- drivers/net/phy/phy-core.c | 1 + drivers/net/phy/phy_caps.c | 1 + drivers/net/phy/phylink.c | 1 + include/linux/phy.h | 4 ++++ 4 files changed, 7 insertions(+) diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c index 605ca20ae192..074645840cd5 100644 --- a/drivers/net/phy/phy-core.c +++ b/drivers/net/phy/phy-core.c @@ -132,6 +132,7 @@ int phy_interface_num_ports(phy_interface_t interface) case PHY_INTERFACE_MODE_TRGMII: case PHY_INTERFACE_MODE_USXGMII: case PHY_INTERFACE_MODE_SGMII: + case PHY_INTERFACE_MODE_REVSGMII: case PHY_INTERFACE_MODE_SMII: case PHY_INTERFACE_MODE_1000BASEX: case PHY_INTERFACE_MODE_2500BASEX: diff --git a/drivers/net/phy/phy_caps.c b/drivers/net/phy/phy_caps.c index 2cc9ee97e867..9a9a8afc056f 100644 --- a/drivers/net/phy/phy_caps.c +++ b/drivers/net/phy/phy_caps.c @@ -299,6 +299,7 @@ unsigned long phy_caps_from_interface(phy_interface_t interface) case PHY_INTERFACE_MODE_PSGMII: case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_QUSGMII: + case PHY_INTERFACE_MODE_REVSGMII: case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_GMII: link_caps |= BIT(LINK_CAPA_1000HD) | BIT(LINK_CAPA_1000FD); diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 1b06805f1bd7..e8e237fb9d35 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -255,6 +255,7 @@ static int phylink_interface_max_speed(phy_interface_t interface) case PHY_INTERFACE_MODE_PSGMII: case PHY_INTERFACE_MODE_QSGMII: case PHY_INTERFACE_MODE_QUSGMII: + case PHY_INTERFACE_MODE_REVSGMII: case PHY_INTERFACE_MODE_SGMII: case PHY_INTERFACE_MODE_GMII: return SPEED_1000; diff --git a/include/linux/phy.h b/include/linux/phy.h index 7da9e19471c9..42d5c1f4d8ad 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -107,6 +107,7 @@ extern const int phy_basic_ports_array[3]; * @PHY_INTERFACE_MODE_LAUI: 50 Gigabit Attachment Unit Interface * @PHY_INTERFACE_MODE_100GBASEP: 100GBase-P - with Clause 134 FEC * @PHY_INTERFACE_MODE_MIILITE: MII-Lite - MII without RXER TXER CRS COL + * @PHY_INTERFACE_MODE_REVSGMII: Serial gigabit media-independent interface in PHY role * @PHY_INTERFACE_MODE_MAX: Book keeping * * Describes the interface between the MAC and PHY. @@ -152,6 +153,7 @@ typedef enum { PHY_INTERFACE_MODE_LAUI, PHY_INTERFACE_MODE_100GBASEP, PHY_INTERFACE_MODE_MIILITE, + PHY_INTERFACE_MODE_REVSGMII, PHY_INTERFACE_MODE_MAX, } phy_interface_t; @@ -281,6 +283,8 @@ static inline const char *phy_modes(phy_interface_t interface) return "100gbase-p"; case PHY_INTERFACE_MODE_MIILITE: return "mii-lite"; + case PHY_INTERFACE_MODE_REVSGMII: + return "rev-sgmii"; default: return "unknown"; } -- 2.51.0