[Feature][T8TSK-170]compatible with gpio power mode

Change-Id: I0be471cafa484e3d646388a3ca6cdb2915338946
diff --git a/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c b/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
index 8473ba9..0915b9c 100755
--- a/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
+++ b/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
@@ -736,12 +736,13 @@
 	mt_set_gpio_ies(GPIO167, GPIO_IES_ENABLE);
 
 	/* For PCM  */
-
+//xf.li2023/03/07 modify for phy gpio start
 	/* GPIO24 */
-	mt_set_gpio_mode(GPIO24, 0);
-	mt_set_gpio_dir(GPIO24, GPIO_DIR_IN);
-	mt_set_gpio_pull_enable(GPIO24, GPIO_PULL_ENABLE);
-	mt_set_gpio_pull_select(GPIO24, GPIO_PULL_UP);
+//	mt_set_gpio_mode(GPIO24, 0);
+//	mt_set_gpio_dir(GPIO24, GPIO_DIR_IN);
+//	mt_set_gpio_pull_enable(GPIO24, GPIO_PULL_ENABLE);
+//	mt_set_gpio_pull_select(GPIO24, GPIO_PULL_UP);
+//xf.li2023/03/07 modify for phy gpio start
 	/* GPIO138~GPIO168 for modem */
 	mt_set_gpio_mode(GPIO138, 1);
 	mt_set_gpio_mode(GPIO139, 1);
@@ -852,11 +853,11 @@
 	mt_set_gpio_mode(GPIO23, 0);
 	mt_set_gpio_dir(GPIO23, GPIO_DIR_OUT);
 	mt_set_gpio_out(GPIO23, GPIO_OUT_ZERO);
-	
-	mt_set_gpio_mode(GPIO24, 0);
-	mt_set_gpio_dir(GPIO24, GPIO_DIR_OUT);
-	mt_set_gpio_out(GPIO24, GPIO_OUT_ZERO);
-	
+//xf.li2023/03/07 modify for phy gpio start	
+//	mt_set_gpio_mode(GPIO24, 0);
+//	mt_set_gpio_dir(GPIO24, GPIO_DIR_OUT);
+//	mt_set_gpio_out(GPIO24, GPIO_OUT_ZERO);
+//xf.li2023/03/07 modify for phy gpio end
 	mt_set_gpio_mode(GPIO25, 0);
 	mt_set_gpio_dir(GPIO25, GPIO_DIR_OUT);
 	mt_set_gpio_out(GPIO25, GPIO_OUT_ZERO);
@@ -925,7 +926,16 @@
 	mt_set_gpio_mode(GPIO25, 0);
 	mt_set_gpio_dir(GPIO25, GPIO_DIR_IN);
     //xf.li2022/11/09 modify for phy gpio end
-
+    //xf.li2023/03/07 modify for phy gpio start
+        /* GPIO24 */
+	mt_set_gpio_mode(GPIO24, 0);
+	mt_set_gpio_dir(GPIO24, GPIO_DIR_OUT);
+	mt_set_gpio_out(GPIO24, GPIO_OUT_ONE);
+        /* GPIO0178 */
+	mt_set_gpio_mode(GPIO178, 0);
+	mt_set_gpio_dir(GPIO178, GPIO_DIR_OUT);
+	mt_set_gpio_out(GPIO178, GPIO_OUT_ONE);
+    //xf.li2022/03/07 modify for phy gpio end
 //dongyu@2022.11.03 Modify the gpio of imu/smi230 start
         mt_set_gpio_mode(GPIO29,0);
         mt_set_gpio_dir(GPIO29,GPIO_DIR_IN);
diff --git a/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/auto2735evb.dts b/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/auto2735evb.dts
index 0bf6e80..a8f3166 100755
--- a/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/auto2735evb.dts
+++ b/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/auto2735evb.dts
@@ -640,12 +640,12 @@
 			output-high;
 		};
 				
-		pins_rts {
+/*		pins_rts {
 			pinmux = <PINMUX_GPIO178__FUNC_URTS2>;
 			output-high;
 			bias-pull-up;
 			input-schmitt-enable;
-		};
+		};*/
 
 		pins_cts {
 			pinmux = <PINMUX_GPIO177__FUNC_UCTS2>;
diff --git a/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c b/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
index 0f36430..9010740 100755
--- a/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
+++ b/src/kernel/linux/v4.19/drivers/net/phy/marvell-88q.c
@@ -45,6 +45,8 @@
 #define NAD_WAKEUP_PHY1			275
 /* NAD_RESET_PHY1 : GPIO26 */
 #define NAD_RESET_PHY1			294
+/* PHY_POWER_SUPPLY : GPIO178 */
+#define PHY_POWER_SUPPLY		446
 
 #define Q2220_LPSD_CTRL_1		(MII_ADDR_C45 | 0x038021)
 #define Q2220_LPSD_DISABLE_REMOTE_WAKE_UP	BIT(15) | BIT(11)
@@ -241,6 +243,8 @@
     mdelay(50);
     printk("reg 038020 = %x\n", phy_read(phydev, Q2220_LPSD_STATUS));
     gpio_direction_output(NAD_RESET_PHY1, 0);
+    mdelay(1);
+    gpio_direction_output(PHY_POWER_SUPPLY, 0);
     if_suspend = 1;
     return 0;
     //xf.li 2022/11/9 modify for API-647
@@ -251,6 +255,8 @@
     if(if_suspend == 1)
     {
         printk("phy awake start\n");
+        gpio_direction_output(PHY_POWER_SUPPLY, 1);
+        mdelay(1);
         gpio_direction_output(NAD_WAKEUP_PHY1, 1);
         udelay(1100);
         gpio_direction_output(NAD_WAKEUP_PHY1, 0);