realtek: pcs: rtl839x: setup SerDes in PCS driver
authorJonas Jelonek <jelonek.jonas@gmail.com>
Sun, 9 Nov 2025 13:29:25 +0000 (13:29 +0000)
committerStijn Tintel <stijn@linux-ipv6.be>
Fri, 9 Jan 2026 12:32:52 +0000 (14:32 +0200)
Add the SerDes setup hooks in the PCS driver for RTL839x so that
pcs_config actually triggers configuration. Adjust the DTS of all
devices accordingly by adding pcs-handles and dropping phy-handles.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21360
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
target/linux/realtek/dts/rtl8393_d-link_dgs-1210-52.dts
target/linux/realtek/dts/rtl8393_hpe_1920-48g-poe.dts
target/linux/realtek/dts/rtl8393_hpe_1920-48g.dts
target/linux/realtek/dts/rtl8393_hpe_1920.dtsi
target/linux/realtek/dts/rtl8393_netgear_gs750e.dts
target/linux/realtek/dts/rtl8393_panasonic_m48eg-pn28480k.dts
target/linux/realtek/dts/rtl8393_tplink_sg2452p-v4.dts
target/linux/realtek/dts/rtl8393_zyxel_gs1900-48-a1.dts
target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c

index 90d6db77aea8914d5306a084359994ba07e1ad27..d43c1b2e88de011fd5b2eb3cec4deab03f3da5a6 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               SWITCH_PORT(0, 1, qsgmii)
-               SWITCH_PORT(1, 2, qsgmii)
-               SWITCH_PORT(2, 3, qsgmii)
-               SWITCH_PORT(3, 4, qsgmii)
-               SWITCH_PORT(4, 5, qsgmii)
-               SWITCH_PORT(5, 6, qsgmii)
-               SWITCH_PORT(6, 7, qsgmii)
-               SWITCH_PORT(7, 8, qsgmii)
-
-               SWITCH_PORT(8, 9, qsgmii)
-               SWITCH_PORT(9, 10, qsgmii)
-               SWITCH_PORT(10, 11, qsgmii)
-               SWITCH_PORT(11, 12, qsgmii)
-               SWITCH_PORT(12, 13, qsgmii)
-               SWITCH_PORT(13, 14, qsgmii)
-               SWITCH_PORT(14, 15, qsgmii)
-               SWITCH_PORT(15, 16, qsgmii)
-
-               SWITCH_PORT(16, 17, qsgmii)
-               SWITCH_PORT(17, 18, qsgmii)
-               SWITCH_PORT(18, 19, qsgmii)
-               SWITCH_PORT(19, 20, qsgmii)
-               SWITCH_PORT(20, 21, qsgmii)
-               SWITCH_PORT(21, 22, qsgmii)
-               SWITCH_PORT(22, 23, qsgmii)
-               SWITCH_PORT(23, 24, qsgmii)
-
-               SWITCH_PORT(24, 25, qsgmii)
-               SWITCH_PORT(25, 26, qsgmii)
-               SWITCH_PORT(26, 27, qsgmii)
-               SWITCH_PORT(27, 28, qsgmii)
-               SWITCH_PORT(28, 29, qsgmii)
-               SWITCH_PORT(29, 30, qsgmii)
-               SWITCH_PORT(30, 31, qsgmii)
-               SWITCH_PORT(31, 32, qsgmii)
-
-               SWITCH_PORT(32, 33, qsgmii)
-               SWITCH_PORT(33, 34, qsgmii)
-               SWITCH_PORT(34, 35, qsgmii)
-               SWITCH_PORT(35, 36, qsgmii)
-               SWITCH_PORT(36, 37, qsgmii)
-               SWITCH_PORT(37, 38, qsgmii)
-               SWITCH_PORT(38, 39, qsgmii)
-               SWITCH_PORT(39, 40, qsgmii)
-
-               SWITCH_PORT(40, 41, qsgmii)
-               SWITCH_PORT(41, 42, qsgmii)
-               SWITCH_PORT(42, 43, qsgmii)
-               SWITCH_PORT(43, 44, qsgmii)
-               SWITCH_PORT(44, 45, qsgmii)
-               SWITCH_PORT(45, 46, qsgmii)
-               SWITCH_PORT(46, 47, qsgmii)
-               SWITCH_PORT(47, 48, qsgmii)
-
-               SWITCH_PORT(48, 49, qsgmii)
-               SWITCH_PORT(49, 50, qsgmii)
-               SWITCH_PORT(50, 51, qsgmii)
-               SWITCH_PORT(51, 52, qsgmii)
+               SWITCH_PORT_SDS(0, 1, 0, qsgmii)
+               SWITCH_PORT_SDS(1, 2, 0, qsgmii)
+               SWITCH_PORT_SDS(2, 3, 0, qsgmii)
+               SWITCH_PORT_SDS(3, 4, 0, qsgmii)
+               SWITCH_PORT_SDS(4, 5, 1, qsgmii)
+               SWITCH_PORT_SDS(5, 6, 1, qsgmii)
+               SWITCH_PORT_SDS(6, 7, 1, qsgmii)
+               SWITCH_PORT_SDS(7, 8, 1, qsgmii)
+
+               SWITCH_PORT_SDS(8, 9, 2, qsgmii)
+               SWITCH_PORT_SDS(9, 10, 2, qsgmii)
+               SWITCH_PORT_SDS(10, 11, 2, qsgmii)
+               SWITCH_PORT_SDS(11, 12, 2, qsgmii)
+               SWITCH_PORT_SDS(12, 13, 3, qsgmii)
+               SWITCH_PORT_SDS(13, 14, 3, qsgmii)
+               SWITCH_PORT_SDS(14, 15, 3, qsgmii)
+               SWITCH_PORT_SDS(15, 16, 3, qsgmii)
+
+               SWITCH_PORT_SDS(16, 17, 4, qsgmii)
+               SWITCH_PORT_SDS(17, 18, 4, qsgmii)
+               SWITCH_PORT_SDS(18, 19, 4, qsgmii)
+               SWITCH_PORT_SDS(19, 20, 4, qsgmii)
+               SWITCH_PORT_SDS(20, 21, 5, qsgmii)
+               SWITCH_PORT_SDS(21, 22, 5, qsgmii)
+               SWITCH_PORT_SDS(22, 23, 5, qsgmii)
+               SWITCH_PORT_SDS(23, 24, 5, qsgmii)
+
+               SWITCH_PORT_SDS(24, 25, 6, qsgmii)
+               SWITCH_PORT_SDS(25, 26, 6, qsgmii)
+               SWITCH_PORT_SDS(26, 27, 6, qsgmii)
+               SWITCH_PORT_SDS(27, 28, 6, qsgmii)
+               SWITCH_PORT_SDS(28, 29, 7, qsgmii)
+               SWITCH_PORT_SDS(29, 30, 7, qsgmii)
+               SWITCH_PORT_SDS(30, 31, 7, qsgmii)
+               SWITCH_PORT_SDS(31, 32, 7, qsgmii)
+
+               SWITCH_PORT_SDS(32, 33, 8, qsgmii)
+               SWITCH_PORT_SDS(33, 34, 8, qsgmii)
+               SWITCH_PORT_SDS(34, 35, 8, qsgmii)
+               SWITCH_PORT_SDS(35, 36, 8, qsgmii)
+               SWITCH_PORT_SDS(36, 37, 9, qsgmii)
+               SWITCH_PORT_SDS(37, 38, 9, qsgmii)
+               SWITCH_PORT_SDS(38, 39, 9, qsgmii)
+               SWITCH_PORT_SDS(39, 40, 9, qsgmii)
+
+               SWITCH_PORT_SDS(40, 41, 10, qsgmii)
+               SWITCH_PORT_SDS(41, 42, 10, qsgmii)
+               SWITCH_PORT_SDS(42, 43, 10, qsgmii)
+               SWITCH_PORT_SDS(43, 44, 10, qsgmii)
+               SWITCH_PORT_SDS(44, 45, 11, qsgmii)
+               SWITCH_PORT_SDS(45, 46, 11, qsgmii)
+               SWITCH_PORT_SDS(46, 47, 11, qsgmii)
+               SWITCH_PORT_SDS(47, 48, 11, qsgmii)
+
+               SWITCH_PORT_SDS(48, 49, 12, qsgmii)
+               SWITCH_PORT_SDS(49, 50, 12, qsgmii)
+               SWITCH_PORT_SDS(50, 51, 12, qsgmii)
+               SWITCH_PORT_SDS(51, 52, 12, qsgmii)
 
                /* CPU-Port */
                port@52 {
index 3d6ae78840d1fe8ce01dca4d9ee18893bea0a173..43504d7f7cac3916471d0816ee09ca424979e790 100644 (file)
 
 &switch0 {
        ports {
-               SWITCH_PORT(48, 49, qsgmii)
-               SWITCH_PORT(49, 50, qsgmii)
-               SWITCH_PORT(50, 51, qsgmii)
-               SWITCH_PORT(51, 52, qsgmii)
+               SWITCH_PORT_SDS(48, 49, 12, qsgmii)
+               SWITCH_PORT_SDS(49, 50, 12, qsgmii)
+               SWITCH_PORT_SDS(50, 51, 12, qsgmii)
+               SWITCH_PORT_SDS(51, 52, 12, qsgmii)
        };
 };
 
index a59c683fecd22e079c0b14c3a59d0966b081fc37..fd2363145f48aef261b50fb7935d4aafe8de56b3 100644 (file)
@@ -90,9 +90,9 @@
 
 &switch0 {
        ports {
-               SWITCH_PORT(48, 50, qsgmii)
-               SWITCH_PORT(49, 52, qsgmii)
-               SWITCH_PORT(50, 49, qsgmii)
-               SWITCH_PORT(51, 51, qsgmii)
+               SWITCH_PORT_SDS(48, 50, 12, qsgmii)
+               SWITCH_PORT_SDS(49, 52, 12, qsgmii)
+               SWITCH_PORT_SDS(50, 49, 12, qsgmii)
+               SWITCH_PORT_SDS(51, 51, 12, qsgmii)
        };
 };
index 065b87f68da22997c447fe5b259b0768e5caf349..1277c2ce5826fecee8ca5f0b0be1f2bc5c35693a 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               SWITCH_PORT(0, 1, qsgmii)
-               SWITCH_PORT(1, 2, qsgmii)
-               SWITCH_PORT(2, 3, qsgmii)
-               SWITCH_PORT(3, 4, qsgmii)
-               SWITCH_PORT(4, 5, qsgmii)
-               SWITCH_PORT(5, 6, qsgmii)
-               SWITCH_PORT(6, 7, qsgmii)
-               SWITCH_PORT(7, 8, qsgmii)
-
-               SWITCH_PORT(8, 9, qsgmii)
-               SWITCH_PORT(9, 10, qsgmii)
-               SWITCH_PORT(10, 11, qsgmii)
-               SWITCH_PORT(11, 12, qsgmii)
-               SWITCH_PORT(12, 13, qsgmii)
-               SWITCH_PORT(13, 14, qsgmii)
-               SWITCH_PORT(14, 15, qsgmii)
-               SWITCH_PORT(15, 16, qsgmii)
-
-               SWITCH_PORT(16, 17, qsgmii)
-               SWITCH_PORT(17, 18, qsgmii)
-               SWITCH_PORT(18, 19, qsgmii)
-               SWITCH_PORT(19, 20, qsgmii)
-               SWITCH_PORT(20, 21, qsgmii)
-               SWITCH_PORT(21, 22, qsgmii)
-               SWITCH_PORT(22, 23, qsgmii)
-               SWITCH_PORT(23, 24, qsgmii)
-
-               SWITCH_PORT(24, 25, qsgmii)
-               SWITCH_PORT(25, 26, qsgmii)
-               SWITCH_PORT(26, 27, qsgmii)
-               SWITCH_PORT(27, 28, qsgmii)
-               SWITCH_PORT(28, 29, qsgmii)
-               SWITCH_PORT(29, 30, qsgmii)
-               SWITCH_PORT(30, 31, qsgmii)
-               SWITCH_PORT(31, 32, qsgmii)
-
-               SWITCH_PORT(32, 33, qsgmii)
-               SWITCH_PORT(33, 34, qsgmii)
-               SWITCH_PORT(34, 35, qsgmii)
-               SWITCH_PORT(35, 36, qsgmii)
-               SWITCH_PORT(36, 37, qsgmii)
-               SWITCH_PORT(37, 38, qsgmii)
-               SWITCH_PORT(38, 39, qsgmii)
-               SWITCH_PORT(39, 40, qsgmii)
-
-               SWITCH_PORT(40, 41, qsgmii)
-               SWITCH_PORT(41, 42, qsgmii)
-               SWITCH_PORT(42, 43, qsgmii)
-               SWITCH_PORT(43, 44, qsgmii)
-               SWITCH_PORT(44, 45, qsgmii)
-               SWITCH_PORT(45, 46, qsgmii)
-               SWITCH_PORT(46, 47, qsgmii)
-               SWITCH_PORT(47, 48, qsgmii)
+               SWITCH_PORT_SDS(0, 1, 0, qsgmii)
+               SWITCH_PORT_SDS(1, 2, 0, qsgmii)
+               SWITCH_PORT_SDS(2, 3, 0, qsgmii)
+               SWITCH_PORT_SDS(3, 4, 0, qsgmii)
+               SWITCH_PORT_SDS(4, 5, 1, qsgmii)
+               SWITCH_PORT_SDS(5, 6, 1, qsgmii)
+               SWITCH_PORT_SDS(6, 7, 1, qsgmii)
+               SWITCH_PORT_SDS(7, 8, 1, qsgmii)
+
+               SWITCH_PORT_SDS(8, 9, 2, qsgmii)
+               SWITCH_PORT_SDS(9, 10, 2, qsgmii)
+               SWITCH_PORT_SDS(10, 11, 2, qsgmii)
+               SWITCH_PORT_SDS(11, 12, 2, qsgmii)
+               SWITCH_PORT_SDS(12, 13, 3, qsgmii)
+               SWITCH_PORT_SDS(13, 14, 3, qsgmii)
+               SWITCH_PORT_SDS(14, 15, 3, qsgmii)
+               SWITCH_PORT_SDS(15, 16, 3, qsgmii)
+
+               SWITCH_PORT_SDS(16, 17, 4, qsgmii)
+               SWITCH_PORT_SDS(17, 18, 4, qsgmii)
+               SWITCH_PORT_SDS(18, 19, 4, qsgmii)
+               SWITCH_PORT_SDS(19, 20, 4, qsgmii)
+               SWITCH_PORT_SDS(20, 21, 5, qsgmii)
+               SWITCH_PORT_SDS(21, 22, 5, qsgmii)
+               SWITCH_PORT_SDS(22, 23, 5, qsgmii)
+               SWITCH_PORT_SDS(23, 24, 5, qsgmii)
+
+               SWITCH_PORT_SDS(24, 25, 6, qsgmii)
+               SWITCH_PORT_SDS(25, 26, 6, qsgmii)
+               SWITCH_PORT_SDS(26, 27, 6, qsgmii)
+               SWITCH_PORT_SDS(27, 28, 6, qsgmii)
+               SWITCH_PORT_SDS(28, 29, 7, qsgmii)
+               SWITCH_PORT_SDS(29, 30, 7, qsgmii)
+               SWITCH_PORT_SDS(30, 31, 7, qsgmii)
+               SWITCH_PORT_SDS(31, 32, 7, qsgmii)
+
+               SWITCH_PORT_SDS(32, 33, 8, qsgmii)
+               SWITCH_PORT_SDS(33, 34, 8, qsgmii)
+               SWITCH_PORT_SDS(34, 35, 8, qsgmii)
+               SWITCH_PORT_SDS(35, 36, 8, qsgmii)
+               SWITCH_PORT_SDS(36, 37, 9, qsgmii)
+               SWITCH_PORT_SDS(37, 38, 9, qsgmii)
+               SWITCH_PORT_SDS(38, 39, 9, qsgmii)
+               SWITCH_PORT_SDS(39, 40, 9, qsgmii)
+
+               SWITCH_PORT_SDS(40, 41, 10, qsgmii)
+               SWITCH_PORT_SDS(41, 42, 10, qsgmii)
+               SWITCH_PORT_SDS(42, 43, 10, qsgmii)
+               SWITCH_PORT_SDS(43, 44, 10, qsgmii)
+               SWITCH_PORT_SDS(44, 45, 11, qsgmii)
+               SWITCH_PORT_SDS(45, 46, 11, qsgmii)
+               SWITCH_PORT_SDS(46, 47, 11, qsgmii)
+               SWITCH_PORT_SDS(47, 48, 11, qsgmii)
 
                port@52 {
                        ethernet = <&ethernet0>;
index cde143264d8f56ee4f98aec593e28d3b8485b88b..7a27bec20b73e2dcbb01abcf293abe0af2687507 100644 (file)
        EXTERNAL_PHY(45)
        EXTERNAL_PHY(46)
        EXTERNAL_PHY(47)
-
-       /* RTL8393 Internal SerDes */
-       INTERNAL_PHY(48)
-       INTERNAL_PHY(49)
 };
 
 &switch0 {
                #address-cells = <1>;
                #size-cells = <0>;
 
-               SWITCH_PORT(0, 1, qsgmii)
-               SWITCH_PORT(1, 2, qsgmii)
-               SWITCH_PORT(2, 3, qsgmii)
-               SWITCH_PORT(3, 4, qsgmii)
-               SWITCH_PORT(4, 5, qsgmii)
-               SWITCH_PORT(5, 6, qsgmii)
-               SWITCH_PORT(6, 7, qsgmii)
-               SWITCH_PORT(7, 8, qsgmii)
-
-               SWITCH_PORT(8, 9, qsgmii)
-               SWITCH_PORT(9, 10, qsgmii)
-               SWITCH_PORT(10, 11, qsgmii)
-               SWITCH_PORT(11, 12, qsgmii)
-               SWITCH_PORT(12, 13, qsgmii)
-               SWITCH_PORT(13, 14, qsgmii)
-               SWITCH_PORT(14, 15, qsgmii)
-               SWITCH_PORT(15, 16, qsgmii)
-
-               SWITCH_PORT(16, 17, qsgmii)
-               SWITCH_PORT(17, 18, qsgmii)
-               SWITCH_PORT(18, 19, qsgmii)
-               SWITCH_PORT(19, 20, qsgmii)
-               SWITCH_PORT(20, 21, qsgmii)
-               SWITCH_PORT(21, 22, qsgmii)
-               SWITCH_PORT(22, 23, qsgmii)
-               SWITCH_PORT(23, 24, qsgmii)
-
-               SWITCH_PORT(24, 25, qsgmii)
-               SWITCH_PORT(25, 26, qsgmii)
-               SWITCH_PORT(26, 27, qsgmii)
-               SWITCH_PORT(27, 28, qsgmii)
-               SWITCH_PORT(28, 29, qsgmii)
-               SWITCH_PORT(29, 30, qsgmii)
-               SWITCH_PORT(30, 31, qsgmii)
-               SWITCH_PORT(31, 32, qsgmii)
-
-               SWITCH_PORT(32, 33, qsgmii)
-               SWITCH_PORT(33, 34, qsgmii)
-               SWITCH_PORT(34, 35, qsgmii)
-               SWITCH_PORT(35, 36, qsgmii)
-               SWITCH_PORT(36, 37, qsgmii)
-               SWITCH_PORT(37, 38, qsgmii)
-               SWITCH_PORT(38, 39, qsgmii)
-               SWITCH_PORT(39, 40, qsgmii)
-
-               SWITCH_PORT(40, 41, qsgmii)
-               SWITCH_PORT(41, 42, qsgmii)
-               SWITCH_PORT(42, 43, qsgmii)
-               SWITCH_PORT(43, 44, qsgmii)
-               SWITCH_PORT(44, 45, qsgmii)
-               SWITCH_PORT(45, 46, qsgmii)
-               SWITCH_PORT(46, 47, qsgmii)
-               SWITCH_PORT(47, 48, qsgmii)
-
-               /* TODO: fixed link SFP is not right */
-               SWITCH_SFP_PORT(48, 49, sgmii)
-               SWITCH_SFP_PORT(49, 50, sgmii)
+               SWITCH_PORT_SDS(0, 1, 0, qsgmii)
+               SWITCH_PORT_SDS(1, 2, 0, qsgmii)
+               SWITCH_PORT_SDS(2, 3, 0, qsgmii)
+               SWITCH_PORT_SDS(3, 4, 0, qsgmii)
+               SWITCH_PORT_SDS(4, 5, 1, qsgmii)
+               SWITCH_PORT_SDS(5, 6, 1, qsgmii)
+               SWITCH_PORT_SDS(6, 7, 1, qsgmii)
+               SWITCH_PORT_SDS(7, 8, 1, qsgmii)
+
+               SWITCH_PORT_SDS(8, 9, 2, qsgmii)
+               SWITCH_PORT_SDS(9, 10, 2, qsgmii)
+               SWITCH_PORT_SDS(10, 11, 2, qsgmii)
+               SWITCH_PORT_SDS(11, 12, 2, qsgmii)
+               SWITCH_PORT_SDS(12, 13, 3, qsgmii)
+               SWITCH_PORT_SDS(13, 14, 3, qsgmii)
+               SWITCH_PORT_SDS(14, 15, 3, qsgmii)
+               SWITCH_PORT_SDS(15, 16, 3, qsgmii)
+
+               SWITCH_PORT_SDS(16, 17, 4, qsgmii)
+               SWITCH_PORT_SDS(17, 18, 4, qsgmii)
+               SWITCH_PORT_SDS(18, 19, 4, qsgmii)
+               SWITCH_PORT_SDS(19, 20, 4, qsgmii)
+               SWITCH_PORT_SDS(20, 21, 5, qsgmii)
+               SWITCH_PORT_SDS(21, 22, 5, qsgmii)
+               SWITCH_PORT_SDS(22, 23, 5, qsgmii)
+               SWITCH_PORT_SDS(23, 24, 5, qsgmii)
+
+               SWITCH_PORT_SDS(24, 25, 6, qsgmii)
+               SWITCH_PORT_SDS(25, 26, 6, qsgmii)
+               SWITCH_PORT_SDS(26, 27, 6, qsgmii)
+               SWITCH_PORT_SDS(27, 28, 6, qsgmii)
+               SWITCH_PORT_SDS(28, 29, 7, qsgmii)
+               SWITCH_PORT_SDS(29, 30, 7, qsgmii)
+               SWITCH_PORT_SDS(30, 31, 7, qsgmii)
+               SWITCH_PORT_SDS(31, 32, 7, qsgmii)
+
+               SWITCH_PORT_SDS(32, 33, 8, qsgmii)
+               SWITCH_PORT_SDS(33, 34, 8, qsgmii)
+               SWITCH_PORT_SDS(34, 35, 8, qsgmii)
+               SWITCH_PORT_SDS(35, 36, 8, qsgmii)
+               SWITCH_PORT_SDS(36, 37, 9, qsgmii)
+               SWITCH_PORT_SDS(37, 38, 9, qsgmii)
+               SWITCH_PORT_SDS(38, 39, 9, qsgmii)
+               SWITCH_PORT_SDS(39, 40, 9, qsgmii)
+
+               SWITCH_PORT_SDS(40, 41, 10, qsgmii)
+               SWITCH_PORT_SDS(41, 42, 10, qsgmii)
+               SWITCH_PORT_SDS(42, 43, 10, qsgmii)
+               SWITCH_PORT_SDS(43, 44, 10, qsgmii)
+               SWITCH_PORT_SDS(44, 45, 11, qsgmii)
+               SWITCH_PORT_SDS(45, 46, 11, qsgmii)
+               SWITCH_PORT_SDS(46, 47, 11, qsgmii)
+               SWITCH_PORT_SDS(47, 48, 11, qsgmii)
+
+               port@48 {
+                       reg = <48>;
+                       label = "lan49";
+                       pcs-handle = <&serdes12>;
+                       phy-mode = "1000base-x";
+                       managed = "in-band-status";
+                       /* i2c and gpio not yet identified */
+               };
+               port@49 {
+                       reg = <49>;
+                       label = "lan50";
+                       pcs-handle = <&serdes13>;
+                       phy-mode = "1000base-x";
+                       managed = "in-band-status";
+                       /* i2c and gpio not yet identified */
+               };
 
                /* CPU-Port */
                port@52 {
index c7e23e9c965d2a0b353b7d6931c72e885dbe3fd1..972c39b50c0ac57ee7c56b11f63f0bff58efc580 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               SWITCH_PORT(0, 1, qsgmii)
-               SWITCH_PORT(1, 2, qsgmii)
-               SWITCH_PORT(2, 3, qsgmii)
-               SWITCH_PORT(3, 4, qsgmii)
-               SWITCH_PORT(4, 5, qsgmii)
-               SWITCH_PORT(5, 6, qsgmii)
-               SWITCH_PORT(6, 7, qsgmii)
-               SWITCH_PORT(7, 8, qsgmii)
-
-               SWITCH_PORT(8, 9, qsgmii)
-               SWITCH_PORT(9, 10, qsgmii)
-               SWITCH_PORT(10, 11, qsgmii)
-               SWITCH_PORT(11, 12, qsgmii)
-               SWITCH_PORT(12, 13, qsgmii)
-               SWITCH_PORT(13, 14, qsgmii)
-               SWITCH_PORT(14, 15, qsgmii)
-               SWITCH_PORT(15, 16, qsgmii)
-
-               SWITCH_PORT(16, 17, qsgmii)
-               SWITCH_PORT(17, 18, qsgmii)
-               SWITCH_PORT(18, 19, qsgmii)
-               SWITCH_PORT(19, 20, qsgmii)
-               SWITCH_PORT(20, 21, qsgmii)
-               SWITCH_PORT(21, 22, qsgmii)
-               SWITCH_PORT(22, 23, qsgmii)
-               SWITCH_PORT(23, 24, qsgmii)
-
-               SWITCH_PORT(24, 25, qsgmii)
-               SWITCH_PORT(25, 26, qsgmii)
-               SWITCH_PORT(26, 27, qsgmii)
-               SWITCH_PORT(27, 28, qsgmii)
-               SWITCH_PORT(28, 29, qsgmii)
-               SWITCH_PORT(29, 30, qsgmii)
-               SWITCH_PORT(30, 31, qsgmii)
-               SWITCH_PORT(31, 32, qsgmii)
-
-               SWITCH_PORT(32, 33, qsgmii)
-               SWITCH_PORT(33, 34, qsgmii)
-               SWITCH_PORT(34, 35, qsgmii)
-               SWITCH_PORT(35, 36, qsgmii)
-               SWITCH_PORT(36, 37, qsgmii)
-               SWITCH_PORT(37, 38, qsgmii)
-               SWITCH_PORT(38, 39, qsgmii)
-               SWITCH_PORT(39, 40, qsgmii)
-
-               SWITCH_PORT(40, 41, qsgmii)
-               SWITCH_PORT(41, 42, qsgmii)
-               SWITCH_PORT(42, 43, qsgmii)
-               SWITCH_PORT(43, 44, qsgmii)
-               SWITCH_PORT(44, 45, qsgmii)
-               SWITCH_PORT(45, 46, qsgmii)
-               SWITCH_PORT(46, 47, qsgmii)
-               SWITCH_PORT(47, 48, qsgmii)
+               SWITCH_PORT_SDS(0, 1, 0, qsgmii)
+               SWITCH_PORT_SDS(1, 2, 0, qsgmii)
+               SWITCH_PORT_SDS(2, 3, 0, qsgmii)
+               SWITCH_PORT_SDS(3, 4, 0, qsgmii)
+               SWITCH_PORT_SDS(4, 5, 1, qsgmii)
+               SWITCH_PORT_SDS(5, 6, 1, qsgmii)
+               SWITCH_PORT_SDS(6, 7, 1, qsgmii)
+               SWITCH_PORT_SDS(7, 8, 1, qsgmii)
+
+               SWITCH_PORT_SDS(8, 9, 2, qsgmii)
+               SWITCH_PORT_SDS(9, 10, 2, qsgmii)
+               SWITCH_PORT_SDS(10, 11, 2, qsgmii)
+               SWITCH_PORT_SDS(11, 12, 2, qsgmii)
+               SWITCH_PORT_SDS(12, 13, 3, qsgmii)
+               SWITCH_PORT_SDS(13, 14, 3, qsgmii)
+               SWITCH_PORT_SDS(14, 15, 3, qsgmii)
+               SWITCH_PORT_SDS(15, 16, 3, qsgmii)
+
+               SWITCH_PORT_SDS(16, 17, 4, qsgmii)
+               SWITCH_PORT_SDS(17, 18, 4, qsgmii)
+               SWITCH_PORT_SDS(18, 19, 4, qsgmii)
+               SWITCH_PORT_SDS(19, 20, 4, qsgmii)
+               SWITCH_PORT_SDS(20, 21, 5, qsgmii)
+               SWITCH_PORT_SDS(21, 22, 5, qsgmii)
+               SWITCH_PORT_SDS(22, 23, 5, qsgmii)
+               SWITCH_PORT_SDS(23, 24, 5, qsgmii)
+
+               SWITCH_PORT_SDS(24, 25, 6, qsgmii)
+               SWITCH_PORT_SDS(25, 26, 6, qsgmii)
+               SWITCH_PORT_SDS(26, 27, 6, qsgmii)
+               SWITCH_PORT_SDS(27, 28, 6, qsgmii)
+               SWITCH_PORT_SDS(28, 29, 7, qsgmii)
+               SWITCH_PORT_SDS(29, 30, 7, qsgmii)
+               SWITCH_PORT_SDS(30, 31, 7, qsgmii)
+               SWITCH_PORT_SDS(31, 32, 7, qsgmii)
+
+               SWITCH_PORT_SDS(32, 33, 8, qsgmii)
+               SWITCH_PORT_SDS(33, 34, 8, qsgmii)
+               SWITCH_PORT_SDS(34, 35, 8, qsgmii)
+               SWITCH_PORT_SDS(35, 36, 8, qsgmii)
+               SWITCH_PORT_SDS(36, 37, 9, qsgmii)
+               SWITCH_PORT_SDS(37, 38, 9, qsgmii)
+               SWITCH_PORT_SDS(38, 39, 9, qsgmii)
+               SWITCH_PORT_SDS(39, 40, 9, qsgmii)
+
+               SWITCH_PORT_SDS(40, 41, 10, qsgmii)
+               SWITCH_PORT_SDS(41, 42, 10, qsgmii)
+               SWITCH_PORT_SDS(42, 43, 10, qsgmii)
+               SWITCH_PORT_SDS(43, 44, 10, qsgmii)
+               SWITCH_PORT_SDS(44, 45, 11, qsgmii)
+               SWITCH_PORT_SDS(45, 46, 11, qsgmii)
+               SWITCH_PORT_SDS(46, 47, 11, qsgmii)
+               SWITCH_PORT_SDS(47, 48, 11, qsgmii)
 
                port@52 {
                        ethernet = <&ethernet0>;
index 2941a8b5a7b370ee44cd15a89987676b74f384ce..385cb3cf5d50b937035710eed31e6ea246c7c001 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               SWITCH_PORT(0, 1, qsgmii)
-               SWITCH_PORT(1, 2, qsgmii)
-               SWITCH_PORT(2, 3, qsgmii)
-               SWITCH_PORT(3, 4, qsgmii)
-               SWITCH_PORT(4, 5, qsgmii)
-               SWITCH_PORT(5, 6, qsgmii)
-               SWITCH_PORT(6, 7, qsgmii)
-               SWITCH_PORT(7, 8, qsgmii)
-
-               SWITCH_PORT(8, 9, qsgmii)
-               SWITCH_PORT(9, 10, qsgmii)
-               SWITCH_PORT(10, 11, qsgmii)
-               SWITCH_PORT(11, 12, qsgmii)
-               SWITCH_PORT(12, 13, qsgmii)
-               SWITCH_PORT(13, 14, qsgmii)
-               SWITCH_PORT(14, 15, qsgmii)
-               SWITCH_PORT(15, 16, qsgmii)
-
-               SWITCH_PORT(16, 17, qsgmii)
-               SWITCH_PORT(17, 18, qsgmii)
-               SWITCH_PORT(18, 19, qsgmii)
-               SWITCH_PORT(19, 20, qsgmii)
-               SWITCH_PORT(20, 21, qsgmii)
-               SWITCH_PORT(21, 22, qsgmii)
-               SWITCH_PORT(22, 23, qsgmii)
-               SWITCH_PORT(23, 24, qsgmii)
-
-               SWITCH_PORT(24, 25, qsgmii)
-               SWITCH_PORT(25, 26, qsgmii)
-               SWITCH_PORT(26, 27, qsgmii)
-               SWITCH_PORT(27, 28, qsgmii)
-               SWITCH_PORT(28, 29, qsgmii)
-               SWITCH_PORT(29, 30, qsgmii)
-               SWITCH_PORT(30, 31, qsgmii)
-               SWITCH_PORT(31, 32, qsgmii)
-
-               SWITCH_PORT(32, 33, qsgmii)
-               SWITCH_PORT(33, 34, qsgmii)
-               SWITCH_PORT(34, 35, qsgmii)
-               SWITCH_PORT(35, 36, qsgmii)
-               SWITCH_PORT(36, 37, qsgmii)
-               SWITCH_PORT(37, 38, qsgmii)
-               SWITCH_PORT(38, 39, qsgmii)
-               SWITCH_PORT(39, 40, qsgmii)
-
-               SWITCH_PORT(40, 41, qsgmii)
-               SWITCH_PORT(41, 42, qsgmii)
-               SWITCH_PORT(42, 43, qsgmii)
-               SWITCH_PORT(43, 44, qsgmii)
-               SWITCH_PORT(44, 45, qsgmii)
-               SWITCH_PORT(45, 46, qsgmii)
-               SWITCH_PORT(46, 47, qsgmii)
-               SWITCH_PORT(47, 48, qsgmii)
+               SWITCH_PORT_SDS(0, 1, 0, qsgmii)
+               SWITCH_PORT_SDS(1, 2, 0, qsgmii)
+               SWITCH_PORT_SDS(2, 3, 0, qsgmii)
+               SWITCH_PORT_SDS(3, 4, 0, qsgmii)
+               SWITCH_PORT_SDS(4, 5, 1, qsgmii)
+               SWITCH_PORT_SDS(5, 6, 1, qsgmii)
+               SWITCH_PORT_SDS(6, 7, 1, qsgmii)
+               SWITCH_PORT_SDS(7, 8, 1, qsgmii)
+
+               SWITCH_PORT_SDS(8, 9, 2, qsgmii)
+               SWITCH_PORT_SDS(9, 10, 2, qsgmii)
+               SWITCH_PORT_SDS(10, 11, 2, qsgmii)
+               SWITCH_PORT_SDS(11, 12, 2, qsgmii)
+               SWITCH_PORT_SDS(12, 13, 3, qsgmii)
+               SWITCH_PORT_SDS(13, 14, 3, qsgmii)
+               SWITCH_PORT_SDS(14, 15, 3, qsgmii)
+               SWITCH_PORT_SDS(15, 16, 3, qsgmii)
+
+               SWITCH_PORT_SDS(16, 17, 4, qsgmii)
+               SWITCH_PORT_SDS(17, 18, 4, qsgmii)
+               SWITCH_PORT_SDS(18, 19, 4, qsgmii)
+               SWITCH_PORT_SDS(19, 20, 4, qsgmii)
+               SWITCH_PORT_SDS(20, 21, 5, qsgmii)
+               SWITCH_PORT_SDS(21, 22, 5, qsgmii)
+               SWITCH_PORT_SDS(22, 23, 5, qsgmii)
+               SWITCH_PORT_SDS(23, 24, 5, qsgmii)
+
+               SWITCH_PORT_SDS(24, 25, 6, qsgmii)
+               SWITCH_PORT_SDS(25, 26, 6, qsgmii)
+               SWITCH_PORT_SDS(26, 27, 6, qsgmii)
+               SWITCH_PORT_SDS(27, 28, 6, qsgmii)
+               SWITCH_PORT_SDS(28, 29, 7, qsgmii)
+               SWITCH_PORT_SDS(29, 30, 7, qsgmii)
+               SWITCH_PORT_SDS(30, 31, 7, qsgmii)
+               SWITCH_PORT_SDS(31, 32, 7, qsgmii)
+
+               SWITCH_PORT_SDS(32, 33, 8, qsgmii)
+               SWITCH_PORT_SDS(33, 34, 8, qsgmii)
+               SWITCH_PORT_SDS(34, 35, 8, qsgmii)
+               SWITCH_PORT_SDS(35, 36, 8, qsgmii)
+               SWITCH_PORT_SDS(36, 37, 9, qsgmii)
+               SWITCH_PORT_SDS(37, 38, 9, qsgmii)
+               SWITCH_PORT_SDS(38, 39, 9, qsgmii)
+               SWITCH_PORT_SDS(39, 40, 9, qsgmii)
+
+               SWITCH_PORT_SDS(40, 41, 10, qsgmii)
+               SWITCH_PORT_SDS(41, 42, 10, qsgmii)
+               SWITCH_PORT_SDS(42, 43, 10, qsgmii)
+               SWITCH_PORT_SDS(43, 44, 10, qsgmii)
+               SWITCH_PORT_SDS(44, 45, 11, qsgmii)
+               SWITCH_PORT_SDS(45, 46, 11, qsgmii)
+               SWITCH_PORT_SDS(46, 47, 11, qsgmii)
+               SWITCH_PORT_SDS(47, 48, 11, qsgmii)
 
                /* CPU-Port */
                port@52 {
index 519be703cf2d665c155c2ef77e3de8ac3353bf26..d492c8ecb9f9ae337c68cb8872e02603cafaa63f 100644 (file)
        EXTERNAL_PHY(45)
        EXTERNAL_PHY(46)
        EXTERNAL_PHY(47)
-
-       /* RTL8393 Internal SerDes */
-       INTERNAL_PHY(48)
-       INTERNAL_PHY(49)
 };
 
 &switch0 {
                #address-cells = <1>;
                #size-cells = <0>;
 
-               SWITCH_PORT(0, 1, qsgmii)
-               SWITCH_PORT(1, 2, qsgmii)
-               SWITCH_PORT(2, 3, qsgmii)
-               SWITCH_PORT(3, 4, qsgmii)
-               SWITCH_PORT(4, 5, qsgmii)
-               SWITCH_PORT(5, 6, qsgmii)
-               SWITCH_PORT(6, 7, qsgmii)
-               SWITCH_PORT(7, 8, qsgmii)
-
-               SWITCH_PORT(8, 9, qsgmii)
-               SWITCH_PORT(9, 10, qsgmii)
-               SWITCH_PORT(10, 11, qsgmii)
-               SWITCH_PORT(11, 12, qsgmii)
-               SWITCH_PORT(12, 13, qsgmii)
-               SWITCH_PORT(13, 14, qsgmii)
-               SWITCH_PORT(14, 15, qsgmii)
-               SWITCH_PORT(15, 16, qsgmii)
-
-               SWITCH_PORT(16, 17, qsgmii)
-               SWITCH_PORT(17, 18, qsgmii)
-               SWITCH_PORT(18, 19, qsgmii)
-               SWITCH_PORT(19, 20, qsgmii)
-               SWITCH_PORT(20, 21, qsgmii)
-               SWITCH_PORT(21, 22, qsgmii)
-               SWITCH_PORT(22, 23, qsgmii)
-               SWITCH_PORT(23, 24, qsgmii)
-
-               SWITCH_PORT(24, 25, qsgmii)
-               SWITCH_PORT(25, 26, qsgmii)
-               SWITCH_PORT(26, 27, qsgmii)
-               SWITCH_PORT(27, 28, qsgmii)
-               SWITCH_PORT(28, 29, qsgmii)
-               SWITCH_PORT(29, 30, qsgmii)
-               SWITCH_PORT(30, 31, qsgmii)
-               SWITCH_PORT(31, 32, qsgmii)
-
-               SWITCH_PORT(32, 33, qsgmii)
-               SWITCH_PORT(33, 34, qsgmii)
-               SWITCH_PORT(34, 35, qsgmii)
-               SWITCH_PORT(35, 36, qsgmii)
-               SWITCH_PORT(36, 37, qsgmii)
-               SWITCH_PORT(37, 38, qsgmii)
-               SWITCH_PORT(38, 39, qsgmii)
-               SWITCH_PORT(39, 40, qsgmii)
-
-               SWITCH_PORT(40, 41, qsgmii)
-               SWITCH_PORT(41, 42, qsgmii)
-               SWITCH_PORT(42, 43, qsgmii)
-               SWITCH_PORT(43, 44, qsgmii)
-               SWITCH_PORT(44, 45, qsgmii)
-               SWITCH_PORT(45, 46, qsgmii)
-               SWITCH_PORT(46, 47, qsgmii)
-               SWITCH_PORT(47, 48, qsgmii)
+               SWITCH_PORT_SDS(0, 1, 0, qsgmii)
+               SWITCH_PORT_SDS(1, 2, 0, qsgmii)
+               SWITCH_PORT_SDS(2, 3, 0, qsgmii)
+               SWITCH_PORT_SDS(3, 4, 0, qsgmii)
+               SWITCH_PORT_SDS(4, 5, 1, qsgmii)
+               SWITCH_PORT_SDS(5, 6, 1, qsgmii)
+               SWITCH_PORT_SDS(6, 7, 1, qsgmii)
+               SWITCH_PORT_SDS(7, 8, 1, qsgmii)
+
+               SWITCH_PORT_SDS(8, 9, 2, qsgmii)
+               SWITCH_PORT_SDS(9, 10, 2, qsgmii)
+               SWITCH_PORT_SDS(10, 11, 2, qsgmii)
+               SWITCH_PORT_SDS(11, 12, 2, qsgmii)
+               SWITCH_PORT_SDS(12, 13, 3, qsgmii)
+               SWITCH_PORT_SDS(13, 14, 3, qsgmii)
+               SWITCH_PORT_SDS(14, 15, 3, qsgmii)
+               SWITCH_PORT_SDS(15, 16, 3, qsgmii)
+
+               SWITCH_PORT_SDS(16, 17, 4, qsgmii)
+               SWITCH_PORT_SDS(17, 18, 4, qsgmii)
+               SWITCH_PORT_SDS(18, 19, 4, qsgmii)
+               SWITCH_PORT_SDS(19, 20, 4, qsgmii)
+               SWITCH_PORT_SDS(20, 21, 5, qsgmii)
+               SWITCH_PORT_SDS(21, 22, 5, qsgmii)
+               SWITCH_PORT_SDS(22, 23, 5, qsgmii)
+               SWITCH_PORT_SDS(23, 24, 5, qsgmii)
+
+               SWITCH_PORT_SDS(24, 25, 6, qsgmii)
+               SWITCH_PORT_SDS(25, 26, 6, qsgmii)
+               SWITCH_PORT_SDS(26, 27, 6, qsgmii)
+               SWITCH_PORT_SDS(27, 28, 6, qsgmii)
+               SWITCH_PORT_SDS(28, 29, 7, qsgmii)
+               SWITCH_PORT_SDS(29, 30, 7, qsgmii)
+               SWITCH_PORT_SDS(30, 31, 7, qsgmii)
+               SWITCH_PORT_SDS(31, 32, 7, qsgmii)
+
+               SWITCH_PORT_SDS(32, 33, 8, qsgmii)
+               SWITCH_PORT_SDS(33, 34, 8, qsgmii)
+               SWITCH_PORT_SDS(34, 35, 8, qsgmii)
+               SWITCH_PORT_SDS(35, 36, 8, qsgmii)
+               SWITCH_PORT_SDS(36, 37, 9, qsgmii)
+               SWITCH_PORT_SDS(37, 38, 9, qsgmii)
+               SWITCH_PORT_SDS(38, 39, 9, qsgmii)
+               SWITCH_PORT_SDS(39, 40, 9, qsgmii)
+
+               SWITCH_PORT_SDS(40, 41, 10, qsgmii)
+               SWITCH_PORT_SDS(41, 42, 10, qsgmii)
+               SWITCH_PORT_SDS(42, 43, 10, qsgmii)
+               SWITCH_PORT_SDS(43, 44, 10, qsgmii)
+               SWITCH_PORT_SDS(44, 45, 11, qsgmii)
+               SWITCH_PORT_SDS(45, 46, 11, qsgmii)
+               SWITCH_PORT_SDS(46, 47, 11, qsgmii)
+               SWITCH_PORT_SDS(47, 48, 11, qsgmii)
 
                /* SFP cages */
                port@48 {
                        label = "lan49";
                        pcs-handle = <&serdes12>;
                        phy-mode = "1000base-x";
-                       phy-handle = <&phy48>;
                        managed = "in-band-status";
                        sfp = <&sfp0>;
                };
                        label = "lan50";
                        pcs-handle = <&serdes13>;
                        phy-mode = "1000base-x";
-                       phy-handle = <&phy49>;
                        managed = "in-band-status";
                        sfp = <&sfp1>;
                };
index c02df17fb78c7214dc17967c2f9e62e4542ccfe9..da7a16d5d7e74c882ca2fd90866024c78fb180d4 100644 (file)
@@ -836,7 +836,6 @@ static void rtpcs_839x_sds_init(struct rtpcs_serdes *sds)
        rtpcs_sds_write_bits(sds, 0xa, 0x13, 8, 5, 0x0008);
 }
 
-__maybe_unused
 static int rtpcs_839x_init_serdes_common(struct rtpcs_ctrl *ctrl)
 {
        for (int sds_id = 0; sds_id < ctrl->cfg->serdes_count; sds_id++)
@@ -848,7 +847,6 @@ static int rtpcs_839x_init_serdes_common(struct rtpcs_ctrl *ctrl)
        return 0;
 }
 
-__maybe_unused
 static int rtpcs_839x_setup_serdes(struct rtpcs_serdes *sds,
                                   phy_interface_t if_mode)
 {
@@ -3687,6 +3685,8 @@ static const struct rtpcs_config rtpcs_839x_cfg = {
        .mac_tx_pause_sts       = RTPCS_839X_MAC_TX_PAUSE_STS,
        .serdes_count           = RTPCS_839X_SERDES_CNT,
        .pcs_ops                = &rtpcs_839x_pcs_ops,
+       .init_serdes_common     = rtpcs_839x_init_serdes_common,
+       .setup_serdes           = rtpcs_839x_setup_serdes,
 };
 
 static const struct phylink_pcs_ops rtpcs_930x_pcs_ops = {