软件: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)如何设置?
Annie Liu:
您的问题在E2E英文论坛已有工程师跟进,请继续关注。
https://e2e.ti.com/support/interface/f/138/p/780577/2889985?tisearch=e2e-sitesearch&keymatch=DP83TC811S-Q1#2889985
user6195594:
Hi, lin:
这个问题怎么解决的?我现在遇到了跟你一样的问题,能不能把你的经验跟我分享一下?谢谢
user6195594:
回复 Annie Liu:
Hi, Liu:
英文论坛只提到了支持clause 22,而clause 45到底支不支持?
"have to use register 0xD/E to access the IEEE registers for IEEE802.3bw"意思是通过0xD和0xE寄存器使用phy_write()接口替代phy_write_mmd()吗?
谢谢!