Messages in this thread | | | From | Tao Ren <> | Subject | Re: [PATCH net-next v7 3/3] net: phy: broadcom: add 1000Base-X support for BCM54616S | Date | Fri, 16 Aug 2019 01:33:04 +0000 |
| |
On 8/15/19 4:36 PM, Florian Fainelli wrote: > On 8/11/19 4:40 PM, Tao Ren wrote: >> The BCM54616S PHY cannot work properly in RGMII->1000Base-X mode, mainly >> because genphy functions are designed for copper links, and 1000Base-X >> (clause 37) auto negotiation needs to be handled differently. >> >> This patch enables 1000Base-X support for BCM54616S by customizing 3 >> driver callbacks, and it's verified to be working on Facebook CMM BMC >> platform (RGMII->1000Base-KX): >> >> - probe: probe callback detects PHY's operation mode based on >> INTERF_SEL[1:0] pins and 1000X/100FX selection bit in SerDES 100-FX >> Control register. >> >> - config_aneg: calls genphy_c37_config_aneg when the PHY is running in >> 1000Base-X mode; otherwise, genphy_config_aneg will be called. >> >> - read_status: calls genphy_c37_read_status when the PHY is running in >> 1000Base-X mode; otherwise, genphy_read_status will be called. >> >> Note: BCM54616S PHY can also be configured in RGMII->100Base-FX mode, and >> 100Base-FX support is not available as of now. >> >> Signed-off-by: Tao Ren <taoren@fb.com> > >> - reg = bcm_phy_read_shadow(phydev, BCM5482_SHD_MODE); >> - bcm_phy_write_shadow(phydev, BCM5482_SHD_MODE, >> - reg | BCM5482_SHD_MODE_1000BX); >> + reg = bcm_phy_read_shadow(phydev, BCM54XX_SHD_MODE); >> + bcm_phy_write_shadow(phydev, BCM54XX_SHD_MODE, >> + reg | BCM54XX_SHD_MODE_1000BX); > > This could have been a separate patch, but this looks reasonable to me > and this is correct with the datasheet, thanks Tao. > > Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Thank you FLorian.
It is great experience working with you all to figure out root cause and work out the patches, and I really appreciate it.
Cheers,
Tao
| |