Re: [PATCH v3 net-next 00/10] PHY polarity inversion via generic device tree properties
From: Vinod Koul <vkoul@kernel.org>
Date: 2026-01-14 13:18:56
Also in:
linux-arm-kernel, linux-devicetree, linux-mediatek, linux-phy, lkml
On 11-01-26, 11:39, Vladimir Oltean wrote:
Introduce "rx-polarity" and "tx-polarity" device tree properties. Convert two existing networking use cases - the EN8811H Ethernet PHY and the Mediatek LynxI PCS. Requested merge strategy: Patches 1-5 through linux-phy
The following changes since commit 8f0b4cce4481fb22653697cced8d0d04027cb1e8:
Linux 6.19-rc1 (2025-12-14 16:05:07 +1200)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git tags/phy_common_properties
for you to fetch changes up to e7556b59ba65179612bce3fa56bb53d1b4fb20db:
phy: add phy_get_rx_polarity() and phy_get_tx_polarity() (2026-01-14 18:16:05 +0530)
----------------------------------------------------------------
phy common properties
Vladimir Oltean [off-list ref] wrote:
Introduce "rx-polarity" and "tx-polarity" device tree properties with
Kunit tests
----------------------------------------------------------------
Vladimir Oltean (5):
dt-bindings: phy: rename transmit-amplitude.yaml to phy-common-props.yaml
dt-bindings: phy-common-props: create a reusable "protocol-names" definition
dt-bindings: phy-common-props: ensure protocol-names are unique
dt-bindings: phy-common-props: RX and TX lane polarity inversion
phy: add phy_get_rx_polarity() and phy_get_tx_polarity()
.../devicetree/bindings/phy/phy-common-props.yaml | 157 ++++++++
.../bindings/phy/transmit-amplitude.yaml | 103 -----
MAINTAINERS | 10 +
drivers/phy/Kconfig | 22 ++
drivers/phy/Makefile | 2 +
drivers/phy/phy-common-props-test.c | 422 +++++++++++++++++++++
drivers/phy/phy-common-props.c | 209 ++++++++++
include/dt-bindings/phy/phy.h | 4 +
include/linux/phy/phy-common-props.h | 32 ++
9 files changed, 858 insertions(+), 103 deletions(-)
create mode 100644 Documentation/devicetree/bindings/phy/phy-common-props.yaml
delete mode 100644 Documentation/devicetree/bindings/phy/transmit-amplitude.yaml
create mode 100644 drivers/phy/phy-common-props-test.c
create mode 100644 drivers/phy/phy-common-props.c
create mode 100644 include/linux/phy/phy-common-props.h
linux-phy provides stable branch or tag to netdev patches 6-10 through netdev v2 at: https://lore.kernel.org/netdev/20260103210403.438687-1-vladimir.oltean@nxp.com/ (local) Changes since v2: - fix bug with existing fwnode which is missing polarity properties. This is supposed to return the default value, not an error. (thanks to Bjørn Mork). - fix inconsistency between PHY_COMMON_PROPS and GENERIC_PHY_COMMON_PROPS Kconfig options by using PHY_COMMON_PROPS everywhere (thanks to Bjørn Mork). v1 at: https://lore.kernel.org/netdev/20251122193341.332324-1-vladimir.oltean@nxp.com/ (local) Changes since v1: - API changes: split error code from returned value; introduce two new helpers for simple driver cases - Add KUnit tests - Bug fixes in core code and in drivers - Defer XPCS patches for later (*) - Convert Mediatek LynxI PCS - Logical change: rx-polarity and tx-polarity refer to the currently described block, and not necessarily to device pins - Apply Rob's feedback - Drop the "joint maintainership" idea. (*) To simplify the generic XPCS driver, I've decided to make "tx-polarity" default to <PHY_POL_NORMAL>, rather than <PHY_POL_NORMAL> OR <PHY_POL_INVERT> for SJA1105. But in order to avoid breakage, it creates a hard dependency on this patch set being merged *first*: https://lore.kernel.org/netdev/20251118190530.580267-1-vladimir.oltean@nxp.com/ (local) so that the SJA1105 driver can provide an XPCS fwnode with the right polarity specified. All patches in context can be seen at: https://github.com/vladimiroltean/linux/tree/phy-polarity-inversion Original cover letter: Polarity inversion (described in patch 4/10) is a feature with at least 4 potential new users waiting for a generic description: - Horatiu Vultur with the lan966x SerDes - Daniel Golle with the MaxLinear GSW1xx switches - Bjørn Mork with the AN8811HB Ethernet PHY - Me with a custom SJA1105 board, switch which uses the DesignWare XPCS I became interested in exploring the problem space because I was averse to the idea of adding vendor-specific device tree properties to describe a common need. This set contains an implementation of a generic feature that should cater to all known needs that were identified during my documentation phase. Apart from what is converted here, we also have the following, which I did not touch: - "st,px_rx_pol_inv" - its binding is a .txt file and I don't have time for such a large detour to convert it to dtschema. - "st,pcie-tx-pol-inv" and "st,sata-tx-pol-inv" - these are defined in a .txt schema but are not implemented in any driver. My verdict would be "delete the properties" but again, I would prefer not introducing such dependency to this series. Vladimir Oltean (10): dt-bindings: phy: rename transmit-amplitude.yaml to phy-common-props.yaml dt-bindings: phy-common-props: create a reusable "protocol-names" definition dt-bindings: phy-common-props: ensure protocol-names are unique dt-bindings: phy-common-props: RX and TX lane polarity inversion phy: add phy_get_rx_polarity() and phy_get_tx_polarity() dt-bindings: net: airoha,en8811h: deprecate "airoha,pnswap-rx" and "airoha,pnswap-tx" net: phy: air_en8811h: deprecate "airoha,pnswap-rx" and "airoha,pnswap-tx" dt-bindings: net: pcs: mediatek,sgmiisys: deprecate "mediatek,pnswap" net: pcs: pcs-mtk-lynxi: pass SGMIISYS OF node to PCS net: pcs: pcs-mtk-lynxi: deprecate "mediatek,pnswap" .../bindings/net/airoha,en8811h.yaml | 11 +- .../bindings/net/pcs/mediatek,sgmiisys.yaml | 7 +- .../bindings/phy/phy-common-props.yaml | 157 +++++++ .../bindings/phy/transmit-amplitude.yaml | 103 ----- MAINTAINERS | 10 + drivers/net/dsa/mt7530-mdio.c | 4 +- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 19 +- drivers/net/pcs/Kconfig | 1 + drivers/net/pcs/pcs-mtk-lynxi.c | 63 ++- drivers/net/phy/Kconfig | 1 + drivers/net/phy/air_en8811h.c | 53 ++- drivers/phy/Kconfig | 22 + drivers/phy/Makefile | 2 + drivers/phy/phy-common-props-test.c | 422 ++++++++++++++++++ drivers/phy/phy-common-props.c | 209 +++++++++ include/dt-bindings/phy/phy.h | 4 + include/linux/pcs/pcs-mtk-lynxi.h | 5 +- include/linux/phy/phy-common-props.h | 32 ++ 18 files changed, 979 insertions(+), 146 deletions(-) create mode 100644 Documentation/devicetree/bindings/phy/phy-common-props.yaml delete mode 100644 Documentation/devicetree/bindings/phy/transmit-amplitude.yaml create mode 100644 drivers/phy/phy-common-props-test.c create mode 100644 drivers/phy/phy-common-props.c create mode 100644 include/linux/phy/phy-common-props.h -- 2.43.0
-- ~Vinod