realtek: add dts helper for internal phy with serdes

Until now only the RTL930x devices make use of the following notation.

  phy8: ethernet-phy@8 {
    compatible = "ethernet-phy-ieee802.3-c22";
    phy-is-integrated;
    reg = <8>;
    sds = <3>;
  };

This indicates that the link is driven by a serdes directly without
external phy. As the devices have multiple serdes it must be clarified
what serdes is responsible for that port.

Nevertheless all other devices have the same requirements. E.g. RTL838x
usually drives port 24 from serdes 4 and port 26 from serdes 5. All this
currently works because the driver has a lot of hardcoded port/serdes
mapping.

Make the situation better by adding dts helpers that can describe the
topology as needed.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/18851
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Markus Stockhausen 2025-05-20 03:37:10 -04:00 committed by Robert Marko
parent f62c33bc4a
commit 5703ca465c
4 changed files with 34 additions and 0 deletions

View file

@ -16,6 +16,14 @@
phy-is-integrated; \
};
#define INTERNAL_PHY_SDS(n, s) \
phy##n: ethernet-phy@##n { \
reg = <##n>; \
compatible = "ethernet-phy-ieee802.3-c22"; \
phy-is-integrated; \
sds = <##s>; \
};
#define EXTERNAL_PHY(n) \
phy##n: ethernet-phy@##n { \
reg = <##n>; \

View file

@ -15,6 +15,14 @@
phy-is-integrated; \
};
#define INTERNAL_PHY_SDS(n, s) \
phy##n: ethernet-phy@##n { \
reg = <##n>; \
compatible = "ethernet-phy-ieee802.3-c22"; \
phy-is-integrated; \
sds = <##s>; \
};
#define EXTERNAL_PHY(n) \
phy##n: ethernet-phy@##n { \
reg = <##n>; \

View file

@ -2,6 +2,14 @@
/dts-v1/;
#define INTERNAL_PHY_SDS(n, s) \
phy##n: ethernet-phy@##n { \
reg = <##n>; \
compatible = "ethernet-phy-ieee802.3-c22"; \
phy-is-integrated; \
sds = <##s>; \
};
/ {
#address-cells = <1>;
#size-cells = <1>;

View file

@ -2,6 +2,16 @@
#include <dt-bindings/interrupt-controller/mips-gic.h>
/dts-v1/;
#define INTERNAL_PHY_SDS(n, s) \
phy##n: ethernet-phy@##n { \
reg = <##n>; \
compatible = "ethernet-phy-ieee802.3-c22"; \
phy-is-integrated; \
sds = <##s>; \
};
/ {
#address-cells = <1>;
#size-cells = <1>;