From dc54af86397f6e6ca397d7adfc655eb85c5fcf55 Mon Sep 17 00:00:00 2001 From: Jonas Jelonek Date: Tue, 24 Jun 2025 19:02:33 +0000 Subject: [PATCH] realtek: adapt devices to backported i2c driver Adapt the device tree definitions of rtl93xx devices and the base dtsi for rtl930x and rtl931x to match with what's expected by the recently backported RTL9300 I2C driver. Signed-off-by: Jonas Jelonek Link: https://github.com/openwrt/openwrt/pull/19736 Signed-off-by: Robert Marko --- .../realtek/dts/rtl9302_zyxel_xgs1210-12.dts | 54 ++++------- .../realtek/dts/rtl9302_zyxel_xgs1250-12.dts | 20 ++-- .../dts/rtl9303_tplink_tl-st1008f_v2.dts | 95 ++++++------------- .../dts/rtl9303_vimin_vm-s100-0800ms.dts | 95 ++++++------------- .../dts/rtl9303_xikestor_sks8300-8x.dts | 95 ++++++------------- target/linux/realtek/dts/rtl930x.dtsi | 18 ++++ target/linux/realtek/dts/rtl931x.dtsi | 20 ++++ 7 files changed, 153 insertions(+), 244 deletions(-) diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12.dts b/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12.dts index 65954e3587..e1f4753f23 100644 --- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12.dts +++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12.dts @@ -29,42 +29,6 @@ }; }; - /* i2c of the SFP cage: port 11 & port 12 */ - i2c0: i2c-rtl9300@1b00036c { - compatible = "realtek,rtl9300-i2c"; - reg = <0x1b00036c 0x3c>; - #address-cells = <1>; - #size-cells = <0>; - sda-pin = <9>; - scl-pin = <8>; - clock-frequency = <100000>; - }; - - i2cmux { - compatible = "realtek,rtl9302-i2c-mux", "realtek,i2c-mux-rtl9300"; - #address-cells = <1>; - #size-cells = <0>; - i2c-parent = <&i2c0>; - - /* i2c of the left SFP+ cage as seen from the front: port 11 */ - i2c0_0: i2c@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - sda-pin = <9>; - scl-pin = <8>; - }; - - /* i2c of the right SFP+ cage as seen from the front: port 12 */ - i2c0_1: i2c@1 { - reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - sda-pin = <10>; - scl-pin = <8>; - }; - }; - leds { compatible = "gpio-leds"; @@ -81,7 +45,7 @@ sfp0: sfp-p11 { compatible = "sff,sfp"; - i2c-bus = <&i2c0_0>; + i2c-bus = <&i2c0>; los-gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>; tx-fault-gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; mod-def0-gpio = <&gpio0 12 GPIO_ACTIVE_LOW>; @@ -90,7 +54,7 @@ sfp1: sfp-p12 { compatible = "sff,sfp"; - i2c-bus = <&i2c0_1>; + i2c-bus = <&i2c1>; los-gpio = <&gpio0 17 GPIO_ACTIVE_HIGH>; tx-fault-gpio = <&gpio0 20 GPIO_ACTIVE_HIGH>; mod-def0-gpio = <&gpio0 16 GPIO_ACTIVE_LOW>; @@ -122,6 +86,20 @@ }; }; +&i2c_mst1 { + status = "okay"; + + /* i2c of the left SFP+ cage seen from the front; port 11 */ + i2c0: i2c@0 { + reg = <0>; + }; + + /* i2c of the right SFP+ cage seen from the front; port 12 */ + i2c1: i2c@1 { + reg = <1>; + }; +}; + &spi0 { status = "okay"; flash@0 { diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12.dts b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12.dts index a2486f134e..38066ff2a2 100644 --- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12.dts +++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12.dts @@ -29,17 +29,6 @@ }; }; - /* i2c of the SFP cage: port 12 */ - i2c0: i2c-rtl9300@1b00036c { - compatible = "realtek,rtl9300-i2c"; - reg = <0x1b00036c 0x3c>; - #address-cells = <1>; - #size-cells = <0>; - sda-pin = <10>; - scl-pin = <8>; - clock-frequency = <100000>; - }; - leds { compatible = "gpio-leds"; @@ -174,6 +163,15 @@ }; }; +&i2c_mst1 { + status = "okay"; + + /* i2c of the SFP+ cage; port 12 */ + i2c0: i2c@1 { + reg = <1>; + }; +}; + &spi0 { status = "okay"; flash@0 { diff --git a/target/linux/realtek/dts/rtl9303_tplink_tl-st1008f_v2.dts b/target/linux/realtek/dts/rtl9303_tplink_tl-st1008f_v2.dts index 75633e53f9..49d7b348d5 100644 --- a/target/linux/realtek/dts/rtl9303_tplink_tl-st1008f_v2.dts +++ b/target/linux/realtek/dts/rtl9303_tplink_tl-st1008f_v2.dts @@ -71,71 +71,6 @@ }; }; - i2c_main: i2c@1b00036c { - compatible = "realtek,rtl9300-i2c"; - reg = <0x1b00036c 0x3c>; - #address-cells = <1>; - #size-cells = <0>; - scl-pin = <8>; - sda-pin = <9>; - clock-frequency = <100000>; - }; - - i2c-mux { - compatible = "realtek,i2c-mux-rtl9300"; - i2c-parent = <&i2c_main>; - #address-cells = <1>; - #size-cells = <0>; - - i2c0: i2c@0 { - reg = <0>; - scl-pin = <8>; - sda-pin = <9>; - }; - - i2c1: i2c@1 { - reg = <1>; - scl-pin = <8>; - sda-pin = <10>; - }; - - i2c2: i2c@2 { - reg = <2>; - scl-pin = <8>; - sda-pin = <11>; - }; - - i2c3: i2c@3 { - reg = <3>; - scl-pin = <8>; - sda-pin = <12>; - }; - - i2c4: i2c@4 { - reg = <4>; - scl-pin = <8>; - sda-pin = <13>; - }; - - i2c5: i2c@5 { - reg = <5>; - scl-pin = <8>; - sda-pin = <14>; - }; - - i2c6: i2c@6 { - reg = <6>; - scl-pin = <8>; - sda-pin = <15>; - }; - - i2c7: i2c@7 { - reg = <7>; - scl-pin = <8>; - sda-pin = <16>; - }; - }; - sfp0: sfp-p1 { compatible = "sff,sfp"; i2c-bus = <&i2c0>; @@ -217,6 +152,36 @@ }; }; +&i2c_mst1 { + status = "okay"; + + /* SDA0-7 correspond to GPIO9-16 */ + i2c0: i2c@0 { + reg = <0>; + }; + i2c1: i2c@1 { + reg = <1>; + }; + i2c2: i2c@2 { + reg = <2>; + }; + i2c3: i2c@3 { + reg = <3>; + }; + i2c4: i2c@4 { + reg = <4>; + }; + i2c5: i2c@5 { + reg = <5>; + }; + i2c6: i2c@6 { + reg = <6>; + }; + i2c7: i2c@7 { + reg = <7>; + }; +}; + &spi0 { status = "okay"; diff --git a/target/linux/realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts b/target/linux/realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts index d901967a22..4777d085d7 100644 --- a/target/linux/realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts +++ b/target/linux/realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts @@ -20,71 +20,6 @@ stdout-path = "serial0:115200n8"; }; - i2c_master: i2c@1b00036c { - compatible = "realtek,rtl9300-i2c"; - reg = <0x1b00036c 0x3c>; - #address-cells = <1>; - #size-cells = <0>; - scl-pin = <8>; - sda-pin = <9>; - clock-frequency = <100000>; - }; - - i2c-mux { - compatible = "realtek,i2c-mux-rtl9300"; - i2c-parent = <&i2c_master>; - #address-cells = <1>; - #size-cells = <0>; - - i2c0: i2c@0 { - reg = <0>; - scl-pin = <8>; - sda-pin = <9>; - }; - - i2c1: i2c@1 { - reg = <1>; - scl-pin = <8>; - sda-pin = <10>; - }; - - i2c2: i2c@2 { - reg = <2>; - scl-pin = <8>; - sda-pin = <11>; - }; - - i2c3: i2c@3 { - reg = <3>; - scl-pin = <8>; - sda-pin = <12>; - }; - - i2c4: i2c@4 { - reg = <4>; - scl-pin = <8>; - sda-pin = <13>; - }; - - i2c5: i2c@5 { - reg = <5>; - scl-pin = <8>; - sda-pin = <14>; - }; - - i2c6: i2c@6 { - reg = <6>; - scl-pin = <8>; - sda-pin = <15>; - }; - - i2c7: i2c@7 { - reg = <7>; - scl-pin = <8>; - sda-pin = <16>; - }; - }; - keys { compatible = "gpio-keys"; @@ -188,6 +123,36 @@ }; }; +&i2c_mst1 { + status = "okay"; + + /* SDA0-7 correspond to GPIO9-16 */ + i2c0: i2c@0 { + reg = <0>; + }; + i2c1: i2c@1 { + reg = <1>; + }; + i2c2: i2c@2 { + reg = <2>; + }; + i2c3: i2c@3 { + reg = <3>; + }; + i2c4: i2c@4 { + reg = <4>; + }; + i2c5: i2c@5 { + reg = <5>; + }; + i2c6: i2c@6 { + reg = <6>; + }; + i2c7: i2c@7 { + reg = <7>; + }; +}; + &mdio_aux { status = "okay"; diff --git a/target/linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts b/target/linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts index b3b2a9a6f1..8c19323f5b 100644 --- a/target/linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts +++ b/target/linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts @@ -27,71 +27,6 @@ stdout-path = "serial0:9600n8"; }; - i2c_master: i2c@1b00036c { - compatible = "realtek,rtl9300-i2c"; - reg = <0x1b00036c 0x3c>; - #address-cells = <1>; - #size-cells = <0>; - scl-pin = <8>; - sda-pin = <9>; - clock-frequency = <100000>; - }; - - i2c-mux { - compatible = "realtek,i2c-mux-rtl9300"; - i2c-parent = <&i2c_master>; - #address-cells = <1>; - #size-cells = <0>; - - i2c0: i2c@0 { - reg = <0>; - scl-pin = <8>; - sda-pin = <9>; - }; - - i2c1: i2c@1 { - reg = <1>; - scl-pin = <8>; - sda-pin = <10>; - }; - - i2c2: i2c@2 { - reg = <2>; - scl-pin = <8>; - sda-pin = <11>; - }; - - i2c3: i2c@3 { - reg = <3>; - scl-pin = <8>; - sda-pin = <12>; - }; - - i2c4: i2c@4 { - reg = <4>; - scl-pin = <8>; - sda-pin = <13>; - }; - - i2c5: i2c@5 { - reg = <5>; - scl-pin = <8>; - sda-pin = <14>; - }; - - i2c6: i2c@6 { - reg = <6>; - scl-pin = <8>; - sda-pin = <15>; - }; - - i2c7: i2c@7 { - reg = <7>; - scl-pin = <8>; - sda-pin = <16>; - }; - }; - keys { compatible = "gpio-keys"; @@ -206,6 +141,36 @@ }; }; +&i2c_mst1 { + status = "okay"; + + /* SDA0-7 correspond to GPIO9-16 */ + i2c0: i2c@0 { + reg = <0>; + }; + i2c1: i2c@1 { + reg = <1>; + }; + i2c2: i2c@2 { + reg = <2>; + }; + i2c3: i2c@3 { + reg = <3>; + }; + i2c4: i2c@4 { + reg = <4>; + }; + i2c5: i2c@5 { + reg = <5>; + }; + i2c6: i2c@6 { + reg = <6>; + }; + i2c7: i2c@7 { + reg = <7>; + }; +}; + &mdio_aux { status = "okay"; diff --git a/target/linux/realtek/dts/rtl930x.dtsi b/target/linux/realtek/dts/rtl930x.dtsi index 31fe3ffd8b..5423f996e2 100644 --- a/target/linux/realtek/dts/rtl930x.dtsi +++ b/target/linux/realtek/dts/rtl930x.dtsi @@ -167,6 +167,24 @@ compatible = "syscon", "simple-mfd"; reg = <0x1b000000 0x10000>; + i2c_mst1: i2c@36c { + compatible = "realtek,rtl9301-i2c"; + reg = <0x36c 0x18>; + #address-cells = <1>; + #size-cells = <0>; + + status = "disabled"; + }; + + i2c_mst2: i2c@388 { + compatible = "realtek,rtl9301-i2c"; + reg = <0x388 0x18>; + #address-cells = <1>; + #size-cells = <0>; + + status = "disabled"; + }; + mdio_aux: mdio-aux { compatible = "realtek,rtl9300-aux-mdio"; #address-cells = <1>; diff --git a/target/linux/realtek/dts/rtl931x.dtsi b/target/linux/realtek/dts/rtl931x.dtsi index 86634d6c16..ef45258cb5 100644 --- a/target/linux/realtek/dts/rtl931x.dtsi +++ b/target/linux/realtek/dts/rtl931x.dtsi @@ -197,6 +197,26 @@ switchcore@1b000000 { compatible = "syscon", "simple-mfd"; reg = <0x1b000000 0x10000>; + + i2c_mst1: i2c@100c { + compatible = "realtek,rtl9310-i2c"; + reg = <0x100c 0x18>; + #address-cells = <1>; + #size-cells = <0>; + realtek,scl = <0>; + + status = "disabled"; + }; + + i2c_mst2: i2c@1024 { + compatible = "realtek,rtl9310-i2c"; + reg = <0x1024 0x18>; + #address-cells = <1>; + #size-cells = <0>; + realtek,scl = <1>; + + status = "disabled"; + }; }; pinmux: pinmux@1b001358 { -- 2.30.2