realtek: dgs-1210-10mp: add full sfp description
authorDaniel Groth <flygarn12@gmail.com>
Fri, 14 Oct 2022 14:23:33 +0000 (16:23 +0200)
committerSander Vanheule <sander@svanheule.net>
Sun, 8 Jan 2023 10:38:47 +0000 (11:38 +0100)
Added the full SFP description for both SFP ports (lan9, 10) on D-Link
DGS-1210-10MP, which enables hot-plug detection of SFP modules.
Added the patch to both kernel 5.10 and 5.15 dts files.

Signed-off-by: Daniel Groth <flygarn12@gmail.com>
target/linux/realtek/dts-5.10/rtl8380_d-link_dgs-1210-10mp-f.dts
target/linux/realtek/dts-5.15/rtl8380_d-link_dgs-1210-10mp-f.dts

index e7db688ad52d6ec98f650a905ad60a0a6a18d56b..39e37ee5959ab54237d91845ddb4cf84ace5a3a2 100644 (file)
@@ -8,6 +8,42 @@
        compatible = "d-link,dgs-1210-10mp-f", "realtek,rtl8382-soc", "realtek,rtl838x-soc";
 
        model = "D-Link DGS-1210-10MP F";
+
+       /* i2c for sfp port9 */
+       i2c0: i2c-gpio-0 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpio1 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       sfp0: sfp-p9 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c0>;
+               los-gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
+               tx-disable-gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+       };
+
+       /* i2c for sfp port10 */
+       i2c1: i2c-gpio-1 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpio1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       sfp1: sfp-p10 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c1>;
+               los-gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
+               tx-disable-gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &leds {
                SWITCH_PORT(13, 6, internal)
                SWITCH_PORT(14, 7, internal)
                SWITCH_PORT(15, 8, internal)
-               SWITCH_SFP_PORT(24, 9, rgmii-id)
-               SWITCH_SFP_PORT(26, 10, rgmii-id)
+
+               port@24 {
+                       reg = <24>;
+                       label = "lan9";
+                       phy-handle = <14>;
+                       phy-mode = "1000base-x";
+                       managed = "in-band-status";
+                       sfp = <&sfp0>;
+               };
+
+               port@26 {
+                       reg = <26>;
+                       label = "lan10";
+                       phy-handle = <15>;
+                       phy-mode = "1000base-x";
+                       managed = "in-band-status";
+                       sfp = <&sfp1>;
+               };
 
                port@28 {
                        ethernet = <&ethernet0>;
index e7db688ad52d6ec98f650a905ad60a0a6a18d56b..39e37ee5959ab54237d91845ddb4cf84ace5a3a2 100644 (file)
@@ -8,6 +8,42 @@
        compatible = "d-link,dgs-1210-10mp-f", "realtek,rtl8382-soc", "realtek,rtl838x-soc";
 
        model = "D-Link DGS-1210-10MP F";
+
+       /* i2c for sfp port9 */
+       i2c0: i2c-gpio-0 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpio1 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       sfp0: sfp-p9 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c0>;
+               los-gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
+               tx-disable-gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+       };
+
+       /* i2c for sfp port10 */
+       i2c1: i2c-gpio-1 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpio1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       sfp1: sfp-p10 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c1>;
+               los-gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
+               tx-disable-gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &leds {
                SWITCH_PORT(13, 6, internal)
                SWITCH_PORT(14, 7, internal)
                SWITCH_PORT(15, 8, internal)
-               SWITCH_SFP_PORT(24, 9, rgmii-id)
-               SWITCH_SFP_PORT(26, 10, rgmii-id)
+
+               port@24 {
+                       reg = <24>;
+                       label = "lan9";
+                       phy-handle = <14>;
+                       phy-mode = "1000base-x";
+                       managed = "in-band-status";
+                       sfp = <&sfp0>;
+               };
+
+               port@26 {
+                       reg = <26>;
+                       label = "lan10";
+                       phy-handle = <15>;
+                       phy-mode = "1000base-x";
+                       managed = "in-band-status";
+                       sfp = <&sfp1>;
+               };
 
                port@28 {
                        ethernet = <&ethernet0>;