Other Parts Discussed in Thread: DP83TC811, ETHERNET-SW
Tool/software: Linux
The customer is Qualcomm 9607 platform debugging dp83tc811 Ethernet chip, the problem is. Call phy_write_mmd in dp83811_config_init to return error, trace code
static inline int phy_write_mmd(struct phy_device *phydev, int devad,u32 regnum, u16 val)
{
if (!phydev->is_c45)
return -EOPNOTSUPP;
regnum = MII_ADDR_C45 | ((devad & 0x1f) << 16) | (regnum & 0xffff);
return mdiobus_write(phydev->bus, phydev->addr, regnum, val);
}
amongst
if (!phydev->is_c45)
return -EOPNOTSUPP;
Returns an error.
Now consult the following three questions, please confirm
1,Is the dp83tc811 phy chip a device supported by the IEEE802.3 clause 45? If supported, how to add related settings to the driver.
2,If not, how to read and write mmd registers in dp83tc811.
3,The kernel provides phy_read_mmd_indirect and phy_write_mmd_indirect interfaces, whether these two interfaces can be read and write MMD registers. If so, how do you set the second parameter int prtad (MMD Address) for these two functions?