Thread (13 messages) 13 messages, 3 authors, 2016-11-01

[PATCH v2 2/6] net: phy: broadcom: Add BCM54810 PHY entry

From: Jon Mason <hidden>
Date: 2016-11-01 16:00:13
Also in: linux-devicetree, lkml, netdev

On Sat, Oct 29, 2016 at 10:18:39AM +0200, Andrew Lunn wrote:
On Fri, Oct 28, 2016 at 04:56:55PM -0400, Jon Mason wrote:
quoted
The BCM54810 PHY requires some semi-unique configuration, which results
in some additional configuration in addition to the standard config.
Also, some users of the BCM54810 require the PHY lanes to be swapped.
Since there is no way to detect this, add a device tree query to see if
it is applicable.

Inspired-by: Vikas Soni [off-list ref]
Signed-off-by: Jon Mason <redacted>
---
 drivers/net/phy/Kconfig    |  2 +-
 drivers/net/phy/broadcom.c | 58 +++++++++++++++++++++++++++++++++++++++++++++-
 include/linux/brcmphy.h    | 10 ++++++++
Hi Jon

The binding documentation is missing.
quoted
+	if (of_property_read_bool(np, "brcm,enet-phy-lane-swap")) {
+		/* Lane Swap - Undocumented register...magic! */
+		ret = bcm_phy_write_exp(phydev, MII_BCM54XX_EXP_SEL_ER + 0x9,
+					0x11B);
+		if (ret < 0)
+			return ret;
+	}
+
I wounder if this property could be made generic? What exactly are you
swapping? Rx and Tx lanes? Maybe we should add it to phy.txt?
Are you envisioning adding a DT check (similar to the
of_property_read_bool above, only with a more generic string) in
phy_device_create(), which will then set a PHY device flag?  This flag
would then be checked for in the PHY driver and the appropriate action
taken (in this case the bcm_phy_write_exp above).

If so, I cam completely fine doing this.  I think the only caveat
would be that this would be creating a generic interface for only 1
user.  If you envision this being used by others, then disregard my
concern.

Thanks,
Jon
	  Andrew
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help