On July 2, 2017 3:19:14 AM PDT, Alvaro Gamez Machado <alvaro.ga...@hazent.com> wrote: >On Fri, Jun 30, 2017 at 10:30:38AM -0700, Florian Fainelli wrote: >> On 06/30/2017 02:25 AM, Alvaro Gamez Machado wrote: >> > if (lp->phy_node) { >> > - if (lp->phy_type == XAE_PHY_TYPE_GMII) { >> > + if (lp->phy_type == XAE_PHY_TYPE_MII) { >> > + phydev = of_phy_connect(lp->ndev, lp->phy_node, >> > + axienet_adjust_link, 0, >> > + PHY_INTERFACE_MODE_MII); >> > + } else if (lp->phy_type == XAE_PHY_TYPE_GMII) { >> > phydev = of_phy_connect(lp->ndev, lp->phy_node, >> > axienet_adjust_link, 0, >> > PHY_INTERFACE_MODE_GMII); >> >> Seems like this could be simplified even further if the values of >> lp->phy_type directly mapped to those of phy_interface_t. > >Sadly, that's not the case. PHY_INTERFACE_MODE_* belong to a enum of >twenty >different values, of which only _MII and _GMII overlap with XAW_PHY_* >values, but XAE_PHY_TYPE_RGMII_2_0 doesn't match >PHY_INTERFACE_MODE_RGMII_ID.
There are four different rgmii types to account for rx or tx delay, is not there one that really matches? If the driver is using of_get_phy_mode() to retrieve the standard 'phy-mode' / 'phy-connection-type' values then this internal representation is not needed anymore. -- Florian