[PATCH v3 2/2] ethernet: eswin: Add eic7700 ethernet driver
Andrew Lunn
andrew at lunn.ch
Tue Jul 15 06:09:17 PDT 2025
> > > + dwc_priv->dly_param_1000m[0] = EIC7700_DELAY_VALUE0;
> > > + dwc_priv->dly_param_1000m[1] = EIC7700_DELAY_VALUE1;
> > > + dwc_priv->dly_param_1000m[2] = EIC7700_DELAY_VALUE0;
> > > + dwc_priv->dly_param_100m[0] = EIC7700_DELAY_VALUE0;
> > > + dwc_priv->dly_param_100m[1] = EIC7700_DELAY_VALUE1;
> > > + dwc_priv->dly_param_100m[2] = EIC7700_DELAY_VALUE0;
> > > + dwc_priv->dly_param_10m[0] = 0x0;
> > > + dwc_priv->dly_param_10m[1] = 0x0;
> > > + dwc_priv->dly_param_10m[2] = 0x0;
> >
> > What are the three different values for?
> >
>
> Let me clarify the purpose of the three elements in each dly_param_* array:
> dly_param_[x][0]: Delay configuration for TXD signals
> dly_param_[x][1]: Delay configuration for control signals (e.g., TX_EN, RX_DV, RX_CLK)
> dly_param_[x][2]: Delay configuration for RXD signals
Maybe add a #define or an enum for the index.
Do these delays represent the RGMII 2ns delay?
> > {
> > > + eic7700_set_delay(dwc_priv->rx_delay_ps, dwc_priv->tx_delay_ps,
> > > + &dwc_priv->dly_param_1000m[1]);
> > > + eic7700_set_delay(dwc_priv->rx_delay_ps, dwc_priv->tx_delay_ps,
> > > + &dwc_priv->dly_param_100m[1]);
> > > + eic7700_set_delay(dwc_priv->rx_delay_ps, dwc_priv->tx_delay_ps,
> > > + &dwc_priv->dly_param_10m[1]);
> > > + } else {
> > > + dev_dbg(&pdev->dev, " use default dly\n");
> >
> > What is the default? It should be 0ps. So there is no point printing
> > this message.
> >
>
> The default value is EIC7700_DELAY_VALUE1
But what does EIC7700_DELAY_VALUE1 mean? It should mean 0ps? But i'm
not sure it does.
Andrew
More information about the linux-arm-kernel
mailing list