net: dsa: microchip: lan937x: disable VPHY support
As described by the microchip article "LAN937X - The required configuration for the external MAC port to operate at RGMII-to-RGMII 1Gbps link speed." [1]: "When VPHY is enabled, the auto-negotiation process following IEEE 802.3 standard will be triggered and will result in RGMII-to-RGMII signal failure on the interface because VPHY will try to poll the PHY status that is not available in the scenario of RGMII-to-RGMII connection (normally the link partner is usually an external processor). Note that when VPHY fails on accessing PHY registers, it will fall back to 100Mbps speed, it indicates disabling VPHY is optional if you only need the port to link at 100Mbps speed. Again, VPHY must and can only be disabled by writing VPHY_DISABLE bit in the register below as there is no strapping pin for the control." This patch was tested on LAN9372, so far it seems to not to affect VPHY based clock crossing optimization for the ports with integrated PHYs. [1]: https://microchip.my.site.com/s/article/LAN937X-The-required-configuration-for-the-external-MAC-port-to-operate-at-RGMII-to-RGMII-1Gbps-link-speed Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-by: Vladimir Oltean <olteanv@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c3db39468a
commit
2e3ed20c17
@ -390,6 +390,9 @@ int lan937x_setup(struct dsa_switch *ds)
|
||||
lan937x_cfg(dev, REG_SW_GLOBAL_OUTPUT_CTRL__1,
|
||||
(SW_CLK125_ENB | SW_CLK25_ENB), true);
|
||||
|
||||
/* Disable global VPHY support. Related to CPU interface only? */
|
||||
ksz_rmw32(dev, REG_SW_CFG_STRAP_OVR, SW_VPHY_DISABLE, SW_VPHY_DISABLE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,10 @@
|
||||
#define SW_CLK125_ENB BIT(1)
|
||||
#define SW_CLK25_ENB BIT(0)
|
||||
|
||||
/* 2 - PHY Control */
|
||||
#define REG_SW_CFG_STRAP_OVR 0x0214
|
||||
#define SW_VPHY_DISABLE BIT(31)
|
||||
|
||||
/* 3 - Operation Control */
|
||||
#define REG_SW_OPERATION 0x0300
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user