Messages in this thread | | | Date | Wed, 30 Oct 2019 17:28:29 +0100 | From | Andrew Lunn <> | Subject | Re: [PATCH net-next 2/3] net: stmmac: xgmac: Add C45 PHY support in the MDIO callbacks |
| |
On Wed, Oct 30, 2019 at 04:28:49PM +0100, Jose Abreu wrote: > Add the support for C45 PHYs in the MDIO callbacks for XGMAC. This was > tested using Synopsys DesignWare XPCS. > > Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com> > > --- > Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> > Cc: Alexandre Torgue <alexandre.torgue@st.com> > Cc: Jose Abreu <joabreu@synopsys.com> > Cc: "David S. Miller" <davem@davemloft.net> > Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> > Cc: netdev@vger.kernel.org > Cc: linux-stm32@st-md-mailman.stormreply.com > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 47 +++++++++++++++++++++-- > 1 file changed, 43 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c > index 40c42637ad75..143bffd28acf 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c > @@ -41,6 +41,29 @@ > #define MII_XGMAC_BUSY BIT(22) > #define MII_XGMAC_MAX_C22ADDR 3 > #define MII_XGMAC_C22P_MASK GENMASK(MII_XGMAC_MAX_C22ADDR, 0) > +#define MII_XGMAC_PA_SHIFT 16 > +#define MII_XGMAC_DA_SHIFT 21 > + > +static int stmmac_xgmac2_c45_format(struct stmmac_priv *priv, int phyaddr, > + int phyreg, u32 *hw_addr) > +{ > + unsigned int mii_data = priv->hw->mii.data; > + u32 tmp; > + > + /* Wait until any existing MII operation is complete */ > + if (readl_poll_timeout(priv->ioaddr + mii_data, tmp, > + !(tmp & MII_XGMAC_BUSY), 100, 10000)) > + return -EBUSY;
Hi Jose
The stmmac_xgmac2_c22_format function does the same. Maybe the call can be pulled out into stmmac_xgmac2_mdio_write() and stmmac_xgmac2_mdio_read()?
Andrew
| |