Other Parts Discussed in Thread: DP83620
Hi TI,
main_rmii2_pins_default: main-rmii2-pins-default{
pinctrl-single,pins = <
AM62X_IOPAD(0x0168, PIN_INPUT, 1) /* (AE21) RGMII2_TXC.RMII2_CRS_DV */
AM62X_IOPAD(0x0180, PIN_INPUT, 1) /* (AD23) RGMII2_RXC.RMII2_REF_CLK */
AM62X_IOPAD(0x0184, PIN_INPUT, 1) /* (AE23) RGMII2_RD0.RMII2_RXD0 */
AM62X_IOPAD(0x0188, PIN_INPUT, 1) /* (AB20) RGMII2_RD1.RMII2_RXD1 */
AM62X_IOPAD(0x017c, PIN_INPUT, 1) /* (AD22) RGMII2_RX_CTL.RMII2_RX_ER */
AM62X_IOPAD(0x016c, PIN_OUTPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */
AM62X_IOPAD(0x0170, PIN_OUTPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */
AM62X_IOPAD(0x0164, PIN_OUTPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */
>;
};
main_rmii1_pins_default: main-rmii1-pins-default{
pinctrl-single,pins = <
AM62X_IOPAD(0x0130, PIN_INPUT, 1) /* (AE19) RGMII1_TXC.RMII1_CRS_DV */
AM62X_IOPAD(0x0148, PIN_INPUT, 1) /* (AD17) RGMII1_RXC.RMII1_REF_CLK */
AM62X_IOPAD(0x014c, PIN_INPUT, 1) /* (AB17) RGMII1_RD0.RMII1_RXD0 */
AM62X_IOPAD(0x0150, PIN_INPUT, 1) /* (AC17) RGMII1_RD1.RMII1_RXD1 */
AM62X_IOPAD(0x0144, PIN_INPUT, 1) /* (AE17) RGMII1_RX_CTL.RMII1_RX_ER */
AM62X_IOPAD(0x0134, PIN_OUTPUT, 1) /* (AE20) RGMII1_TD0.RMII1_TXD0 */
AM62X_IOPAD(0x0138, PIN_OUTPUT, 1) /* (AD20) RGMII1_TD1.RMII1_TXD1 */
AM62X_IOPAD(0x012c, PIN_OUTPUT, 1) /* (AD19) RGMII1_TX_CTL.RMII1_TX_EN */
>;
};
&cpsw3g {
pinctrl-names = "default";
pinctrl-0 = <&main_mdio1_pins_default
&main_rmii1_pins_default
&main_rmii2_pins_default>;
};
&cpsw_port1 {
phy-mode = "rmii";
phy-handle = <&cpsw3g_phy0>;
};
&cpsw3g_mdio{
cpsw3g_phy0: ethernet-phy@3 {
reg = <0x03>;
};
};
&cpsw_port2 {
phy-mode = "rmii";
phy-handle = <&cpsw3g_phy1>;
};
&cpsw3g_mdio {
cpsw3g_phy1: ethernet-phy@5 {
reg = <0x05>;
};
};
2. Config file
am62x_evm_a53_defconfig
-----------------------
CONFIG_PHY_TI_GENERIC=y
3. Driver File:
----------
drivers/net/phy/ti_init_phy.c
#ifdef CONFIG_PHY_TI_GENERIC
static struct phy_driver dp83620_driver = {
.name = "TI DP83620",
//.uid = 0x20005ce0,
.uid = 0x20005ce1,
.mask = 0xfffffff0,
.features = PHY_BASIC_FEATURES,
.config = &genphy_config_aneg,
.startup = &genphy_startup,
.shutdown = &genphy_shutdown,
};
#endif
#ifdef CONFIG_PHY_TI_GENERIC
phy_register(&dp83620_driver);
#endif
After these changes, We are seeing the LED's on the RJ45 Connector and can able to read the PHY register's using MII commands on U-boot. The MII dump for the status register is shown below.
As you can see the Auto-negotiation and Link is Completed Successfully.
Then when we try to Ping the Host, the Ping Command Fails.
At u-boot Command prompt
setenv ipaddr 192.168.1.10
setenv serverip 192.168.1.11
setenv netmask 255.255.255.0
ping 192.168.1.11
Kindly let us know, Whether we are missing any configuration details for Ethernet PHY (DP83620).
How to proceed further on this.