return 0;
        }
 
-       val = RSTCTRL_FE | RSTCTRL_PPE;
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
                regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, 0);
-
-               val |= RSTCTRL_ETH;
-               if (MTK_HAS_CAPS(eth->soc->caps, MTK_RSTCTRL_PPE1))
-                       val |= RSTCTRL_PPE1;
+               val = RSTCTRL_PPE0_V2;
+       } else {
+               val = RSTCTRL_PPE0;
        }
 
-       ethsys_reset(eth, val);
+       if (MTK_HAS_CAPS(eth->soc->caps, MTK_RSTCTRL_PPE1))
+               val |= RSTCTRL_PPE1;
+
+       ethsys_reset(eth, RSTCTRL_ETH | RSTCTRL_FE | val);
 
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
                regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN,
 
 /* ethernet reset control register */
 #define ETHSYS_RSTCTRL                 0x34
 #define RSTCTRL_FE                     BIT(6)
-#define RSTCTRL_PPE                    BIT(31)
-#define RSTCTRL_PPE1                   BIT(30)
+#define RSTCTRL_PPE0                   BIT(31)
+#define RSTCTRL_PPE0_V2                        BIT(30)
+#define RSTCTRL_PPE1                   BIT(31)
 #define RSTCTRL_ETH                    BIT(23)
 
 /* ethernet reset check idle register */
 #define ETHSYS_FE_RST_CHK_IDLE_EN      0x28
 
-/* ethernet reset control register */
-#define ETHSYS_RSTCTRL         0x34
-#define RSTCTRL_FE             BIT(6)
-#define RSTCTRL_PPE            BIT(31)
-
 /* ethernet dma channel agent map */
 #define ETHSYS_DMA_AG_MAP      0x408
 #define ETHSYS_DMA_AG_MAP_PDMA BIT(0)