mirror_ubuntu-kernels/drivers/net/pcs
Vladimir Oltean dd0721ea4c net: pcs: xpcs: add support for NXP SJA1105
The NXP SJA1105 DSA switch integrates a Synopsys SGMII XPCS on port 4.
The generic code works fine, except there is an integration issue which
needs to be dealt with: in this switch, the XPCS is integrated with a
PMA that has the TX lane polarity inverted by default (PLUS is MINUS,
MINUS is PLUS).

To obtain normal non-inverted behavior, the TX lane polarity must be
inverted in the PCS, via the DIGITAL_CONTROL_2 register.

We introduce a pma_config() method in xpcs_compat which is called by the
phylink_pcs_config() implementation.

Also, the NXP SJA1105 returns all zeroes in the PHY ID registers 2 and 3.
We need to hack up an ad-hoc PHY ID (OUI is zero, device ID is 1) in
order for the XPCS driver to recognize it. This PHY ID is added to the
public include/linux/pcs/pcs-xpcs.h for that reason (for the sja1105
driver to be able to use it in a later patch).

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-06-11 13:43:56 -07:00
..
Kconfig net: pcs-xpcs: depend on MDIO_BUS instead of selecting it 2020-10-16 16:54:11 -07:00
Makefile net: pcs: xpcs: add support for NXP SJA1105 2021-06-11 13:43:56 -07:00
pcs-lynx.c net: pcs: add pcs-lynx 1000BASE-X support 2021-02-06 14:35:21 -08:00
pcs-xpcs-nxp.c net: pcs: xpcs: add support for NXP SJA1105 2021-06-11 13:43:56 -07:00
pcs-xpcs.c net: pcs: xpcs: add support for NXP SJA1105 2021-06-11 13:43:56 -07:00
pcs-xpcs.h net: pcs: xpcs: add support for NXP SJA1105 2021-06-11 13:43:56 -07:00