On Wed, Nov 22, 2023 at 07:50:57PM +0200, Tomer Maimon wrote: > Hi Andrew, > > Thanks for your comments > > On Tue, 21 Nov 2023 at 18:42, Andrew Lunn <andrew@xxxxxxx> wrote: > > > > > +void npcm_dwmac_pcs_init(struct npcm_dwmac *dwmac, struct device *dev, > > > + struct plat_stmmacenet_data *plat_dat) > > > +{ > > > + u16 val; > > > + > > > + iowrite16((u16)(SR_MII_CTRL >> 9), dwmac->reg + IND_AC_BA_REG); > > > + val = ioread16(dwmac->reg + PCS_SR_MII_CTRL_REG); > > > + val |= PCS_RST; > > > + iowrite16(val, dwmac->reg + PCS_SR_MII_CTRL_REG); > > > + > > > + while (val & PCS_RST) > > > + val = ioread16(dwmac->reg + PCS_SR_MII_CTRL_REG); > > > + > > > + val &= ~(PCS_AN_ENABLE); > > > + iowrite16(val, dwmac->reg + PCS_SR_MII_CTRL_REG); > > > +} > > > > Is this a licensed PCS implementation? Or home grown? If its been > > licensed from somebody, it maybe should live in driver/net/pcs, so > > others can reuse it when they license the same core. > we are using DWC PCS, I don't see support for DWC PCS and I am not > sure it is supposed to be supported at /drivers/net/pcs I've not followed the naming used by Synopsys. Is DWC PCS the same as XPCS? Does Synopsys have multiple PCS implementations? > I do see a patch set to support DWC PCS but I don't think it answers my needs > https://patchwork.ozlabs.org/project/netdev/patch/1559674736-2190-3-git-send-email-weifeng.voon@xxxxxxxxx/ I _think_ this patch eventually got turned into driver/net/pcs/pcs-xpcs.c What exactly does it not do for you? Andrew