From: Ong Boon Leong <hidden> Date: 2021-10-13 06:53:44
From: "Lay, Kuan Loon" <redacted>
PHY driver dp83867 has rich supports for OF-platform to fine-tune the PHY
chip during phy configuration. However, for non-OF platform, certain PHY
tunable parameters such as IO impedance and RX & TX internal delays are
critical and should be initialized to its default during PHY driver probe.
Tested-by: Clement <redacted>
Signed-off-by: Lay, Kuan Loon <redacted>
Co-developed-by: Ong Boon Leong <redacted>
Signed-off-by: Ong Boon Leong <redacted>
---
drivers/net/phy/dp83867.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
@@ -619,6 +619,25 @@ static int dp83867_of_init(struct phy_device *phydev)#elsestaticintdp83867_of_init(structphy_device*phydev){+structdp83867_private*dp83867=phydev->priv;+u16delay;++/* For non-OF device, the RX and TX ID values are either strapped+*ortakefromdefaultvalue.So,weinitRX&TXIDvalueshere+*sothattheRGMIIDCTLisconfiguredcorrectlylaterin+*dp83867_config_init();+*/+delay=phy_read_mmd(phydev,DP83867_DEVADDR,DP83867_RGMIIDCTL);+dp83867->rx_id_delay=delay&DP83867_RGMII_RX_CLK_DELAY_MAX;+dp83867->tx_id_delay=(delay>>DP83867_RGMII_TX_CLK_DELAY_SHIFT)&+DP83867_RGMII_TX_CLK_DELAY_MAX;++/* Per datasheet, IO impedance is default to 50-ohm, so we set the+*samehereorelsethedefault'0'meanshighestIOimpedance+*whichiswrong.+*/+dp83867->io_impedance=DP83867_IO_MUX_CFG_IO_IMPEDANCE_MIN/2;+return0;}#endif /* CONFIG_OF_MDIO */
From: Kurt Kanzenbach <kurt@linutronix.de> Date: 2021-10-13 07:34:32
On Wed Oct 13 2021, Ong Boon Leong wrote:
From: "Lay, Kuan Loon" <redacted>
PHY driver dp83867 has rich supports for OF-platform to fine-tune the PHY
chip during phy configuration. However, for non-OF platform, certain PHY
tunable parameters such as IO impedance and RX & TX internal delays are
critical and should be initialized to its default during PHY driver probe.
Tested-by: Clement <redacted>
Signed-off-by: Lay, Kuan Loon <redacted>
Co-developed-by: Ong Boon Leong <redacted>
Signed-off-by: Ong Boon Leong <redacted>
Thanks!
Tested-by: Kurt Kanzenbach <kurt@linutronix.de>