realtek: rtl838x: add support for Netgear GS110TPv3

The Netgear GS110TPv3 is a 10-port gigabit managed switch with 8x RJ45
ports and 2x SFP cages. All 8x RJ45 ports are PoE+ capable.

This switch is similar to the already supported GS108Tv3 and GS110TPP
models and even shares its stock firmware with these two. SFP cage
configuration, on the other hand, is identical to the GS310TP.

SoC:         RTL8380M, 500MHz
RAM:         128MB DDR3
Flash:       32MB SPI-NOR
Ethernet:    8x 1GBE RJ45
             2x 1GBE SFP Cages
PoE:         8x PoE+ via Nuvoton controller, 55W total power budget
UART:        onboard, unpopulated (J1), 115200/8N1, 3.3V
LEDs:        1x dual color green/amber power LED, GPIO controlled
             1x amber PoE-Max and 8x green/amber PoE port LEDs
             - handled by PoE controller
             8x green/amber port status LEDs, unsupported in OpenWrt
             - handled by RTL8231 GPIO expander (see install instructions)
MAC address: base MAC from "ethaddr" U-Boot env variable, additional port
             MACs assigned incrementally.

Installation instructions:

1. Install OpenWrt initramfs firmware to the "Image1" firmware slot via
   vendor web GUI.
2. If not already so, set next startup firmware to "Image1" ("Activate"),
   then reboot.
3. After booting into OpenWrt initramfs firmware, access the device at IP
   192.168.1.1 and install the OpenWrt sysupgrade image.
4. Device automatically reboots once again into OpenWrt.
5. (Optional) To enable default port LED handling, change boot command by
   running in OpenWrt CLI: fw_setenv bootcmd "rtk network on; boota"
   Note: This may cause VLAN leaking during boot.

Back to stock:

1. Reset boot command to stock: "fw_setenv bootcmd boota"
2. Change to secondary firmware partition: "fw_setsys bootpartition 1"
3. Reboot. Device will now boot into stock firmware.
3. (Optional) Revert to stock firmware also for "Image1" firmware slot via
   vendor web GUI.

Signed-off-by: Shine- GH <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/26006
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
This commit is contained in:
Shine- GH authored and Jonas Jelonek committed 2026-10-19 21:31:27 +02:00
1 parent 0dfc92701b
commit 4e16c2ed8f
3 files changed
+137

No files matched your search

@@ -67,6 +67,7 @@ realtek_setup_macs()
linksys,lgs328mpc-v2|\
linksys,lgs352c|\
netgear,gs108t-v3|\
netgear,gs110tp-v3|\
netgear,gs110tpp-v1|\
netgear,gs110tup-v1|\
netgear,gs308t-v1|\
@@ -0,0 +1,128 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "rtl8380_netgear_gigabit.dtsi"
#include <dt-bindings/leds/common.h>
/ {
compatible = "netgear,gs110tp-v3", "realtek,rtl838x-soc";
model = "Netgear GS110TP v3";
aliases {
led-boot = &led_power_green;
led-failsafe = &led_power_amber;
led-running = &led_power_green;
led-upgrade = &led_power_amber;
};
leds {
compatible = "gpio-leds";
led_power_amber: led-0 {
color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_POWER;
gpios = <&gpio1 32 GPIO_ACTIVE_LOW>;
};
led_power_green: led-1 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_POWER;
gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
};
};
/* i2c of the left SFP cage: port 9 */
i2c0: i2c-gpio-0 {
compatible = "i2c-gpio";
sda-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
scl-gpios = <&gpio1 36 (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-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
mod-def0-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
tx-disable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
};
/* i2c of the right SFP cage: port 10 */
i2c1: i2c-gpio-1 {
compatible = "i2c-gpio";
sda-gpios = <&gpio1 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
scl-gpios = <&gpio1 36 (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-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
mod-def0-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
tx-disable-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
};
};
&firmware {
openwrt,ih-magic = <0x4e474520>;
};
&uart1 {
status = "okay";
pse: ethernet-pse {
compatible = "netgear,gs110tp-v3-pse", "realtek,pse-mcu-gen1";
current-speed = <19200>;
disable-ports-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
pse-pis {
#address-cells = <1>;
#size-cells = <0>;
PSE_PI(0)
PSE_PI(1)
PSE_PI(2)
PSE_PI(3)
PSE_PI(4)
PSE_PI(5)
PSE_PI(6)
PSE_PI(7)
};
};
};
/* Copper ports lan1..lan8 (phy8..phy15) -> MCU PoE ports 0..7 */
&phy8 { pses = <&pse_pi0>; };
&phy9 { pses = <&pse_pi1>; };
&phy10 { pses = <&pse_pi2>; };
&phy11 { pses = <&pse_pi3>; };
&phy12 { pses = <&pse_pi4>; };
&phy13 { pses = <&pse_pi5>; };
&phy14 { pses = <&pse_pi6>; };
&phy15 { pses = <&pse_pi7>; };
&switch0 {
ethernet-ports {
port24: port@24 {
reg = <24>;
label = SWITCH_PORT_LABEL(9);
pcs-handle = <&serdes4 0>;
phy-mode = "1000base-x";
managed = "in-band-status";
sfp = <&sfp0>;
};
port26: port@26 {
reg = <26>;
label = SWITCH_PORT_LABEL(10);
pcs-handle = <&serdes5 0>;
phy-mode = "1000base-x";
managed = "in-band-status";
sfp = <&sfp1>;
};
};
};
+8
View File
@@ -264,6 +264,14 @@ define Device/netgear_gs108t-v3
endef
TARGET_DEVICES += netgear_gs108t-v3
define Device/netgear_gs110tp-v3
$(Device/netgear_nge)
DEVICE_MODEL := GS110TP
DEVICE_VARIANT := v3
DEVICE_PACKAGES += kmod-pse-realtek-mcu-uart
endef
TARGET_DEVICES += netgear_gs110tp-v3
define Device/netgear_gs110tpp-v1
$(Device/netgear_nge)
DEVICE_MODEL := GS110TPP