Other Parts Discussed in Thread: DP83865, DP83843
We have AM335x based custom board.
The details are :
> uname -a
Linux am335x-evm 3.14.1+ #28 SMP Mon Jul 6 17:39:42 IST 2020 armv7l GNU/Linux
root@am335x-evm:~# dmesg | grep phy
[ 0.000000] Booting Linux on physical CPU 0x0
[ 3.227088] libphy: Fixed MDIO Bus: probed
[ 3.239718] 47401300.usb-phy supply vcc not found, using dummy regulator
[ 3.269129] 47401b00.usb-phy supply vcc not found, using dummy regulator
[ 3.771434] davinci_mdio 4a101000.mdio: detected phy mask fffffffa
[ 3.791055] libphy: 4a101000.mdio: probed
[ 3.795195] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown
[ 3.803267] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02, driver TI DP83848
[ 36.784465] net eth0: phy found : id is : 0x20005c90
************** inside file = drivers/net/ethernet/ti/cpsw-phy-sel.c, line num = 51, func = cpsw_gmii_sel_am3352 *************
[ 38.784300] libphy: 4a101000.mdio:02 - Link is Up - 100/Full
root@am335x-evm:~# dmesg | grep eth0
[ 36.696929] net eth0: initializing cpsw version 1.12 (0)
[ 36.784465] net eth0: phy found : id is : 0x20005c90
[ 36.810248] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 36.816200] A link change request failed with some changes committed already. Interface eth0 may have been left with an inconsistent configuration, please check.
[ 38.798395] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 3.668702] pinctrl-single 44e10800.pinmux: pin 44e10848.0 already requested by 48302000.epwmss; cannot claim for 4a100000.ethernet
[ 3.680703] pinctrl-single 44e10800.pinmux: pin-18 (4a100000.ethernet) status -22
[ 3.688271] pinctrl-single 44e10800.pinmux: could not request pin 18 (44e10848.0) from group cpsw_default on device pinctrl-single
[ 3.700217] cpsw 4a100000.ethernet: Error applying setting, reverse things back
The ethernet phy DP83848 is configured in 'mii' mode & connected to GMii2 port of the AM335x processor . The link is getting detected . But the ping is not happening. Please help.
The .dts files that are modified is attached.
The .dts file snippets are as below:
&mac {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&cpsw_default>;
pinctrl-1 = <&cpsw_sleep>;
slaves = <1>;
status = "okay";
};
&davinci_mdio {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&davinci_mdio_default>;
pinctrl-1 = <&davinci_mdio_sleep>;
status = "okay";
};
&cpsw_emac0 {
compatible = "TI DP83848","NatSemi DP83865";
phy_id = <&davinci_mdio>, <2>;
phy-mode = "mii";
status = "okay";
};
The .dtsi file snippet is:
/* Slave 2 */
AM33XX_IOPAD(0x878, PIN_INPUT | MUX_MODE1) /* gpmc_ben1.gmii2_col(ETH1_COL) */
AM33XX_IOPAD(0x870, PIN_INPUT | MUX_MODE1) /* gpmc_wait0.gmii2_crs(ETH1_CRS) */
AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_wpn.gmii2_rxerr(ETH1_RXER) */
AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a0.gmii2_txen(ETH1_TXEN) */
AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a1.gmii2_rxdv(ETH1_RXDV) */
AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a2.gmii2_txd3(ETH1_TXD[3]) */
AM33XX_IOPAD(0x84c, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a3.gmii2_txd2(ETH1_TXD[2]) */
AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a4.gmii2_txd1(ETH1_TXD[1]) */
AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* gpmc_a5.gmii2_txd0(ETH1_TXD[0]) */
AM33XX_IOPAD(0x858, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a6.gmii2_txclk(ETH1_TXCLK) */
AM33XX_IOPAD(0x85c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a7.gmii2_rxclk(ETH1_RXCLK) */
/*AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE1)*/ /* gpmc_a8.gmii2_rxd3(ETH1_RXD[3]) */
/*AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE1)*/ /* gpmc_a9.gmii2_rxd2(ETH1_RXD[2]) */
/*AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE1)*/ /* gpmc_a10.gmii2_rxd1(ETH1_RXD[1]) */
/*AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE1)*/ /* gpmc_a11.gmii2_rxd0(ETH1_RXD[0]) */
AM33XX_IOPAD(0x860, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a8.gmii2_rxd3(ETH1_RXD[3]) */
AM33XX_IOPAD(0x864, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a9.gmii2_rxd2(ETH1_RXD[2]) */
AM33XX_IOPAD(0x868, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a10.gmii2_rxd1(ETH1_RXD[1]) */
AM33XX_IOPAD(0x86c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a11.gmii2_rxd0(ETH1_RXD[0]) */
/* Slave 2 reset value */
AM33XX_IOPAD(0x878, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)
am335x-dts-files.zip