Merge "[feature] key infomation output by AT" into SZZT
diff --git a/src/kernel/linux/v4.14/drivers/misc/mediatek/usb20/mt2731/usb20.c b/src/kernel/linux/v4.14/drivers/misc/mediatek/usb20/mt2731/usb20.c
index 6bcd1f1..4157777 100644
--- a/src/kernel/linux/v4.14/drivers/misc/mediatek/usb20/mt2731/usb20.c
+++ b/src/kernel/linux/v4.14/drivers/misc/mediatek/usb20/mt2731/usb20.c
@@ -1510,7 +1510,9 @@
 
 	if (!gpio_get_value(musb->wakeup_gpio)) {
 		DBG(0, "low, keep waklock\n");
-		pm_stay_awake(musb->controller);
+		/*++++++modify by chencheng 2022/2/8+++++++*/
+		//pm_stay_awake(musb->controller);
+		/*------modify by chencheng 2022/2/8-------*/
 		irq_set_irq_type(irq, IRQF_TRIGGER_HIGH);
 	} else {
 		DBG(0, "high, free wakelock\n");
diff --git a/src/lynq/framework/lynq-atsvc/src/factory/lynq_factory.cpp b/src/lynq/framework/lynq-atsvc/src/factory/lynq_factory.cpp
index 6098f99..d30b6e0 100755
--- a/src/lynq/framework/lynq-atsvc/src/factory/lynq_factory.cpp
+++ b/src/lynq/framework/lynq-atsvc/src/factory/lynq_factory.cpp
@@ -377,28 +377,64 @@
 int lynq_check_gpio()
 {
     FILE *fp;
-    int lynq_gpio_arr[58] = {61,47,49,50,48,43,14,15,13,6,7,5,4,93,94,96,95,87,88,82,81,27,26,132,131,130,133,79,80,77,78,90,28,60,62,63,19,18,64,59,10,3,8,41,42,40,39,38,37,55,54,53,52,89,24,46,44,45};
+    int lynq_gpio_arr[57] = {47,49,50,48,43,14,15,13,6,7,5,4,93,94,96,95,87,88,82,81,27,26,132,131,130,133,79,80,77,78,90,28,60,62,63,19,18,64,59,10,3,8,41,42,40,39,38,37,55,54,53,52,89,24,46,44,45};
     char lynq_set_gpio_arr[256] = {0};
     char lynq_get_gpio_state[512] = {0};
     char lynq_show_gpio_state[64] = {0};
     int lynq_gpio_low = 0;
     int lynq_gpio_hig = 0;
-    int i = 0;
+    int i = 0,m = 0;
     int lynq_gpio_beta_state = 1;
 
-    for(i = 0; i < 58; i++)
+    for(m = 0; m < 57; m++)
+    {
+        bzero(lynq_set_gpio_arr, 256);
+        sprintf(lynq_set_gpio_arr,"echo mode %d 0 > /sys/devices/platform/10005000.pinctrl/mt_gpio",(char*)lynq_gpio_arr[m]);
+        system(lynq_set_gpio_arr);
+        bzero(lynq_set_gpio_arr, 256);
+        sprintf(lynq_set_gpio_arr,"echo out %d 0 > /sys/devices/platform/10005000.pinctrl/mt_gpio",(char*)lynq_gpio_arr[m]);
+        system(lynq_set_gpio_arr);
+    }
+
+    for(i = 0; i < 57; i++)
     {
         lynq_gpio_low = 0;
         lynq_gpio_hig = 0;
+
         bzero(lynq_set_gpio_arr, 256);
-        sprintf(lynq_set_gpio_arr,"echo mode %d 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio & echo dir %d 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio & echo out %d 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio",(char*)lynq_gpio_arr[i],(char*)lynq_gpio_arr[i],(char*)lynq_gpio_arr[i]);
+        sprintf(lynq_set_gpio_arr,"echo mode %d 0 > /sys/devices/platform/10005000.pinctrl/mt_gpio",(char*)lynq_gpio_arr[i]);
         system(lynq_set_gpio_arr);
+
         bzero(lynq_set_gpio_arr, 256);
-        sprintf(lynq_set_gpio_arr,"cat /sys/devices/platform/10005000.pinctrl/mt_gpio |grep %03d:",(char *)lynq_gpio_arr[i]);
+        sprintf(lynq_set_gpio_arr,"echo out %d 1 > /sys/devices/platform/10005000.pinctrl/mt_gpio",(char*)lynq_gpio_arr[i]);
+        system(lynq_set_gpio_arr);
+
+        bzero(lynq_set_gpio_arr, 256);
+        sprintf(lynq_set_gpio_arr,"cat /sys/devices/platform/10005000.pinctrl/mt_gpio | grep 061");
         fp=popen(lynq_set_gpio_arr, "r");
         bzero(lynq_get_gpio_state, 512);
         fgets(lynq_get_gpio_state,sizeof(lynq_get_gpio_state),fp);
-/*        if(strlen(lynq_get_gpio_state) > 0)
+        /*       if(strlen(lynq_get_gpio_state) > 0)
+        {
+          lynq_factory_response_ttyGS3(lynq_get_gpio_state);
+          lynq_factory_response_ttyGS3("\n");
+        }*/
+        pclose(fp);
+        if(lynq_get_gpio_state[8] == '1')
+        {
+		lynq_gpio_hig = 1;
+        }
+
+        bzero(lynq_set_gpio_arr, 256);
+        sprintf(lynq_set_gpio_arr,"echo out %d 0 > /sys/devices/platform/10005000.pinctrl/mt_gpio",(char*)lynq_gpio_arr[i]);
+        system(lynq_set_gpio_arr);
+        
+        bzero(lynq_set_gpio_arr, 256);
+        sprintf(lynq_set_gpio_arr,"cat /sys/devices/platform/10005000.pinctrl/mt_gpio | grep 061");
+        fp=popen(lynq_set_gpio_arr, "r");
+        bzero(lynq_get_gpio_state, 512);
+        fgets(lynq_get_gpio_state,sizeof(lynq_get_gpio_state),fp);
+ /*      if(strlen(lynq_get_gpio_state) > 0)
         {
               lynq_factory_response_ttyGS3(lynq_get_gpio_state);
               lynq_factory_response_ttyGS3("\n");
@@ -408,25 +444,6 @@
         {
             lynq_gpio_low = 1;
         }
-
-        bzero(lynq_set_gpio_arr, 256);
-        sprintf(lynq_set_gpio_arr,"echo mode %d 0 >/sys/devices/platform/10005000.pinctrl/mt_gpio & echo dir %d 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio & echo out %d 1 >/sys/devices/platform/10005000.pinctrl/mt_gpio",(char*)lynq_gpio_arr[i],(char*)lynq_gpio_arr[i],(char*)lynq_gpio_arr[i]);
-        system(lynq_set_gpio_arr);
-        bzero(lynq_set_gpio_arr, 256);
-        sprintf(lynq_set_gpio_arr,"cat /sys/devices/platform/10005000.pinctrl/mt_gpio |grep %03d:",(char *)lynq_gpio_arr[i]);
-        fp=popen(lynq_set_gpio_arr, "r");
-        bzero(lynq_get_gpio_state, 512);
-        fgets(lynq_get_gpio_state,sizeof(lynq_get_gpio_state),fp);
-/*       if(strlen(lynq_get_gpio_state) > 0)
-        {
-              lynq_factory_response_ttyGS3(lynq_get_gpio_state);
-              lynq_factory_response_ttyGS3("\n");
-        }*/
-        pclose(fp);
-        if(lynq_get_gpio_state[8] == '1')
-        {
-            lynq_gpio_hig = 1;
-        }
         bzero(lynq_show_gpio_state, 64);
         if((lynq_gpio_low != 1) || (lynq_gpio_hig != 1))
         {