realtek: rtl838x: add Netgear GS110TUP v1 support
authorJacob Potter <jacob@j4cbo.com>
Sun, 24 Dec 2023 02:37:54 +0000 (21:37 -0500)
committerSander Vanheule <sander@svanheule.net>
Sat, 13 Jan 2024 15:45:05 +0000 (16:45 +0100)
The GS110TUP v1 is a managed switch similar to the GS110TPP v1, but with
port 10 as SFP instead of RJ-45 and a total budget of 240 watts. Ports
1-4 support 60-watt 802.3bt PoE and ports 5-8 support 30-watt 802.3at.

The flash layout of the two switches are identical, and the U-Boot
configurations are the same except for having a different magic number,
so installation can be done via the same U-Boot method.

The following command will be needed to enable the port LEDs as per
https://forum.openwrt.org/t/72510/51 :
    fw_setenv bootcmd "rtk network on; boota"

Additionally, port 9 (1000base-T from a separate QSGMII PHY) does not
function without this. Port 10 was not tested as no SFP module was
available.

Signed-off-by: Jacob Potter <jacob@j4cbo.com>
[rebase on merged flash layout]
Signed-off-by: Sander Vanheule <sander@svanheule.net>
target/linux/realtek/base-files/etc/board.d/02_network
target/linux/realtek/dts-5.15/rtl8380_netgear_gs110tup-v1.dts [new file with mode: 0644]
target/linux/realtek/image/rtl838x.mk

index 4a5fe7666c91720fc941f256c7ecab9a84647a46..fb9c28d7948e38d9d7a6fcd0344017072fb054bb 100644 (file)
@@ -91,6 +91,9 @@ hpe,1920-8g-poe-180w)
 netgear,gs110tpp-v1)
        ucidef_set_poe 130 "$lan_list" "lan9 lan10"
        ;;
+netgear,gs110tup-v1)
+       ucidef_set_poe 240 "$lan_list" "lan9 lan10"
+       ;;
 netgear,gs310tp-v1)
        ucidef_set_poe 55 "$lan_list" "lan9 lan10"
        ;;
diff --git a/target/linux/realtek/dts-5.15/rtl8380_netgear_gs110tup-v1.dts b/target/linux/realtek/dts-5.15/rtl8380_netgear_gs110tup-v1.dts
new file mode 100644 (file)
index 0000000..76653fa
--- /dev/null
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "rtl8380_netgear_gigabit.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+       compatible = "netgear,gs110tup-v1", "realtek,rtl838x-soc";
+       model = "Netgear GS110TUP v1";
+
+       aliases {
+               led-boot = &led_status_green;
+               led-failsafe = &led_status_red;
+               led-running = &led_status_green;
+               led-upgrade = &led_status_blue;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_status_red: led-0 {
+                       label = "red:status";
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
+               };
+
+               led_status_green: led-1 {
+                       label = "green:status";
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio1 32 GPIO_ACTIVE_LOW>;
+               };
+
+               led_status_blue: led-2 {
+                       label = "blue:status";
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio1 34 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&firmware {
+       openwrt,ih-magic = <0x4e474720>;
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&mdio {
+       EXTERNAL_PHY(16)
+       EXTERNAL_PHY(24)
+};
+
+&switch0 {
+       ports {
+               SWITCH_PORT(16, 9, qsgmii)
+               SWITCH_SFP_PORT(24, 10, rgmii-id)
+       };
+};
index 9a9a3107136b865f27522980a014032cf7fb76b9..60249ff2fdb4225c204f25c13fbb4a833bc2448b 100644 (file)
@@ -171,6 +171,24 @@ define Device/netgear_nge
   DEVICE_VENDOR := NETGEAR
 endef
 
+# "NGG" refers to the uImage magic
+define Device/netgear_ngg
+  KERNEL := \
+       kernel-bin | \
+       append-dtb | \
+       lzma | \
+       uImage lzma
+  KERNEL_INITRAMFS := \
+       kernel-bin | \
+       append-dtb | \
+       lzma | \
+       uImage lzma
+  SOC := rtl8380
+  IMAGE_SIZE := 14848k
+  UIMAGE_MAGIC := 0x4e474720
+  DEVICE_VENDOR := NETGEAR
+endef
+
 define Device/netgear_gs108t-v3
   $(Device/netgear_nge)
   DEVICE_MODEL := GS108T
@@ -186,6 +204,14 @@ define Device/netgear_gs110tpp-v1
 endef
 TARGET_DEVICES += netgear_gs110tpp-v1
 
+define Device/netgear_gs110tup-v1
+  $(Device/netgear_ngg)
+  DEVICE_MODEL := GS110TUP
+  DEVICE_VARIANT := v1
+  DEVICE_PACKAGES += realtek-poe
+endef
+TARGET_DEVICES += netgear_gs110tup-v1
+
 define Device/netgear_gs308t-v1
   $(Device/netgear_nge)
   DEVICE_MODEL := GS308T