This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/DP83TC811S-Q1: Debugging dp83tc811 Ethernet Chip on Qualcomm 9607 platform

Part Number: DP83TC811S-Q1
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?