]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: pcs: pcs-mtk-lynxi: fix bpi-r3 serdes configuration
authorFrank Wunderlich <frank-w@public-files.de>
Tue, 26 May 2026 15:32:38 +0000 (17:32 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 29 May 2026 01:09:03 +0000 (18:09 -0700)
Commit 8871389da151 introduces common pcs dts properties which writes
rx=normal,tx=normal polarity to register SGMSYS_QPHY_WRAP_CTRL of switch.
This is initialized with tx-bit set and so change inverts polarity
compared to before.

It looks like mt7531 has tx polarity inverted in hardware and set tx-bit
by default to restore the normal polarity.

The MT7531 datasheet quite clearly states:
Register 000050EC QPHY_WRAP_CTRL -- QPHY wrapper control
Reset value: 0x00000501

BIT 1 RX_BIT_POLARITY -- RX bit polarity control
 1'b0: normal
 1'b1: inverted

BIT 0 TX_BIT_POLARITY -- TX bit polarity control (TX default inversed
in MT7531)
 1'b0: normal
 1'b1: inverted

Till this patch the register write was only called when mediatek,pnswap
property was set which cannot be done for switch because the fw-node param
was always NULL from switch driver in the mtk_pcs_lynxi_create call.

Do not configure switch side like it's done before.

Fixes: 8871389da151 ("net: pcs: pcs-mtk-lynxi: deprecate "mediatek,pnswap"")
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://patch.msgid.link/20260526153239.30194-1-linux@fw-web.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/pcs/pcs-mtk-lynxi.c

index c12f8087af9be51813b283873c425f536bf0e446..a753bd88cbc22392d32ac44d01fe1e0320fd9d4d 100644 (file)
@@ -129,6 +129,9 @@ static int mtk_pcs_config_polarity(struct mtk_pcs_lynxi *mpcs,
        unsigned int val = 0;
        int ret;
 
+       if (!fwnode)
+               return 0;
+
        if (fwnode_property_read_bool(fwnode, "mediatek,pnswap"))
                default_pol = PHY_POL_INVERT;