Re: [RFC PATCH 2/2] net: phy: dp83869: fix mii mode when rgmii strap cfg is used

From: Andrew Lunn
Date: Wed Apr 26 2023 - 09:07:26 EST


> >> @@ -692,8 +692,11 @@ static int dp83869_configure_mode(struct phy_device *phydev,
> >> /* Below init sequence for each operational mode is defined in
> >> * section 9.4.8 of the datasheet.
> >> */
> >> + phy_ctrl_val = dp83869->mode;
> >> + if (phydev->interface == PHY_INTERFACE_MODE_MII)
> >> + phy_ctrl_val |= DP83869_OP_MODE_MII;
> >
> > Should there be some validation here with dp83869->mode?
> >
> > DP83869_RGMII_COPPER_ETHERNET, DP83869_RGMII_SGMII_BRIDGE etc don't
> > make sense if MII is being used. DP83869_100M_MEDIA_CONVERT and maybe
> > DP83869_RGMII_100_BASE seem to be the only valid modes with MII?
>
> The DP83869_OP_MODE_MII macro corresponds to BIT(5) which is the RGMII_MII_SEL
> bit in the OP_MODE_DECODE register. If the RGMII_MII_SEL bit is set, MII mode is
> selected. If the bit is cleared, which is the default value, RGMII mode is
> selected. As pointed out by you, there are modes which aren't valid with MII
> mode. However, a mode which isn't valid with RGMII mode (default value of the
> RGMII_MII_SEL bit) also exists: DP83869_SGMII_COPPER_ETHERNET. For this reason,
> I believe that setting the bit when MII mode is requested shouldn't cause any
> issues.

If you say so. I was just thinking you could give the poor software
engineer a hint the hardware engineer has put on strapping resistors
which means the PHY is not going to work.

Andrew