Commit 33a74bf4 authored by David S. Miller's avatar David S. Miller

Merge branch 'net-phy-add-interface-mode-PHY_INTERFACE_MODE_USXGMII'

Heiner Kallweit says:

====================
net: phy: add interface mode PHY_INTERFACE_MODE_USXGMII

Add support for interface mode USXGMII.

On Freescale boards LS1043A and LS1046A a warning may pop up now
because mode xgmii should be changed to usxgmii (as the used
Aquantia PHY doesn't support XGMII).
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents af5136f9 ce64c1f7
...@@ -43,6 +43,7 @@ Documentation/devicetree/bindings/phy/phy-bindings.txt. ...@@ -43,6 +43,7 @@ Documentation/devicetree/bindings/phy/phy-bindings.txt.
* "rxaui" * "rxaui"
* "xaui" * "xaui"
* "10gbase-kr" (10GBASE-KR, XFI, SFI) * "10gbase-kr" (10GBASE-KR, XFI, SFI)
* "usxgmii"
- phy-connection-type: the same as "phy-mode" property but described in the - phy-connection-type: the same as "phy-mode" property but described in the
Devicetree Specification; Devicetree Specification;
- phy-handle: phandle, specifies a reference to a node representing a PHY - phy-handle: phandle, specifies a reference to a node representing a PHY
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK GENMASK(7, 3) #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK GENMASK(7, 3)
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_KR 0 #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_KR 0
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_XFI 2 #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_XFI 2
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_USXGMII 3
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_SGMII 6 #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_SGMII 6
#define MDIO_PHYXS_VEND_IF_STATUS_TYPE_OCSGMII 10 #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_OCSGMII 10
...@@ -360,6 +361,9 @@ static int aqr107_read_status(struct phy_device *phydev) ...@@ -360,6 +361,9 @@ static int aqr107_read_status(struct phy_device *phydev)
case MDIO_PHYXS_VEND_IF_STATUS_TYPE_XFI: case MDIO_PHYXS_VEND_IF_STATUS_TYPE_XFI:
phydev->interface = PHY_INTERFACE_MODE_10GKR; phydev->interface = PHY_INTERFACE_MODE_10GKR;
break; break;
case MDIO_PHYXS_VEND_IF_STATUS_TYPE_USXGMII:
phydev->interface = PHY_INTERFACE_MODE_USXGMII;
break;
case MDIO_PHYXS_VEND_IF_STATUS_TYPE_SGMII: case MDIO_PHYXS_VEND_IF_STATUS_TYPE_SGMII:
phydev->interface = PHY_INTERFACE_MODE_SGMII; phydev->interface = PHY_INTERFACE_MODE_SGMII;
break; break;
...@@ -488,9 +492,13 @@ static int aqr107_config_init(struct phy_device *phydev) ...@@ -488,9 +492,13 @@ static int aqr107_config_init(struct phy_device *phydev)
if (phydev->interface != PHY_INTERFACE_MODE_SGMII && if (phydev->interface != PHY_INTERFACE_MODE_SGMII &&
phydev->interface != PHY_INTERFACE_MODE_2500BASEX && phydev->interface != PHY_INTERFACE_MODE_2500BASEX &&
phydev->interface != PHY_INTERFACE_MODE_XGMII && phydev->interface != PHY_INTERFACE_MODE_XGMII &&
phydev->interface != PHY_INTERFACE_MODE_USXGMII &&
phydev->interface != PHY_INTERFACE_MODE_10GKR) phydev->interface != PHY_INTERFACE_MODE_10GKR)
return -ENODEV; return -ENODEV;
WARN(phydev->interface == PHY_INTERFACE_MODE_XGMII,
"Your devicetree is out of date, please update it. The AQR107 family doesn't support XGMII, maybe you mean USXGMII.\n");
ret = aqr107_wait_reset_complete(phydev); ret = aqr107_wait_reset_complete(phydev);
if (!ret) if (!ret)
aqr107_chip_info(phydev); aqr107_chip_info(phydev);
......
...@@ -103,6 +103,7 @@ typedef enum { ...@@ -103,6 +103,7 @@ typedef enum {
PHY_INTERFACE_MODE_XAUI, PHY_INTERFACE_MODE_XAUI,
/* 10GBASE-KR, XFI, SFI - single lane 10G Serdes */ /* 10GBASE-KR, XFI, SFI - single lane 10G Serdes */
PHY_INTERFACE_MODE_10GKR, PHY_INTERFACE_MODE_10GKR,
PHY_INTERFACE_MODE_USXGMII,
PHY_INTERFACE_MODE_MAX, PHY_INTERFACE_MODE_MAX,
} phy_interface_t; } phy_interface_t;
...@@ -178,6 +179,8 @@ static inline const char *phy_modes(phy_interface_t interface) ...@@ -178,6 +179,8 @@ static inline const char *phy_modes(phy_interface_t interface)
return "xaui"; return "xaui";
case PHY_INTERFACE_MODE_10GKR: case PHY_INTERFACE_MODE_10GKR:
return "10gbase-kr"; return "10gbase-kr";
case PHY_INTERFACE_MODE_USXGMII:
return "usxgmii";
default: default:
return "unknown"; return "unknown";
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment