mirror-linux/drivers/net/mdio
Maxime Chevallier d4bd3aca33 net: mdio: mdio-i2c: Add support for single-byte SMBus operations
PHYs that are within copper SFP modules have their MDIO bus accessible
through address 0x56 (usually) on the i2c bus. The MDIO-I2C bridge is
desgned for 16 bits accesses, but we can also perform 8bits accesses by
reading/writing the high and low bytes sequentially.

This commit adds support for this type of accesses, thus supporting
smbus controllers such as the one in the VSC8552.

This was only tested on Copper SFP modules that embed a Marvell 88e1111
PHY.

Tested-by: Sean Anderson <sean.anderson@linux.dev>
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20250322075745.120831-3-maxime.chevallier@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-03-25 09:10:55 -07:00
..
Kconfig net: mdio: Introduce a regmap-based mdio driver 2023-06-05 09:56:36 +01:00
Makefile net: mdio: Introduce a regmap-based mdio driver 2023-06-05 09:56:36 +01:00
acpi_mdio.c net: mdio: fill in missing MODULE_DESCRIPTION()s 2023-11-01 21:50:57 -07:00
fwnode_mdio.c net: mdiobus: fix an OF node reference leak 2024-12-19 11:45:42 +01:00
mdio-aspeed.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-bcm-iproc.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-bcm-unimac.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-10-21 09:14:18 +02:00
mdio-bitbang.c net: mdio: fill in missing MODULE_DESCRIPTION()s 2023-11-01 21:50:57 -07:00
mdio-cavium.c net: mdio: cavium: Remove unneeded simicolons 2023-01-17 13:19:05 +01:00
mdio-cavium.h net: mdio: cavium: Separate C22 and C45 transactions 2023-01-13 21:40:53 -08:00
mdio-gpio.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-hisi-femac.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
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 net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-moxart.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mscc-miim.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-bcm-iproc.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-bcm6368.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-gpio.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-meson-g12a.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-meson-gxl.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-mmioreg.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux-multiplexer.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-mux.c net: mdio-mux: be compatible with parent buses which only support C45 2023-12-14 18:55:38 -08:00
mdio-mvusb.c net: mdio: mvusb: Fix an error handling path in mvusb_mdio_probe() 2023-05-07 14:59:02 +01:00
mdio-octeon.c net: simplify resource acquisition + ioremap 2024-12-06 17:28:34 -08:00
mdio-regmap.c net: mdio: Introduce a regmap-based mdio driver 2023-06-05 09:56:36 +01:00
mdio-sun4i.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
mdio-thunder.c net: mdio: thunder: switch to scoped device_for_each_child_node() 2024-10-04 09:28:26 -07:00
mdio-xgene.c net: mdio: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
of_mdio.c net: mdio: Use of_property_count_u32_elems() to get property length 2024-08-01 18:13:15 -07:00