[openwrt/openwrt] ath79: mikrotik: enable SFP on RB922UAGS-5HPaCD

LEDE Commits lede-commits at lists.infradead.org
Fri Apr 30 09:26:52 BST 2021


xback pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/a524a0dff80e9bf833ef8c08308923398d3d46a6

commit a524a0dff80e9bf833ef8c08308923398d3d46a6
Author: Roger Pueyo Centelles <roger.pueyo at guifi.net>
AuthorDate: Fri Dec 18 22:26:55 2020 +0100

    ath79: mikrotik: enable SFP on RB922UAGS-5HPaCD
    
    This patch enables the SFP cage on the MikroTik RouterBOARD 922UAGS-5HPacD.
    
    GPIO16 (tx-disable-gpios) should be governed by the SFP driver to enable
    or disable transmission, but no change is observed. Therefore, it is
    left as output high to ensure the SFP module is forced to transmit.
    
    Tested on a RouterBOARD 922UAGS-5HPacD board, with a CISCO GLC-LH-SMD
    1310nm module and an unbranded GLC-T RJ45 Gigabit module. PC=>router
    iperf3 tests deliver 440/300 Mbps up/down, both via regular eth0 port
    or SFP port with RJ45 module. Bridge between eth0 and eth1 delivers
    950 Mbps symmetric.
    
    Signed-off-by: Roger Pueyo Centelles <roger.pueyo at guifi.net>
    (cherry picked from commit 4387fe00cb7536d9d341f6d27e465ff0f0b29b1b)
---
 ...qca9558_mikrotik_routerboard-922uags-5hpacd.dts | 48 ++++++++++++++++++++++
 target/linux/ath79/image/mikrotik.mk               |  3 +-
 .../mikrotik/base-files/etc/board.d/02_network     |  1 -
 target/linux/ath79/mikrotik/config-default         |  1 +
 4 files changed, 51 insertions(+), 2 deletions(-)

diff --git a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
index 8ad834fe61..36979bbd33 100644
--- a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
+++ b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts
@@ -23,6 +23,27 @@
 			gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
 		};
 	};
+
+	i2c: i2c {
+		compatible = "i2c-gpio";
+
+		sda-gpios = <&gpio 18 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+		scl-gpios = <&gpio 19 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+		i2c-gpio,delay-us = <5>;
+		i2c-gpio,timeout-ms = <1>;
+	};
+
+	sfp1: sfp {
+		compatible = "sff,sfp";
+
+		i2c-bus = <&i2c>;
+		maximum-power-milliwatt = <1000>;
+		los-gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
+		mod-def0-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+		tx-disable-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+		// Toggling GPIO16 actually enables/disables the transmitter,
+		// but the SFP driver does not seem to be using it.
+		};
 };
 
 &pcie0 {
@@ -55,3 +76,30 @@
 &usb_phy1 {
 	status = "okay";
 };
+
+&mdio1 {
+	status = "okay";
+
+	phy_sfp: ethernet-phy at 0 {
+		reg = <0>;
+		phy-mode = "sgmii";
+		sfp = <&sfp1>;
+	};
+};
+
+&eth1 {
+	status = "okay";
+
+	phy-handle = <&phy_sfp>;
+	pll-data = <0x03000000 0x00000101 0x00001616>;
+	qca955x-sgmii-fixup;
+
+	gmac-config {
+		device = <&gmac>;
+	};
+
+	fixed-link {
+		speed = <1000>;
+		full-duplex;
+	};
+};
diff --git a/target/linux/ath79/image/mikrotik.mk b/target/linux/ath79/image/mikrotik.mk
index b7d745bc77..74f8603b5a 100644
--- a/target/linux/ath79/image/mikrotik.mk
+++ b/target/linux/ath79/image/mikrotik.mk
@@ -22,7 +22,8 @@ define Device/mikrotik_routerboard-922uags-5hpacd
   $(Device/mikrotik_nand)
   SOC := qca9558
   DEVICE_MODEL := RouterBOARD 922UAGS-5HPacD
-  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb2
+  DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct kmod-usb2 \
+	kmod-i2c-gpio kmod-sfp
   SUPPORTED_DEVICES += rb-922uags-5hpacd
 endef
 TARGET_DEVICES += mikrotik_routerboard-922uags-5hpacd
diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
index 584acc0feb..c407da6dcd 100755
--- a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
@@ -16,7 +16,6 @@ ath79_setup_interfaces()
 			"0 at eth1" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
 		;;
 	mikrotik,routerboard-921gs-5hpacd-15s|\
-	mikrotik,routerboard-922uags-5hpacd|\
 	mikrotik,routerboard-lhg-2nd|\
 	mikrotik,routerboard-sxt-5nd-r2|\
 	mikrotik,routerboard-wap-g-5hact2hnd|\
diff --git a/target/linux/ath79/mikrotik/config-default b/target/linux/ath79/mikrotik/config-default
index f713fc36cf..8609893f6e 100644
--- a/target/linux/ath79/mikrotik/config-default
+++ b/target/linux/ath79/mikrotik/config-default
@@ -24,6 +24,7 @@ CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_BLOCK=y
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_NET_DSA=y
 CONFIG_NET_SWITCHDEV=y
 CONFIG_PCI_AR71XX=y
 CONFIG_PHY_AR7100_USB=y



More information about the lede-commits mailing list