Re: [PATCH net-next v8 3/6] net: stmmac: eic7700: make RGMII delay properties optional
From: Andrew Lunn <andrew@lunn.ch>
Date: 2026-06-13 07:49:19
Also in:
linux-arm-kernel, linux-devicetree, linux-riscv, lkml
On Wed, Jun 10, 2026 at 10:26:50AM +0200, Maxime Chevallier wrote:
Hi, On 6/10/26 03:29, lizhi2@eswincomputing.com wrote:quoted
From: Zhi Li <redacted> Make rx-internal-delay-ps and tx-internal-delay-ps optional in the EIC7700 DWMAC driver. The driver previously required both properties to be present and would fail probe when they were missing. This restricts valid hardware configurations where RGMII timing is instead provided by the PHY or board design. Update the driver to treat missing delay properties as zero delay, allowing systems without explicit MAC-side delay tuning to operate correctly. This aligns the driver behavior with the updated device tree binding and provides a safe default configuration when MAC-side delay programming is not required. Signed-off-by: Zhi Li <redacted> --- drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c | 6 ------ 1 file changed, 6 deletions(-)diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c index 4ac979d874d6..ec99b597aeaf 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-eic7700.c@@ -165,9 +165,6 @@ static int eic7700_dwmac_probe(struct platform_device *pdev) dwc_priv->eth_clk_dly_param &= ~EIC7700_ETH_RX_ADJ_DELAY; dwc_priv->eth_clk_dly_param |= FIELD_PREP(EIC7700_ETH_RX_ADJ_DELAY, val); - } else { - return dev_err_probe(&pdev->dev, -EINVAL, - "missing required property rx-internal-delay-ps\n"); } /* Read tx-internal-delay-ps and update tx_clk delay */@@ -187,9 +184,6 @@ static int eic7700_dwmac_probe(struct platform_device *pdev) dwc_priv->eth_clk_dly_param &= ~EIC7700_ETH_TX_ADJ_DELAY; dwc_priv->eth_clk_dly_param |= FIELD_PREP(EIC7700_ETH_TX_ADJ_DELAY, val); - } else { - return dev_err_probe(&pdev->dev, -EINVAL, - "missing required property tx-internal-delay-ps\n"); }I think then you need to handle RGMII, RGMII_ID, RGMII_RXID and RGMII_TXID, by using default delays for these (usually around 2ns), as here all delays will be set to 0, regardless of the RGMII mode in use.
No. By default, the MAC adds 0ns delay, and passes the phy-mode to the PHY. It will then add the 2ns delay. It is possible to use the tx-internal-delay-ps and rx-internal-delay-ps in the MAC to add small tuning delays, but not the full 2ns. https://elixir.bootlin.com/linux/v6.15/source/Documentation/devicetree/bindings/net/ethernet-controller.yaml#L287 Andrew