软件:linux , 4wire模式
总结一下,我们在高通9607的平台上调试dp83tc811以太网芯片,碰到的问题是。
在dp83811_config_init中调用phy_write_mmd返回错误,跟踪代码
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);
}
在
if (!phydev->is_c45)
return -EOPNOTSUPP;
返回错误。
咨询下面的3个问题,请回复下
1 dp83tc811 phy芯片是否是IEEE802.3 clause 45 所支持的设备?如果支持,如何在驱动中增加相关的设置。
2 如果不支持,dp83tc811如何实现mmd寄存器的读写。
3 内核中提供有phy_read_mmd_indirect和phy_write_mmd_indirect的接口,是否可以用这两个接口读写MMD寄存器。如果可以,请问这两个函数的第二个参数int prtad(MMD Address)如何设置?