6ead65bb2f
Added changes required for nxp_enet ethernet driver to work with multiple PHYs and fixed few problems: - The cfg_link API resets PHY before configuring link. It was moved here so the ethernet driver does not have to reset it - not all PHYs need reset before configuring link and moving the reset code here makes possible to have the reset done in a PHY specific way (for example to reset by toggling GPIO pin). It also avoids ethernet driver touching PHY registers without locking. - When reset GPIO is not defined, reset is performed by setting reset bit in control register. - The cfg_link API does not return error when autonegotiation fails. This fixes situation when the link is down at system start - ethernet driver then skipped setting link-change callback and link was never to be detected again. - Added reset of excessive bits 16-31 when reading register values. As only 16 bits are read from PHY, but the API is supposed to read into uint32_t, the remaining bits contained previous data after a successful read. - Fixed missing mutex unlock when querying link state and link was down. - Added missing initializer to link state variables. This could result in link state change detection while link was still down, because the speed/duplex settings could be random and old and new state could be wrongly detected as different. - Not logging link speed/duplex status when link is not up. Signed-off-by: Stanislav Poboril <stanislav.poboril@nxp.com> |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
Kconfig | ||
Kconfig.tja1103 | ||
phy_adin2111.c | ||
phy_adin2111_priv.h | ||
phy_microchip_ksz8081.c | ||
phy_mii.c | ||
phy_tja1103.c |