[PATCH 1/2] net: ravb: Add tx/rx delay flag checks and support for rgmii-rxid
Marek Vasut
marex at denx.de
Mon Feb 21 00:58:32 CET 2022
On 2/20/22 22:45, Adam Ford wrote:
Hi,
[...]
> @@ -376,6 +377,8 @@ static int ravb_dmac_init(struct udevice *dev)
> struct ravb_priv *eth = dev_get_priv(dev);
> struct eth_pdata *pdata = dev_get_plat(dev);
> int ret = 0;
> + int mode = 0;
> + unsigned int delay;
>
> /* Set CONFIG mode */
> ret = ravb_reset(dev);
> @@ -402,9 +405,25 @@ static int ravb_dmac_init(struct udevice *dev)
> (rmobile_get_cpu_type() == RMOBILE_CPU_TYPE_R8A77995))
> return 0;
>
> - if ((pdata->phy_interface == PHY_INTERFACE_MODE_RGMII_ID) ||
> - (pdata->phy_interface == PHY_INTERFACE_MODE_RGMII_TXID))
> - writel(APSR_TDM, eth->iobase + RAVB_REG_APSR);
> + if (!dev_read_u32(dev, "tx-internal-delay-ps", &delay)) {
> + if (delay)
> + mode |= APSR_TDM;
> + }
> +
> + if (!dev_read_u32(dev, "rx-internal-delay-ps", &delay)) {
> + if (delay)
> + mode |= APSR_RDM;
> + }
Are these two conditionals above really needed ?
Isn't it enough to set the PHY mode to rgmii-NNN like it is checked below ?
> + if (pdata->phy_interface == PHY_INTERFACE_MODE_RGMII_ID ||
> + pdata->phy_interface == PHY_INTERFACE_MODE_RGMII_RXID)
> + mode |= APSR_RDM;
> +
> + if (pdata->phy_interface == PHY_INTERFACE_MODE_RGMII_ID ||
> + pdata->phy_interface == PHY_INTERFACE_MODE_RGMII_TXID)
> + mode |= APSR_TDM;
> +
> + writel(mode, eth->iobase + RAVB_REG_APSR);
>
> return 0;
> }
[...]
More information about the U-Boot
mailing list