linux/drivers/net/mdio
Christian Marangi 67e3ba9783 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>
2025-06-27 10:09:36 +01:00
..
acpi_mdio.c
fwnode_mdio.c net: pse-pd: Introduce attached_phydev to pse control 2025-06-18 19:00:15 -07:00
Kconfig net: mdio: Add MDIO bus controller for Airoha AN7583 2025-06-27 10:09:36 +01:00
Makefile net: mdio: Add MDIO bus controller for Airoha AN7583 2025-06-27 10:09:36 +01:00
mdio-airoha.c net: mdio: Add MDIO bus controller for Airoha AN7583 2025-06-27 10:09:36 +01:00
mdio-aspeed.c
mdio-bcm-iproc.c
mdio-bcm-unimac.c net: phy: mdio-bcm-unimac: Add asp-v3.0 2025-04-24 16:59:53 -07:00
mdio-bitbang.c
mdio-cavium.c
mdio-cavium.h
mdio-gpio.c
mdio-hisi-femac.c
mdio-i2c.c net: mdio: mdio-i2c: Add support for single-byte SMBus operations 2025-03-25 09:10:55 -07:00
mdio-ipq4019.c net: mdio-ipq4019: add missing error check 2024-11-26 11:01:39 +01:00
mdio-ipq8064.c
mdio-moxart.c
mdio-mscc-miim.c
mdio-mux-bcm-iproc.c
mdio-mux-bcm6368.c
mdio-mux-gpio.c net: mdio: mux-gpio: use gpiod_multi_set_value_cansleep 2025-06-12 18:37:51 -07:00
mdio-mux-meson-g12a.c
mdio-mux-meson-gxl.c net: mdio: mux-meson-gxl: set reversed bit when using internal phy 2025-04-29 12:01:53 -07:00
mdio-mux-mmioreg.c
mdio-mux-multiplexer.c
mdio-mux.c
mdio-mvusb.c
mdio-octeon.c net: simplify resource acquisition + ioremap 2024-12-06 17:28:34 -08:00
mdio-realtek-rtl9300.c net: mdio: Add RTL9300 MDIO driver 2025-04-15 11:00:37 +02:00
mdio-regmap.c
mdio-sun4i.c
mdio-thunder.c net: mdio: thunder: Use pure PCI devres API 2025-04-28 16:19:16 -07:00
mdio-xgene.c
of_mdio.c net: phy: fixed_phy: remove irq argument from fixed_phy_register 2025-05-20 18:17:43 -07:00