diff options
author | Christian Marangi <ansuelsmth@gmail.com> | 2025-06-17 11:16:53 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2025-06-27 10:09:36 +0100 |
commit | 67e3ba978361cb262f8f8981ab88ccb97f1e2bda (patch) | |
tree | fd9a63d740d50ad962e16dc80dadbb084f6c07a2 /net/core/utils.c | |
parent | a6ee35bd1fe0ef91135479c18ff63af3ef9fe11d (diff) |
net: mdio: Add MDIO bus controller for Airoha AN7583
Airoha AN7583 SoC have 2 dedicated MDIO bus controller in the SCU
register map. To driver register an MDIO controller based on the DT
reg property and access the register by accessing the parent syscon.
The MDIO bus logic is similar to the MT7530 internal MDIO bus but
deviates of some setting and some HW bug.
On Airoha AN7583 the MDIO clock is set to 25MHz by default and needs to
be correctly setup to 2.5MHz to correctly work (by setting the divisor
to 10x).
There seems to be Hardware bug where AN7583_MII_RWDATA
is not wiped in the context of unconnected PHY and the
previous read value is returned.
Example: (only one PHY on the BUS at 0x1f)
- read at 0x1f report at 0x2 0x7500
- read at 0x0 report 0x7500 on every address
To workaround this, we reset the Mdio BUS at every read
to have consistent values on read operation.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/utils.c')
0 files changed, 0 insertions, 0 deletions