[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