net: phy: Add support for microchip SMI0 MDIO bus
authorAndrew Lunn <andrew@lunn.ch>
Tue, 27 Apr 2021 07:09:07 +0000 (09:09 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Apr 2021 21:13:24 +0000 (14:13 -0700)
commit800fcab8230f622544a12403977b5b7259a076f8
tree51c1bd5277f0a3f604e2cdb8c6b437e22408d6f4
parent61df0e7bbb90fac8c77203e0fa570804617f137d
net: phy: Add support for microchip SMI0 MDIO bus

SMI0 is a mangled version of MDIO. The main low level difference is
the MDIO C22 OP code is always 0, not 0x2 or 0x1 for Read/Write. The
read/write information is instead encoded in the PHY address.

Extend the bit-bang code to allow the op code to be overridden, but
default to normal C22 values. Add an extra compatible to the mdio-gpio
driver, and when this compatible is present, set the op codes to 0.

A higher level driver, sitting on top of the basic MDIO bus driver can
then implement the rest of the microchip SMI0 odderties.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/mdio/mdio-bitbang.c
drivers/net/mdio/mdio-gpio.c
include/linux/mdio-bitbang.h