[U-Boot] [U-boot] [Patch] net: phy: marvell: add errata w/a for 88E151* chips

Stefan Roese
2014-10-30T11:39:02Z

On 30.10.2014 10:52, Ivan Khoronzhuk wrote:
>>> +static int m88e1518_config(struct phy_device *phydev)
>>> +{
>>> + /*
>>> + * As per Marvell Release Notes - Alaska
>>> 88E1510/88E1518/88E1512/88E1514
>>> + * Rev A0, Errata Section 3.1
>>> + */
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 22, 0x00ff); /* reg page
>>> 0xff */
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 17, 0x214B);
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x2144);
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 17, 0x0C28);
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x2146);
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 17, 0xB233);
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x214D);
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 17, 0xCC0C);
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x2159);
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 22, 0x0000); /* reg page 0 */
>>> + phy_write(phydev, MDIO_DEVAD_NONE, 22, 18); /* reg page 18 */
>>> + /* Write HWCFG_MODE = SGMII to Copper */
>>> + m88e1518_phy_writebits(phydev, 20, 0, 3, 1);
>>
>> Won't this set the mode to SGMII for all users of this code? I know of
>> at least one board that uses this driver and uses RGMII. So you
>> shouldn't set this mode here to SGMII unconditionally.
>>
>> Thanks,
>> Stefan
>>
>
> Yes.
> I will put whole errata w/o under:
> if (phydev->interface == PHY_INTERFACE_MODE_SGMII) {
>
> }
>
> as I can face it only for SGMII

Yes. If this errata is really only for SGMII, then putting this code
under this if() statement makes sense.

Thanks,
Stefan