realtek: DTS: add macro for switch port with SerDes
authorMarkus Stockhausen <[email protected]>
Thu, 18 Sep 2025 09:10:50 +0000 (05:10 -0400)
committerRobert Marko <[email protected]>
Sat, 20 Sep 2025 10:51:23 +0000 (12:51 +0200)
In the future the PCS & DSA drivers will lookup the SerDes of a
switch port via pcs-handle (like upstream does). Provide a macro
that allows to expand the existing port definitions. To link a
SerDes to port simply do

Either in short form:

replace SWITCH_PORT(0, 1, qsgmii)
with    SWITCH_PORT_SDS(0, 1, 3, qsgmii) (Link to SerDes 3)

Or in long form:

port@24 {
reg = <24>;
label = "lan25";
pcs-handle = <&serdes4>; (Link to SerDes 4)
phy-handle = <&phy24>;
phy-mode = "1000base-x";
managed = "in-band-status";
sfp = <&sfp0>;
};

Signed-off-by: Markus Stockhausen <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/20075
Signed-off-by: Robert Marko <[email protected]>
target/linux/realtek/dts/macros.dtsi

index b47b7826694e032c63d743472474b77a923ff2f7..fbdd3fbb1c18aa2de0748c18030d1448170446cf 100644 (file)
                reg = <##n>; \
        };
 
-#define SWITCH_PORT(n, s, m) \
-       port##n: port@##n { \
-               reg = <##n>; \
-               label = SWITCH_PORT_LABEL(s) ; \
-               phy-handle = <&phy##n>; \
+#define SWITCH_PORT(p, l, m) \
+       port##p: port@##p { \
+               reg = <##p>; \
+               label = SWITCH_PORT_LABEL(l) ; \
+               phy-handle = <&phy##p>; \
+               phy-mode = #m ; \
+       };
+
+#define SWITCH_PORT_SDS(p, l, s, m) \
+       port##p: port@##p { \
+               reg = <##p>; \
+               label = SWITCH_PORT_LABEL(l) ; \
+               pcs-handle = <&serdes##s>; \
+               phy-handle = <&phy##p>; \
                phy-mode = #m ; \
        };