On Mon, Oct 21, 2024 at 02:22:47PM +0200, Andrew Lunn wrote: > > +static void sophgo_dwmac_fix_mac_speed(void *priv, unsigned int speed, unsigned int mode) > > +{ > > + struct sophgo_dwmac *dwmac = priv; > > + unsigned long rate; > > + int ret; > > + > > + switch (speed) { > > + case SPEED_1000: > > + rate = 125000000; > > + break; > > + case SPEED_100: > > + rate = 25000000; > > + break; > > + case SPEED_10: > > + rate = 2500000; > > + break; > > + default: > > + dev_err(dwmac->dev, "invalid speed %u\n", speed); > > + break; > > + } > > There was a helper added recently for this, since it appears > repeatedly in drivers. > OK, I will change it. > > + ret = regmap_set_bits(regmap, args[0], DWMAC_SG2044_FLAG_USE_RX_DELAY); > > + if (ret) > > + return dev_err_probe(&pdev->dev, ret, > > + "failed to set the phy rx delay\n"); > > Please could you explain what this delay is for. Is it the 2ns RGMII > delay? > > Andrew It is related to the RGMII delay. On sg2044, when the phy sets rx-delay, the interal mac is not set the same delay, so this is needed to be set. Regards, Inochi