MDIO clk frequency

We need to change network MDIO CLK frequency to 2.5Mhz.
Can you help me how to config this?



What is the purpose to change the MDIO clk?

get_phy_id function below in file phy_device.c can not read out correct phyID.
static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
bool is_c45, struct phy_c45_device_ids *c45_ids)

We changed to a new phy KSZ9031, which needs MDIO voltage level 3.3V. But xavier output MDIO voltage 1.8V. So we add a voltage-converter between the two components.
The voltage-converter works at a frequency 2.5V. So, to let the voltage-converter work and read phy device ID and other phy status, we have to change MDIO frequency to 2.5M.

I am not sure if this is really needed.

This customer enables the same phy as your case. But we don’t configure mdio clk.
There is an issue on the vendor chip as mentioned in the link.

Hi, WayneWWW
KSZ9031 can work at 1.8V or 3V. We change voltage to 1.8V and KSZ9031 can work. I think your customer resolved their problem at 1.8, too. And why we try to debug KSZ9031 at 3V is because we select another phy BCM89881, which can only work at 3V.
So we need to change MDIO frequency to 2.5MHz and see if the 3V phy can work.
Please help.