Re: [PATCH net-next v5 3/3] net: phy: add DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY driver
Andrew Lunn <[email protected]> Tue, 4 Aug 2026 04:30:51 +0200
| Newsgroups | org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
> +/* Initial RGMII RX delay per hardware specification: 0 * 150ps == 0.00ns */
> +#define DAP8211R_INITIAL_RX_DEL_VAL 0
> +/* Initial RGMII TX delay per hardware specification: 1 * 150ps == 0.15ns*/
> +#define DAP8211R_INITIAL_TX_DEL_VAL 1
> +/* Default RGMII delay: 13 * 150 == 1.95ns */
> +#define DAP8211R_DEFAULT_DEL_SEL 0xD
> +static int dap8211r_config_init(struct phy_device *phydev)
> +{
> + u16 set = 0;
> + int ret, val;
> + s32 rx_internal_delay = DAP8211R_INITIAL_RX_DEL_VAL;
> + s32 tx_internal_delay = DAP8211R_INITIAL_TX_DEL_VAL;
> +
> + if (!phy_interface_is_rgmii(phydev))
> + return 0;
> +
> + if (phydev->interface != PHY_INTERFACE_MODE_RGMII_TXID)
> + rx_internal_delay = phy_get_internal_delay(phydev, dap8211r_internal_delay,
> + DAP8211R_DELAY_SIZE, true);
> +
> + if (phydev->interface != PHY_INTERFACE_MODE_RGMII_RXID)
> + tx_internal_delay = phy_get_internal_delay(phydev, dap8211r_internal_delay,
> + DAP8211R_DELAY_SIZE, false);
> +
> + switch (phydev->interface) {
> + case PHY_INTERFACE_MODE_RGMII:
> + if (rx_internal_delay < 0)
> + rx_internal_delay = DAP8211R_INITIAL_RX_DEL_VAL;
> +
> + if (tx_internal_delay < 0)
> + tx_internal_delay = DAP8211R_INITIAL_TX_DEL_VAL;
> + break;
Why 0.00 for one and 0.15ns for the other? PHY_INTERFACE_MODE_RGMII
means no delays.
Andrew