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 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/ > > Andrew Thanks, Tomer