浏览代码

realtek: rtl838x: add Netgear GS110TUP v1 support

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 <[email protected]>
[rebase on merged flash layout]
Signed-off-by: Sander Vanheule <[email protected]>
Jacob Potter 1 年之前
父节点
当前提交
735efbfb7c

+ 3 - 0
target/linux/realtek/base-files/etc/board.d/02_network

@@ -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"
 	;;

+ 61 - 0
target/linux/realtek/dts-5.15/rtl8380_netgear_gs110tup-v1.dts

@@ -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)
+	};
+};

+ 26 - 0
target/linux/realtek/image/rtl838x.mk

@@ -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