[openwrt/openwrt] realtek: mdio: derive phy smi-bus from parent node
LEDE Commits
lede-commits at lists.infradead.org
Wed Jan 21 14:36:23 PST 2026
hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/7e39a2d4857b0f001c78740b6bd72d8221f06566
commit 7e39a2d4857b0f001c78740b6bd72d8221f06566
Author: Markus Stockhausen <markus.stockhausen at gmx.de>
AuthorDate: Mon Jan 12 17:56:31 2026 +0100
realtek: mdio: derive phy smi-bus from parent node
The dts for RTL93xx devices has duplicate data about the
smi bus of a phy node. The parent node declares the number
of the bus and the realtek,smi-address attribute does the
same.
Remove the bus part from the realtek,smi-address attribute
and lookup the bus from the parent node. While we are here
remove all realtek,smi-address attributes where phy id
matches the bus address. The driver will use that as a
fallback.
Signed-off-by: Markus Stockhausen <markus.stockhausen at gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21438
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
.../linux/realtek/dts/rtl9301_linksys_lgs328c.dts | 24 --------
.../realtek/dts/rtl9302_plasmacloud_common.dtsi | 12 ++--
.../linux/realtek/dts/rtl9302_plasmacloud_mcx3.dts | 2 -
.../realtek/dts/rtl9302_zyxel_xgs1010-12-a1.dts | 4 +-
.../realtek/dts/rtl9302_zyxel_xgs1210-12-a1.dts | 4 +-
.../realtek/dts/rtl9302_zyxel_xgs1210-12-b1.dts | 4 +-
.../realtek/dts/rtl9302_zyxel_xgs1250-12-a1.dts | 6 +-
.../realtek/dts/rtl9302_zyxel_xgs1250-12-b1.dts | 6 +-
.../dts/rtl9302_zyxel_xgs1250-12-common.dtsi | 8 ---
.../dts/rtl9302_zyxel_xgs1x10-12-common.dtsi | 8 ---
.../realtek/dts/rtl9303_hasivo_s1100w-8xgt-se.dts | 15 +++--
.../linux/realtek/dts/rtl9311_linksys_lgs352c.dts | 72 ++++++++--------------
.../realtek/dts/rtl9312_plasmacloud_common.dtsi | 46 +++++++-------
.../drivers/net/mdio/mdio-realtek-otto.c | 14 ++---
14 files changed, 73 insertions(+), 152 deletions(-)
diff --git a/target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts b/target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts
index 462bf0b3fc..6440616b52 100644
--- a/target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts
+++ b/target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts
@@ -69,42 +69,34 @@
phy0: ethernet-phy at 0 {
reg = <0>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 0>;
};
phy1: ethernet-phy at 1 {
reg = <1>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 1>;
};
phy2: ethernet-phy at 2 {
reg = <2>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 2>;
};
phy3: ethernet-phy at 3 {
reg = <3>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 3>;
};
phy4: ethernet-phy at 4 {
reg = <4>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 4>;
};
phy5: ethernet-phy at 5 {
reg = <5>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 5>;
};
phy6: ethernet-phy at 6 {
reg = <6>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 6>;
};
phy7: ethernet-phy at 7 {
reg = <7>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 7>;
};
};
@@ -112,42 +104,34 @@
phy8: ethernet-phy at 8 {
reg = <8>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 8>;
};
phy9: ethernet-phy at 9 {
reg = <9>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 9>;
};
phy10: ethernet-phy at 10 {
reg = <10>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 10>;
};
phy11: ethernet-phy at 11 {
reg = <11>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 11>;
};
phy12: ethernet-phy at 12 {
reg = <12>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 12>;
};
phy13: ethernet-phy at 13 {
reg = <13>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 13>;
};
phy14: ethernet-phy at 14 {
reg = <14>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 14>;
};
phy15: ethernet-phy at 15 {
reg = <15>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 15>;
};
};
@@ -155,42 +139,34 @@
phy16: ethernet-phy at 16 {
reg = <16>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <2 16>;
};
phy17: ethernet-phy at 17 {
reg = <17>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <2 17>;
};
phy18: ethernet-phy at 18 {
reg = <18>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <2 18>;
};
phy19: ethernet-phy at 19 {
reg = <19>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <2 19>;
};
phy20: ethernet-phy at 20 {
reg = <20>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <2 20>;
};
phy21: ethernet-phy at 21 {
reg = <21>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <2 21>;
};
phy22: ethernet-phy at 22 {
reg = <22>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <2 22>;
};
phy23: ethernet-phy at 23 {
reg = <23>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <2 23>;
};
};
diff --git a/target/linux/realtek/dts/rtl9302_plasmacloud_common.dtsi b/target/linux/realtek/dts/rtl9302_plasmacloud_common.dtsi
index 682e01a9bf..afba365267 100644
--- a/target/linux/realtek/dts/rtl9302_plasmacloud_common.dtsi
+++ b/target/linux/realtek/dts/rtl9302_plasmacloud_common.dtsi
@@ -138,49 +138,45 @@
phy0: ethernet-phy at 0 {
reg = <0>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 0>;
};
phy1: ethernet-phy at 1 {
reg = <1>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 1>;
};
phy2: ethernet-phy at 2 {
reg = <2>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 2>;
};
phy3: ethernet-phy at 3 {
reg = <3>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 3>;
};
phy8: ethernet-phy at 8 {
reg = <8>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 4>;
+ realtek,smi-address = <4>;
};
phy9: ethernet-phy at 9 {
reg = <9>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 5>;
+ realtek,smi-address = <5>;
};
phy10: ethernet-phy at 10 {
reg = <10>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 6>;
+ realtek,smi-address = <6>;
};
phy11: ethernet-phy at 11 {
reg = <11>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 7>;
+ realtek,smi-address = <7>;
};
};
diff --git a/target/linux/realtek/dts/rtl9302_plasmacloud_mcx3.dts b/target/linux/realtek/dts/rtl9302_plasmacloud_mcx3.dts
index 2a68a2d632..f9d5580325 100644
--- a/target/linux/realtek/dts/rtl9302_plasmacloud_mcx3.dts
+++ b/target/linux/realtek/dts/rtl9302_plasmacloud_mcx3.dts
@@ -155,13 +155,11 @@
phy0: ethernet-phy at 0 {
reg = <0>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 0>;
};
phy1: ethernet-phy at 1 {
reg = <1>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 1>;
};
};
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1010-12-a1.dts b/target/linux/realtek/dts/rtl9302_zyxel_xgs1010-12-a1.dts
index 7a7adbcfc4..e0a308cdd7 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1010-12-a1.dts
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1010-12-a1.dts
@@ -104,9 +104,9 @@
};
&phy24 {
- realtek,smi-address = <1 8>;
+ realtek,smi-address = <8>;
};
&phy25 {
- realtek,smi-address = <2 9>;
+ realtek,smi-address = <9>;
};
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-a1.dts b/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-a1.dts
index 5bdf6039e6..dc8e55b772 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-a1.dts
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-a1.dts
@@ -9,9 +9,9 @@
};
&phy24 {
- realtek,smi-address = <1 8>;
+ realtek,smi-address = <8>;
};
&phy25 {
- realtek,smi-address = <2 9>;
+ realtek,smi-address = <9>;
};
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-b1.dts b/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-b1.dts
index a0735a442a..2a9eeda64a 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-b1.dts
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-b1.dts
@@ -9,9 +9,9 @@
};
&phy24 {
- realtek,smi-address = <1 1>;
+ realtek,smi-address = <1>;
};
&phy25 {
- realtek,smi-address = <2 2>;
+ realtek,smi-address = <2>;
};
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-a1.dts b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-a1.dts
index decd007d1f..7de9e072db 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-a1.dts
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-a1.dts
@@ -13,7 +13,7 @@
phy24: ethernet-phy at 24 {
reg = <24>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 8>;
+ realtek,smi-address = <8>;
// Disabled because we do not know how to bring up again
// reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
@@ -24,7 +24,7 @@
phy25: ethernet-phy at 25 {
reg = <25>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <2 8>;
+ realtek,smi-address = <8>;
// Disabled because we do not know how to bring up again
// reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
@@ -35,7 +35,7 @@
phy26: ethernet-phy at 26 {
reg = <26>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <3 8>;
+ realtek,smi-address = <8>;
// Disabled because we do not know how to bring up again
// reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-b1.dts b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-b1.dts
index 30e19445b2..739f056370 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-b1.dts
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-b1.dts
@@ -12,7 +12,7 @@
phy24: ethernet-phy at 24 {
reg = <24>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 0>;
+ realtek,smi-address = <0>;
// Disabled because we do not know how to bring up again
// reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
@@ -23,7 +23,7 @@
phy25: ethernet-phy at 25 {
reg = <25>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <2 1>;
+ realtek,smi-address = <1>;
// Disabled because we do not know how to bring up again
// reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
@@ -34,7 +34,7 @@
phy26: ethernet-phy at 26 {
reg = <26>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <3 2>;
+ realtek,smi-address = <2>;
// Disabled because we do not know how to bring up again
// reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
#thermal-sensor-cells = <0>;
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi
index 4719cae696..2d20bfc3c2 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi
@@ -222,44 +222,36 @@
phy0: ethernet-phy at 0 {
reg = <0>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 0>;
// Disabled because we do not know how to bring up again
// reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
};
phy1: ethernet-phy at 1 {
reg = <1>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 1>;
};
phy2: ethernet-phy at 2 {
reg = <2>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 2>;
};
phy3: ethernet-phy at 3 {
reg = <3>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 3>;
};
phy4: ethernet-phy at 4 {
reg = <4>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 4>;
};
phy5: ethernet-phy at 5 {
reg = <5>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 5>;
};
phy6: ethernet-phy at 6 {
reg = <6>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 6>;
};
phy7: ethernet-phy at 7 {
reg = <7>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 7>;
};
};
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1x10-12-common.dtsi b/target/linux/realtek/dts/rtl9302_zyxel_xgs1x10-12-common.dtsi
index 61f6109262..c1471b1a00 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1x10-12-common.dtsi
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1x10-12-common.dtsi
@@ -91,44 +91,36 @@
phy0: ethernet-phy at 0 {
reg = <0>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 0>;
// Disabled because we do not know how to bring up again
// reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
};
phy1: ethernet-phy at 1 {
reg = <1>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 1>;
};
phy2: ethernet-phy at 2 {
reg = <2>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 2>;
};
phy3: ethernet-phy at 3 {
reg = <3>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 3>;
};
phy4: ethernet-phy at 4 {
reg = <4>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 4>;
};
phy5: ethernet-phy at 5 {
reg = <5>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 5>;
};
phy6: ethernet-phy at 6 {
reg = <6>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 6>;
};
phy7: ethernet-phy at 7 {
reg = <7>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 7>;
};
};
diff --git a/target/linux/realtek/dts/rtl9303_hasivo_s1100w-8xgt-se.dts b/target/linux/realtek/dts/rtl9303_hasivo_s1100w-8xgt-se.dts
index b16e669aa0..781e452fa2 100644
--- a/target/linux/realtek/dts/rtl9303_hasivo_s1100w-8xgt-se.dts
+++ b/target/linux/realtek/dts/rtl9303_hasivo_s1100w-8xgt-se.dts
@@ -129,25 +129,24 @@
&mdio_bus0 {
phy0: ethernet-phy at 0 {
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 0>;
reg = <0>;
};
phy8: ethernet-phy at 8 {
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 1>;
+ realtek,smi-address = <1>;
reg = <8>;
};
phy16: ethernet-phy at 16 {
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 2>;
+ realtek,smi-address = <2>;
reg = <16>;
};
phy20: ethernet-phy at 20 {
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 3>;
+ realtek,smi-address = <3>;
reg = <20>;
};
};
@@ -155,25 +154,25 @@
&mdio_bus3 {
phy24: ethernet-phy at 24 {
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <3 16>;
+ realtek,smi-address = <16>;
reg = <24>;
};
phy25: ethernet-phy at 25 {
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <3 17>;
+ realtek,smi-address = <17>;
reg = <25>;
};
phy26: ethernet-phy at 26 {
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <3 18>;
+ realtek,smi-address = <18>;
reg = <26>;
};
phy27: ethernet-phy at 27 {
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <3 19>;
+ realtek,smi-address = <19>;
reg = <27>;
};
};
diff --git a/target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts b/target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts
index c1d8201297..80c34659f5 100644
--- a/target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts
+++ b/target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts
@@ -83,122 +83,98 @@
phy0: ethernet-phy at 0 {
reg = <0>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 0>;
};
phy1: ethernet-phy at 1 {
reg = <1>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 1>;
};
phy2: ethernet-phy at 2 {
reg = <2>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 2>;
};
phy3: ethernet-phy at 3 {
reg = <3>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 3>;
};
phy4: ethernet-phy at 4 {
reg = <4>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 4>;
};
phy5: ethernet-phy at 5 {
reg = <5>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 5>;
};
phy6: ethernet-phy at 6 {
reg = <6>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 6>;
};
phy7: ethernet-phy at 7 {
reg = <7>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 7>;
};
phy8: ethernet-phy at 8 {
reg = <8>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 8>;
};
phy9: ethernet-phy at 9 {
reg = <9>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 9>;
};
phy10: ethernet-phy at 10 {
reg = <10>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 10>;
};
phy11: ethernet-phy at 11 {
reg = <11>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 11>;
};
phy12: ethernet-phy at 12 {
reg = <12>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 12>;
};
phy13: ethernet-phy at 13 {
reg = <13>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 13>;
};
phy14: ethernet-phy at 14 {
reg = <14>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 14>;
};
phy15: ethernet-phy at 15 {
reg = <15>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 15>;
};
phy16: ethernet-phy at 16 {
reg = <16>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 16>;
};
phy17: ethernet-phy at 17 {
reg = <17>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 17>;
};
phy18: ethernet-phy at 18 {
reg = <18>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 18>;
};
phy19: ethernet-phy at 19 {
reg = <19>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 19>;
};
phy20: ethernet-phy at 20 {
reg = <20>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 20>;
};
phy21: ethernet-phy at 21 {
reg = <21>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 21>;
};
phy22: ethernet-phy at 22 {
reg = <22>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 22>;
};
phy23: ethernet-phy at 23 {
reg = <23>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <0 23>;
};
};
@@ -206,122 +182,122 @@
phy24: ethernet-phy at 24 {
reg = <24>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 0>;
+ realtek,smi-address = <0>;
};
phy25: ethernet-phy at 25 {
reg = <25>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 1>;
+ realtek,smi-address = <1>;
};
phy26: ethernet-phy at 26 {
reg = <26>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 2>;
+ realtek,smi-address = <2>;
};
phy27: ethernet-phy at 27 {
reg = <27>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 3>;
+ realtek,smi-address = <3>;
};
phy28: ethernet-phy at 28 {
reg = <28>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 4>;
+ realtek,smi-address = <4>;
};
phy29: ethernet-phy at 29 {
reg = <29>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 5>;
+ realtek,smi-address = <5>;
};
phy30: ethernet-phy at 30 {
reg = <30>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 6>;
+ realtek,smi-address = <6>;
};
phy31: ethernet-phy at 31 {
reg = <31>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 7>;
+ realtek,smi-address = <7>;
};
phy32: ethernet-phy at 32 {
reg = <32>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 8>;
+ realtek,smi-address = <8>;
};
phy33: ethernet-phy at 33 {
reg = <33>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 9>;
+ realtek,smi-address = <9>;
};
phy34: ethernet-phy at 34 {
reg = <34>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 10>;
+ realtek,smi-address = <10>;
};
phy35: ethernet-phy at 35 {
reg = <35>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 11>;
+ realtek,smi-address = <11>;
};
phy36: ethernet-phy at 36 {
reg = <36>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 12>;
+ realtek,smi-address = <12>;
};
phy37: ethernet-phy at 37 {
reg = <37>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 13>;
+ realtek,smi-address = <13>;
};
phy38: ethernet-phy at 38 {
reg = <38>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 14>;
+ realtek,smi-address = <14>;
};
phy39: ethernet-phy at 39 {
reg = <39>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 15>;
+ realtek,smi-address = <15>;
};
phy40: ethernet-phy at 40 {
reg = <40>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 16>;
+ realtek,smi-address = <16>;
};
phy41: ethernet-phy at 41 {
reg = <41>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 17>;
+ realtek,smi-address = <17>;
};
phy42: ethernet-phy at 42 {
reg = <42>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 18>;
+ realtek,smi-address = <18>;
};
phy43: ethernet-phy at 43 {
reg = <43>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 19>;
+ realtek,smi-address = <19>;
};
phy44: ethernet-phy at 44 {
reg = <44>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 20>;
+ realtek,smi-address = <20>;
};
phy45: ethernet-phy at 45 {
reg = <45>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 21>;
+ realtek,smi-address = <21>;
};
phy46: ethernet-phy at 46 {
reg = <46>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 22>;
+ realtek,smi-address = <22>;
};
phy47: ethernet-phy at 47 {
reg = <47>;
compatible = "ethernet-phy-ieee802.3-c22";
- realtek,smi-address = <1 23>;
+ realtek,smi-address = <23>;
};
};
diff --git a/target/linux/realtek/dts/rtl9312_plasmacloud_common.dtsi b/target/linux/realtek/dts/rtl9312_plasmacloud_common.dtsi
index b7de43ce1a..e1b4a49c9f 100644
--- a/target/linux/realtek/dts/rtl9312_plasmacloud_common.dtsi
+++ b/target/linux/realtek/dts/rtl9312_plasmacloud_common.dtsi
@@ -243,73 +243,71 @@
phy0: ethernet-phy at 0 {
reg = <0>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 0>;
};
phy1: ethernet-phy at 1 {
reg = <1>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 1>;
};
phy4: ethernet-phy at 4 {
reg = <4>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 2>;
+ realtek,smi-address = <2>;
};
phy5: ethernet-phy at 5 {
reg = <5>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 3>;
+ realtek,smi-address = <3>;
};
phy8: ethernet-phy at 8 {
reg = <8>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 4>;
+ realtek,smi-address = <4>;
};
phy9: ethernet-phy at 9 {
reg = <9>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 5>;
+ realtek,smi-address = <5>;
};
phy12: ethernet-phy at 12 {
reg = <12>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 6>;
+ realtek,smi-address = <6>;
};
phy13: ethernet-phy at 13 {
reg = <13>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 7>;
+ realtek,smi-address = <7>;
};
phy16: ethernet-phy at 16 {
reg = <16>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 8>;
+ realtek,smi-address = <8>;
};
phy17: ethernet-phy at 17 {
reg = <17>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 9>;
+ realtek,smi-address = <9>;
};
phy20: ethernet-phy at 20 {
reg = <20>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 10>;
+ realtek,smi-address = <10>;
};
phy21: ethernet-phy at 21 {
reg = <21>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <0 11>;
+ realtek,smi-address = <11>;
};
};
@@ -317,73 +315,73 @@
phy24: ethernet-phy at 24 {
reg = <24>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 12>;
+ realtek,smi-address = <12>;
};
phy25: ethernet-phy at 25 {
reg = <25>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 13>;
+ realtek,smi-address = <13>;
};
phy28: ethernet-phy at 28 {
reg = <28>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 14>;
+ realtek,smi-address = <14>;
};
phy29: ethernet-phy at 29 {
reg = <29>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 15>;
+ realtek,smi-address = <15>;
};
phy32: ethernet-phy at 32 {
reg = <32>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 16>;
+ realtek,smi-address = <16>;
};
phy33: ethernet-phy at 33 {
reg = <33>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 17>;
+ realtek,smi-address = <17>;
};
phy36: ethernet-phy at 36 {
reg = <36>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 18>;
+ realtek,smi-address = <18>;
};
phy37: ethernet-phy at 37 {
reg = <37>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 19>;
+ realtek,smi-address = <19>;
};
phy40: ethernet-phy at 40 {
reg = <40>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 20>;
+ realtek,smi-address = <20>;
};
phy41: ethernet-phy at 41 {
reg = <41>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 21>;
+ realtek,smi-address = <21>;
};
phy44: ethernet-phy at 44 {
reg = <44>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 22>;
+ realtek,smi-address = <22>;
};
phy45: ethernet-phy at 45 {
reg = <45>;
compatible = "ethernet-phy-ieee802.3-c45";
- realtek,smi-address = <1 23>;
+ realtek,smi-address = <23>;
};
};
diff --git a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c
index 20e3f555c2..44216fe2d9 100644
--- a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c
+++ b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c
@@ -149,7 +149,7 @@ struct rtmdio_bus_priv {
int page[RTMDIO_MAX_PORT];
bool raw[RTMDIO_MAX_PORT];
int smi_bus[RTMDIO_MAX_PORT];
- u8 smi_addr[RTMDIO_MAX_PORT];
+ int smi_addr[RTMDIO_MAX_PORT];
struct device_node *dn[RTMDIO_MAX_PORT];
bool smi_bus_isc45[RTMDIO_MAX_SMI_BUS];
};
@@ -1030,8 +1030,6 @@ static int rtmdio_probe(struct platform_device *pdev)
priv->smi_bus[addr] = -1;
for_each_node_by_name(dn, "ethernet-phy") {
- u32 smi_addr[2];
-
if (of_property_read_u32(dn, "reg", &addr))
continue;
@@ -1040,14 +1038,10 @@ static int rtmdio_probe(struct platform_device *pdev)
return -ENODEV;
}
- if (of_property_read_u32_array(dn, "realtek,smi-address", &smi_addr[0], 2)) {
- priv->smi_bus[addr] = 0;
+ of_property_read_u32(dn->parent, "reg", &priv->smi_bus[addr]);
+ if (of_property_read_u32(dn, "realtek,smi-address", &priv->smi_addr[addr]))
priv->smi_addr[addr] = addr;
- } else {
- priv->smi_bus[addr] = smi_addr[0];
- priv->smi_addr[addr] = smi_addr[1];
- }
-
+
if (priv->smi_bus[addr] >= RTMDIO_MAX_SMI_BUS) {
pr_err("%s: illegal SMI bus number %d\n", __func__, priv->smi_bus[addr]);
return -ENODEV;
More information about the lede-commits
mailing list