diff --git a/target/linux/generic/files/drivers/net/phy/rtl8306.c b/target/linux/generic/files/drivers/net/phy/rtl8306.c
index 78ded0ace4859c3daa94f08b42d32d2e33e886d4..513ef9e4e2c395b646cea7f8d9c4a41de3550c5e 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8306.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8306.c
@@ -519,7 +519,7 @@ rtl_get_cpuport(struct switch_dev *dev, const struct switch_attr *attr, struct s
 #endif
 
 static int
-rtl_reset(struct switch_dev *dev, const struct switch_attr *attr, struct switch_val *val)
+rtl_reset(struct switch_dev *dev)
 {
 	rtl_hw_init(dev);
 	return 0;
@@ -706,12 +706,6 @@ rtl_set_ports(struct switch_dev *dev, struct switch_val *val)
 }
 
 static struct switch_attr rtl_globals[] = {
-	{
-		.type = SWITCH_TYPE_INT,
-		.name = "reset",
-		.description = "Reset the switch",
-		.set = rtl_reset,
-	},
 	{
 		.type = SWITCH_TYPE_INT,
 		.name = "enable_vlan",
@@ -855,6 +849,7 @@ static const struct switch_dev_ops rtl8306_ops = {
 	.get_vlan_ports = rtl_get_ports,
 	.set_vlan_ports = rtl_set_ports,
 	.apply_config = rtl_hw_apply,
+	.reset_switch = rtl_reset,
 };
 
 static int