]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: add Zyxel GS1900-48HP A1 support
authorKlaus Rubenstein <klaus.rubenstein@gmail.com>
Wed, 1 Apr 2026 07:01:42 +0000 (09:01 +0200)
committerSander Vanheule <sander@svanheule.net>
Sat, 11 Apr 2026 17:35:53 +0000 (19:35 +0200)
Add support for the Zyxel GS1900-48HP A1 managed PoE switch based on
RTL8393 SoC with 48 copper ports (6x RTL8218B), 2 SFP slots and PoE
(170W budget). Includes DTS, image definition, network config and
u-boot-env support.

The device has 48 copper ports but only ports 1-24 are powered by
the PoE PSE controller.

PoE support requires the realtek-poe package from the packages feed
with an additional configuration for PSE ID 7 to address the MCU on
this device.

Signed-off-by: Klaus Rubenstein <klaus.rubenstein@gmail.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
package/boot/uboot-tools/uboot-envtools/files/realtek
target/linux/realtek/base-files/etc/board.d/02_network
target/linux/realtek/base-files/etc/board.d/05_compat-version
target/linux/realtek/dts/rtl8393_zyxel_gs1900-48hp-a1.dts [new file with mode: 0644]
target/linux/realtek/image/rtl839x.mk

index ba980363bac91cf32de472fbec3df02c20690290..826914e35d102fedb094afe046f00c2e26ba8152 100644 (file)
@@ -27,7 +27,8 @@ zyxel,gs1900-24e-a1|\
 zyxel,gs1900-24ep-a1|\
 zyxel,gs1900-24hp-a1|\
 zyxel,gs1900-24hp-b1|\
-zyxel,gs1900-48-a1)
+zyxel,gs1900-48-a1|\
+zyxel,gs1900-48hp-a1)
        ubootenv_add_mtd "u-boot-env" "0x0" "0x400" "0x10000"
        ubootenv_add_sys_mtd "u-boot-env2" "0x0" "0x1000" "0x10000"
        ;;
index a381f9e5044b5f3676751d9378ee69f49b84a0c5..df064c4e8ee0ccb7a623c7bf9290055a8c5a4722 100644 (file)
@@ -137,6 +137,7 @@ realtek_setup_macs()
        zyxel,gs1900-24hp-a1|\
        zyxel,gs1900-24hp-b1|\
        zyxel,gs1900-48-a1|\
+       zyxel,gs1900-48hp-a1|\
        zyxel,gs1900-8-a1|\
        zyxel,gs1900-8-b1|\
        zyxel,gs1900-8hp-a1|\
@@ -231,6 +232,11 @@ realtek_setup_poe()
        zyxel,gs1900-24hp-b1)
                ucidef_set_poe 170 "$(filter_port_list "$lan_list" "lan25 lan26")"
                ;;
+       zyxel,gs1900-48hp-a1)
+               ucidef_set_poe 170 "lan1 lan2 lan3 lan4 lan5 lan6 lan7 lan8 \
+                       lan9 lan10 lan11 lan12 lan13 lan14 lan15 lan16 \
+                       lan17 lan18 lan19 lan20 lan21 lan22 lan23 lan24"
+               ;;
        esac
 }
 
index d448681840276be5966f0495015385ec1f0e8f07..c934aadcb8475fcc819e5634d5382e19fd20b88d 100644 (file)
@@ -24,7 +24,8 @@ case "$(board_name)" in
        zyxel,gs1900-24hp-a1 | \
        zyxel,gs1900-24hp-b1 | \
        zyxel,gs1900-24-a1 | \
-       zyxel,gs1900-48-a1)
+       zyxel,gs1900-48-a1 | \
+       zyxel,gs1900-48hp-a1)
                ucidef_set_compat_version "2.0"
         ;;
 esac
diff --git a/target/linux/realtek/dts/rtl8393_zyxel_gs1900-48hp-a1.dts b/target/linux/realtek/dts/rtl8393_zyxel_gs1900-48hp-a1.dts
new file mode 100644 (file)
index 0000000..7ec4577
--- /dev/null
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/dts-v1/;
+
+#include "rtl8393_zyxel_gs1900-48.dtsi"
+
+/ {
+       compatible = "zyxel,gs1900-48hp-a1", "realtek,rtl8393-soc";
+       model = "Zyxel GS1900-48HP A1";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&gpio1 {
+       poe_enable {
+               gpio-hog;
+               gpios = <13 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "poe-mcu-enable";
+       };
+
+       poe_reset {
+               gpio-hog;
+               gpios = <36 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "poe-mcu-reset";
+       };
+};
index a40a2300c270a64719f6bc0f2d9057c0d2401450..78d9eee56a46c07a26372c4e2b3647113becf2e8 100644 (file)
@@ -98,6 +98,16 @@ define Device/zyxel_gs1900-48-a1
 endef
 TARGET_DEVICES += zyxel_gs1900-48-a1
 
+define Device/zyxel_gs1900-48hp-a1
+  $(Device/zyxel_gs1900)
+  SOC := rtl8393
+  DEVICE_MODEL := GS1900-48HP
+  DEVICE_VARIANT := A1
+  ZYXEL_VERS := AAHO
+  DEVICE_PACKAGES += realtek-poe
+endef
+TARGET_DEVICES += zyxel_gs1900-48hp-a1
+
 define Device/zyxel_gs1920-24hp
 ifeq ($(IB),)
   ARTIFACTS := loader.bin