Re: [PATCH net-next 2/3] net: phy: add Broadcom BCM54140 support

From: Andrew Lunn
Date: Fri Apr 17 2020 - 15:39:11 EST


On Fri, Apr 17, 2020 at 09:28:57PM +0200, Michael Walle wrote:

> +static int bcm54140_get_base_addr_and_port(struct phy_device *phydev)
> +{
> + struct bcm54140_phy_priv *priv = phydev->priv;
> + struct mii_bus *bus = phydev->mdio.bus;
> + int addr, min_addr, max_addr;
> + int step = 1;
> + u32 phy_id;
> + int tmp;
> +
> + min_addr = phydev->mdio.addr;
> + max_addr = phydev->mdio.addr;
> + addr = phydev->mdio.addr;
> +
> + /* We scan forward and backwards and look for PHYs which have the
> + * same phy_id like we do. Step 1 will scan forward, step 2
> + * backwards. Once we are finished, we have a min_addr and
> + * max_addr which resembles the range of PHY addresses of the same
> + * type of PHY. There is one caveat; there may be many PHYs of
> + * the same type, but we know that each PHY takes exactly 4
> + * consecutive addresses. Therefore we can deduce our offset
> + * to the base address of this quad PHY.
> + */

Hi Michael

How much flexibility is there in setting the base address using
strapping etc? Is it limited to a multiple of 4?