Not sure there's any activity still happening in this repo, so this is more for anyone else who runs into the same PHY configuration issue.
This commit fixes the following:
Whenever the application specifies PHY_MODE_AUTONEGO in the wizphy_setphyconf argument, the function would unconditionally configure the PHY for "All Modes Capable". This is not quite in line with the datasheet, which permits 100BT+HDX to be paired with Auto-Negotiation.
PHYCFGR_OPMDC_100FA seems to have been misnamed all this time -- it should've been called PHYCFGR_OPMDC_100HA since the Auto-negotiation is paired with 100BT-HDX, not 100BT-FDX.
When reading the current PHY conf in wizphy_getphyconf, the above misnaming meant that the function would incorrectly return 100BT-FDX + Auto-nego, when the real conf is actually 100BT-HDX + Auto-Nego.
Avoid unintentional PHY reset when setting the configuration -- this is done by masking all but the RST bit of the PHYCFGR, when assembling the bits for the requested configuration.
Not sure there's any activity still happening in this repo, so this is more for anyone else who runs into the same PHY configuration issue.
This commit fixes the following:
PHY_MODE_AUTONEGO
in thewizphy_setphyconf
argument, the function would unconditionally configure the PHY for "All Modes Capable". This is not quite in line with the datasheet, which permits 100BT+HDX to be paired with Auto-Negotiation.PHYCFGR_OPMDC_100FA
seems to have been misnamed all this time -- it should've been calledPHYCFGR_OPMDC_100HA
since the Auto-negotiation is paired with 100BT-HDX, not 100BT-FDX.wizphy_getphyconf
, the above misnaming meant that the function would incorrectly return 100BT-FDX + Auto-nego, when the real conf is actually 100BT-HDX + Auto-Nego.