I'm having problems with software reset when adapting TJA1120 driver (from Linux 6.6) to Linux 5.15 with error code -110, I'm not sure about the cause as well as I don't know how to fix this problem.
I refer to this post NXP_C45_TJA11XX Driver Soft Reset Issue, made changes to nxp_c45_soft_reset, but it has no effect, the code is as follows.
static int nxp_c45_soft_reset(struct phy_device *phydev)
{
int ret;
ret = phy_write_mmd(phydev, MDIO_MMD_VEND1, VEND1_DEVICE_CONTROL,
DEVICE_CONTROL_RESET);
if (ret)
return ret;
usleep_range(2000, 2050);
return phy_read_mmd_poll_timeout(phydev, MDIO_MMD_VEND1,
VEND1_DEVICE_CONTROL, ret,
!(ret & DEVICE_CONTROL_RESET), 20000,
240000, true);
}:Error.
[ 6.188117] sunxi-mdio 4500048.mdio0. sunxi_mdio_probe() BEGIN
[ 6.265731] sunxi-mdio 4500048.mdio0. phy id: 0x001bb031, adr: 0x1b, device: 4500048.mdio0-mii:1b, DRIVER: NXP C45 TJA1120
[ 6.278218] sunxi-mdio 4500048.mdio0. sunxi_mdio_probe() SUCCESS
[ 47.166283] NXP C45 TJA1120 4500048.mdio0-mii:1b:. nxp_c45_soft_reset failed: -110
Hello,
As far as I know, tja1120 is not supported on 5.15. So did you backport the driver from the latest bsp? Is it working?
Thanks!
Best Regards.
Hello @miipo ,
I can help only from device point of view.
Can you distinguish if the error code has been generated by phy_write_mmd or by phy_read_mmd_poll_timeout ?
Have you tried to increase time in usleep_range ?
Best regards,
Pavel