I am working with LS1021A processor custom board Ethernet configuration, DP83822 phy is used. and here I mentioned my kernel DTS entries. And I attached log and dp83822.c driver which I used in kernel.But the phy is not detected in kernel. I am getting the log like this. Please help me to resolve this issue.
net eth0: could not attach to PHY
net eth1: could not attach to PHY
DTS entry
======
aliases {
enet2_rgmii_phy = &rgmii_phy1;
enet0_rgmii_phy = &rgmii_phy2;
};
&enet0 {
phy-mode = "rgmii";
fsl,magic-packet;
phy-handle = <&rgmii_phy1>;
phy-connection-type = "rgmii";
status = "okay";
};
&enet2 {
phy-mode = "rgmii";
phy-handle = <&rgmii_phy2>;
fsl,magic-packet;
phy-connection-type = "rgmii";
status = "okay";
};
&mdio0 {
#address-cells = <1>;
#size-cells = <0>;
rgmii_phy1: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
rx-internal-delay-ps = <1>;
tx-internal-delay-ps = <1>;
reg = <0x1>;
};
rgmii_phy2: ethernet-phy@2 {
compatible = "ethernet-phy-ieee802.3-c22";
rx-internal-delay-ps = <1>;
tx-internal-delay-ps = <1>;
reg = <0x2>;
};
};
Please put dp83822.c in folder drivers/net/phy/, and add the following in drivers/net/phy/Makefile.
obj-$(CONFIG_DP83822_PHY) += dp83822.o
Please enable CONFIG_DP83822_PHY in Linux Kernel configuration file(.config).
In the dts file, please modify compatible = "ethernet-phy-ieee802.3-c22" to compatible = "ti,dp83822", "ethernet-phy-ieee802.3-c22". Please make sure "phy address" is specified correctly in "reg" property.
rgmii_phy1: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22"; // compatible = "ti,dp83822", "ethernet-phy-ieee802.3-c22";
rx-internal-delay-ps = <1>;
tx-internal-delay-ps = <1>;
reg = <0x1>; //phy address
};