[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);