Hi Experts,
This is a continuation of this thread.
Can you share the information regarding device tree? the customer would like to make sure that their device tree is correct.
Thanks again.
Regards,
Marvin
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.
Hi Jian,
Below is the device tree setting for LAN8720A device in am57xx-beagle-x15-common.dtsi file. Please inform any additional driver required to be enabled and other change is required in device tree.
&dra7_pmx_core { cpsw_pins_default: cpsw_pins_default { pinctrl-single,pins = < /* Slave at addr 0x0 */ DRA7XX_CORE_IOPAD(0x3650, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tclk */ DRA7XX_CORE_IOPAD(0x3654, PIN_OUTPUT | MUX_MODE0) /* rgmii0_tctl */ DRA7XX_CORE_IOPAD(0x3658, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td3 */ DRA7XX_CORE_IOPAD(0x365c, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td2 */ DRA7XX_CORE_IOPAD(0x3660, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td1 */ DRA7XX_CORE_IOPAD(0x3664, PIN_OUTPUT | MUX_MODE0) /* rgmii0_td0 */ DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rclk */ DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rctl */ DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd3 */ DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd2 */ DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd1 */ DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* rgmii0_rd0 */ /* Slave at addr 0x1 */ DRA7XX_CORE_IOPAD(0x3598, PIN_OUTPUT | MUX_MODE3) /* vin2a_d12.rgmii1_tclk */ DRA7XX_CORE_IOPAD(0x359c, PIN_OUTPUT | MUX_MODE3) /* vin2a_d13.rgmii1_tctl */ DRA7XX_CORE_IOPAD(0x35a0, PIN_OUTPUT | MUX_MODE3) /* vin2a_d14.rgmii1_td3 */ DRA7XX_CORE_IOPAD(0x35a4, PIN_OUTPUT | MUX_MODE3) /* vin2a_d15.rgmii1_td2 */ DRA7XX_CORE_IOPAD(0x35a8, PIN_OUTPUT | MUX_MODE3) /* vin2a_d16.rgmii1_td1 */ DRA7XX_CORE_IOPAD(0x35ac, PIN_OUTPUT | MUX_MODE3) /* vin2a_d17.rgmii1_td0 */ DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d18.rgmii1_rclk */ DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d19.rgmii1_rctl */ DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d20.rgmii1_rd3 */ DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d21.rgmii1_rd2 */ DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d22.rgmii1_rd1 */ DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* vin2a_d23.rgmii1_rd0 */ >; }; cpsw_pins_sleep: cpsw_pins_sleep { pinctrl-single,pins = < /* Slave 1 */ DRA7XX_CORE_IOPAD(0x3650, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3654, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3658, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x365c, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3660, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3664, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3668, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x366c, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3670, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3674, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3678, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x367c, PIN_INPUT | MUX_MODE15) /* Slave 2 */ DRA7XX_CORE_IOPAD(0x3598, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x359c, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35a0, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35a4, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35a8, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35ac, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35b0, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35b4, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35b8, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35bc, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35c0, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x35c4, PIN_INPUT | MUX_MODE15) >; }; davinci_mdio_pins_default: davinci_mdio_pins_default { pinctrl-single,pins = < /* MDIO */ DRA7XX_CORE_IOPAD(0x3590, PIN_OUTPUT_PULLUP | MUX_MODE3)/* vin2a_d10.mdio_mclk */ DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT_PULLUP | MUX_MODE3) /* vin2a_d11.mdio_d */ >; }; davinci_mdio_pins_sleep: davinci_mdio_pins_sleep { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x3590, PIN_INPUT | MUX_MODE15) DRA7XX_CORE_IOPAD(0x3594, PIN_INPUT | MUX_MODE15) >; }; }; &mac { pinctrl-names = "default", "sleep"; pinctrl-0 = <&cpsw_pins_default>; pinctrl-1 = <&cpsw_pins_sleep>; status = "okay"; active_slave = <1>; dual_emac; }; &cpsw_emac0 { phy-handle = <&phy0>; // phy-mode = "rgmii"; // dual_emac_res_vlan = <1>; // phy_id = <&davinci_mdio>, <0>; // phy-mode = "rgmii-txid"; phy-mode = "rmii"; // dual_emac_res_vlan = <0>; }; &cpsw_emac1 { phy-handle = <&phy1>; // phy-mode = "rgmii"; // dual_emac_res_vlan = <2>; // phy_id = <&davinci_mdio>, <1>; //phy-mode = "rgmii-txid"; phy-mode = "rmii"; dual_emac_res_vlan = <1>; }; &davinci_mdio { status = "okay"; //me added below three line pinctrl-names = "default", "sleep"; pinctrl-0 = <&davinci_mdio_pins_default>; pinctrl-1 = <&davinci_mdio_pins_sleep>; phy0: ethernet-phy@0 { reg = <0>; }; phy1: ethernet-phy@1 { reg = <1>; }; };
Regards,
Marvin