net: phy: micrel: add phy-mode support for the KSZ9031 PHY
authorOleksij Rempel <o.rempel@pengutronix.de>
Wed, 22 Apr 2020 07:21:37 +0000 (09:21 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Apr 2020 02:38:46 +0000 (19:38 -0700)
commitbcf3440c6dd78bfe5836ec0990fe36d7b4bb7d20
tree8938df77886c55063a9fcfd4eba25688fffbe77a
parent8518307dc2b2a97b235c74920b45020f9bebe33e
net: phy: micrel: add phy-mode support for the KSZ9031 PHY

Add support for following phy-modes: rgmii, rgmii-id, rgmii-txid, rgmii-rxid.

This PHY has an internal RX delay of 1.2ns and no delay for TX.

The pad skew registers allow to set the total TX delay to max 1.38ns and
the total RX delay to max of 2.58ns (configurable 1.38ns + build in
1.2ns) and a minimal delay of 0ns.

According to the RGMII v1.3 specification the delay provided by PCB traces
should be between 1.5ns and 2.0ns. The RGMII v2.0 allows to provide this
delay by MAC or PHY. So, we configure this PHY to the best values we can
get by this HW: TX delay to 1.38ns (max supported value) and RX delay to
1.80ns (best calculated delay)

The phy-modes can still be fine tuned/overwritten by *-skew-ps
device tree properties described in:
Documentation/devicetree/bindings/net/micrel-ksz90x1.txt

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Philippe Schenker <philippe.schenker@toradex.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/micrel.c