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.

DP83TC812R-Q1: MDIO read of register 0x45d returns all 0's

Part Number: DP83TC812R-Q1

LED_0, LED_1 and RX_D2 pins are bootstrapped with external 2.49k pull-ups but indirect register access of register 0x45D returns error -95

[    1.951142] -->DWC_ETH_QOS_mdio_register
[    1.951145]
[    1.951145] ************* PHY Reg dump *************************
[    1.951609] Phy Control Reg(Basic Mode Control Reg) (0x0) = 0x2100
[    1.958026] Phy Status Reg(Basic Mode Status Reg) (0x1) = 0x61
[    1.964105] Phy Id (PHYS ID 1) (0x2)= 0x2000
[    1.969915] Phy Id (PHYS ID 2) (0x3)= 0xa271
[    1.974345] Auto-nego Adv (Advertisement Control Reg)(0x4) = 0x1
[    1.978599] Auto-nego Lap (Link Partner Ability Reg)(0x5)= 0x0
[    1.984589] Auto-nego Exp (Extension Reg)(0x6) = 0x0
[    1.990230] Auto-nego Np (0x7) = 0x2001
[    1.995349] Extended Status Reg (0xf) = 0x0
[    1.998908] 1000 Ctl Reg (1000BASE-T Control Reg)(0x9) = 0x0
[    2.003078] 1000 Sts Reg (1000BASE-T Status)(0xa) = 0x100
[    2.008980] PHY Ctl Reg (0x10) = 0x4
[    2.014273] PHY Sts Reg (0x11) = 0x10b
[    2.017918] PHY Intr Status Reg (0x13) = 0x0
[    2.021479] PHY Intr EN Reg (0x12) = 0x4000
[    2.025905] Smart Speed Reg (0x14) = 0x0
[    2.029398]
[    2.029398] ****************************************************
[    2.033984] phyaddr 0 phy_reg_read_status 0 mii_status 61
[    2.033987] DWC_ETH_QOS: Phy detected at ID/ADDR 0
[    2.033992] libphy: __mdiobus_register
[    2.035318] libphy: __mdiobus_register i 0
[    2.035321] libphy: __mdiobus_register i 0  bus->phy_mask fffffffe
[    2.035324] libphy: get_phy_device
[    2.035325] libphy: get_phy_id
[    2.036151] libphy: get_phy_id *phy_id 2000a271
[    2.036153] libphy: phy_device_create
[    2.036436] libphy: mdiobus_scan
[    2.036518] libphy: phy_bus_match
[    2.036522] libphy: phy_bus_match
[    2.036524] libphy: phy_bus_match
[    2.036526] libphy: phy_bus_match
[    2.036528] libphy: phy_bus_match
[    2.036530] libphy: phy_bus_match
[    2.036532] libphy: phy_bus_match
[    2.036571] libphy: phy_probe
[    2.036588] TI DP83TC812CS2.0: probe of dwc_phy-1:00 failed with error -95
[    2.036592] libphy: phy_bus_match
[    2.036594] libphy: phy_bus_matc

TI asked us to replace phy_read_mmd" command with "phy_write_indirect" assuming that our kernel version 4.9 is not compatible with 812 driver.

After making the above changes the error -95 is gone but the register 0x45d reads all 0's instead of expected 0x2280 (pins LED_0 -- LED_1 -- RX_D2 have external 2.49k pull-ups to 1.8V VDDIO)