Re: [PATCH v3 2/2] ethernet: eswin: Add eic7700 ethernet driver

From: Andrew Lunn
Date: Thu Jul 03 2025 - 12:13:41 EST


> +/* Default delay value*/
> +#define EIC7700_DELAY_VALUE0 0x20202020
> +#define EIC7700_DELAY_VALUE1 0x96205A20

We need a better explanation of what is going on here. What do these
numbers mean?

> + 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?

> +
> + ret = of_property_read_u32(pdev->dev.of_node, "rx-internal-delay-ps",
> + &dwc_priv->rx_delay_ps);
> + if (ret)
> + dev_dbg(&pdev->dev, "can't get rx-internal-delay-ps, ret(%d).", ret);
> + else
> + has_rx_dly = true;
> +
> + ret = of_property_read_u32(pdev->dev.of_node, "tx-internal-delay-ps",
> + &dwc_priv->tx_delay_ps);
> + if (ret)
> + dev_dbg(&pdev->dev, "can't get tx-internal-delay-ps, ret(%d).", ret);
> + else
> + has_tx_dly = true;
> + if (has_rx_dly && has_tx_dly)

What if i only to set a TX delay? I want the RX delay to default to
0ps.

{
> + 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.

Andrew