Part Number: TMDS64GPEVM
Hello
For our custom product based on AM6442 I we have replaced PHY DP83822 with ADIN1200. After that change there is no link on all interfaces with new phy.
I have enabled new phy driver by adding CONFIG_ADIN_PHY=y to defconfig. Below are changes in device tree:
&icssg0_mdio {
pinctrl-names = "default";
pinctrl-0 = <&pru_icssg0_mdio0_pins_default>;
icssg0_phy3: ethernet-phy@3 {
reg = <3>;
adi,rx-internal-delay-ps = <2000>;
adi,tx-internal-delay-ps = <2000>;
adi,fifo-depth-bits = <8>;
};
icssg0_phy4: ethernet-phy@4 {
reg = <4>;
adi,rx-internal-delay-ps = <2000>;
adi,tx-internal-delay-ps = <2000>;
adi,fifo-depth-bits = <8>;
};
};
&cpsw3g_mdio {
cpsw3g_phy1: ethernet-phy@1 {
reg = <1>;
adi,rx-internal-delay-ps = <2000>;
adi,tx-internal-delay-ps = <2000>;
adi,fifo-depth-bits = <8>;
};
cpsw3g_phy2: ethernet-phy@2 {
reg = <2>;
adi,rx-internal-delay-ps = <2000>;
adi,tx-internal-delay-ps = <2000>;
adi,fifo-depth-bits = <8>;
};
};
ethtool shows information as below (and this is actually the same for eth1,eth2 and eth3)
root@puma:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 2
Transceiver: external
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x000020f7 (8439)
drv probe link ifdown ifup rx_err tx_err hw
Link detected: no
I think ADIN1200 is detected on MDIO bus as below log shows (dmeg | grep mdio)
[ 1.124436] davinci_mdio 30032400.mdio: Configuring MDIO in manual mode
[ 1.163710] davinci_mdio 30032400.mdio: davinci mdio revision 1.7, bus freq 1000000
[ 1.174441] davinci_mdio 30032400.mdio: phy[3]: device 30032400.mdio:03, driver ADIN1200
[ 1.174460] davinci_mdio 30032400.mdio: phy[4]: device 30032400.mdio:04, driver ADIN1200
[ 1.195167] davinci_mdio 300b2400.mdio: Configuring MDIO in manual mode
[ 1.231713] davinci_mdio 300b2400.mdio: davinci mdio revision 1.7, bus freq 1000000
[ 1.231736] davinci_mdio 300b2400.mdio: no live phy, scanning all
[ 1.324642] davinci_mdio 300b2400.mdio: phy[0]: device 300b2400.mdio:00, driver unknown
[ 1.324667] davinci_mdio 300b2400.mdio: phy[1]: device 300b2400.mdio:01, driver unknown
[ 1.324675] davinci_mdio 300b2400.mdio: phy[2]: device 300b2400.mdio:02, driver unknown
[ 1.324682] davinci_mdio 300b2400.mdio: phy[3]: device 300b2400.mdio:03, driver unknown
[ 1.324689] davinci_mdio 300b2400.mdio: phy[4]: device 300b2400.mdio:04, driver unknown
[ 1.324696] davinci_mdio 300b2400.mdio: phy[5]: device 300b2400.mdio:05, driver unknown
[ 1.324703] davinci_mdio 300b2400.mdio: phy[6]: device 300b2400.mdio:06, driver unknown
[ 1.324711] davinci_mdio 300b2400.mdio: phy[7]: device 300b2400.mdio:07, driver unknown
[ 1.324718] davinci_mdio 300b2400.mdio: phy[8]: device 300b2400.mdio:08, driver unknown
[ 1.324725] davinci_mdio 300b2400.mdio: phy[9]: device 300b2400.mdio:09, driver unknown
[ 1.324732] davinci_mdio 300b2400.mdio: phy[10]: device 300b2400.mdio:0a, driver unknown
[ 1.324739] davinci_mdio 300b2400.mdio: phy[11]: device 300b2400.mdio:0b, driver unknown
[ 1.324746] davinci_mdio 300b2400.mdio: phy[12]: device 300b2400.mdio:0c, driver unknown
[ 1.324754] davinci_mdio 300b2400.mdio: phy[13]: device 300b2400.mdio:0d, driver unknown
[ 1.324761] davinci_mdio 300b2400.mdio: phy[14]: device 300b2400.mdio:0e, driver unknown
[ 1.324769] davinci_mdio 300b2400.mdio: phy[15]: device 300b2400.mdio:0f, driver unknown
[ 1.324776] davinci_mdio 300b2400.mdio: phy[16]: device 300b2400.mdio:10, driver unknown
[ 1.324783] davinci_mdio 300b2400.mdio: phy[17]: device 300b2400.mdio:11, driver unknown
[ 1.324790] davinci_mdio 300b2400.mdio: phy[18]: device 300b2400.mdio:12, driver unknown
[ 1.324797] davinci_mdio 300b2400.mdio: phy[19]: device 300b2400.mdio:13, driver unknown
[ 1.324805] davinci_mdio 300b2400.mdio: phy[20]: device 300b2400.mdio:14, driver unknown
[ 1.324812] davinci_mdio 300b2400.mdio: phy[21]: device 300b2400.mdio:15, driver unknown
[ 1.324820] davinci_mdio 300b2400.mdio: phy[22]: device 300b2400.mdio:16, driver unknown
[ 1.324827] davinci_mdio 300b2400.mdio: phy[23]: device 300b2400.mdio:17, driver unknown
[ 1.324835] davinci_mdio 300b2400.mdio: phy[24]: device 300b2400.mdio:18, driver unknown
[ 1.324842] davinci_mdio 300b2400.mdio: phy[25]: device 300b2400.mdio:19, driver unknown
[ 1.324849] davinci_mdio 300b2400.mdio: phy[26]: device 300b2400.mdio:1a, driver unknown
[ 1.324856] davinci_mdio 300b2400.mdio: phy[27]: device 300b2400.mdio:1b, driver unknown
[ 1.324863] davinci_mdio 300b2400.mdio: phy[28]: device 300b2400.mdio:1c, driver unknown
[ 1.324870] davinci_mdio 300b2400.mdio: phy[29]: device 300b2400.mdio:1d, driver unknown
[ 1.324876] davinci_mdio 300b2400.mdio: phy[30]: device 300b2400.mdio:1e, driver unknown
[ 1.324883] davinci_mdio 300b2400.mdio: phy[31]: device 300b2400.mdio:1f, driver unknown
[ 1.391539] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[ 1.431715] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[ 1.448475] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver ADIN1200
[ 1.448493] davinci_mdio 8000f00.mdio: phy[2]: device 8000f00.mdio:02, driver ADIN1200
[ 1.529458] ADIN1200 30032400.mdio:03: attached PHY driver [ADIN1200] (mii_bus:phy_addr=30032400.mdio:03, irq=POLL)
[ 1.562672] ADIN1200 30032400.mdio:04: attached PHY driver [ADIN1200] (mii_bus:phy_addr=30032400.mdio:04, irq=POLL)
[ 8.606608] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:02] driver [ADIN1200] (irq=POLL)
[ 8.710596] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:01] driver [ADIN1200] (irq=POLL)
Any hint what I forgot in the configuration?