openwrt/target/linux/realtek/files-6.18/drivers/net
Jonas Jelonek 90c0a37ddc realtek: pcs: switch SerDes polarity to {rx,tx}-polarity
With the recent backport of the common PHY properties infrastructure
(phy-common-props and the phy_get_manual_{rx,tx}_polarity() helpers) to
OpenWrt, the generic `{rx,tx}-polarity` device tree properties are now
usable for the Realtek PCS driver. Switch the driver and all affected
boards from the local vendor-specific `realtek,pnswap-{rx,tx}` booleans
to the common properties.

Add a `config_polarity` SerDes op (implemented by RTL930x and RTL931x;
RTL838x/RTL839x polarity support not yet added) and a generic wrapper
that resolves the requested polarity via phy_get_manual_{rx,tx}_polarity()
and dispatches to the op. Variants without the op silently accept the
default polarity but warn when a non-default polarity is requested,
since that cannot be honored.

Move the polarity programming out of the variant setup_serdes callbacks
into rtpcs_pcs_config, so it runs before setup_serdes. This matches the
ordering used by the vendor SDK, which configures polarity first.

Update all board DTS files that previously used `realtek,pnswap-{rx,tx}`
to the new `{rx,tx}-polarity = <PHY_POL_INVERT>` property, and select
PHY_COMMON_PROPS from Kconfig.

Each SerDes now retains its DT node for later polarity lookup. Use
for_each_child_of_node_scoped for the iterator, and register a
devm_add_action_or_reset for each stored reference so it is released on
unbind or probe failure.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23044
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-04-24 10:13:38 +02:00
..
dsa/rtl83xx realtek: dsa: drop legacy table commands 2026-04-22 16:59:29 +02:00
ethernet realtek: eth: harden receive path 2026-04-24 09:47:04 +02:00
mdio realtek: mdio: simplify regmap_update_bits 2026-04-22 17:01:49 +02:00
pcs realtek: pcs: switch SerDes polarity to {rx,tx}-polarity 2026-04-24 10:13:38 +02:00
phy/realtek realtek: phy: 6.18: drop shared priv access helper 2026-03-29 18:08:21 +02:00