[Feature][T8TSK-81]Merged and upload MR3.0 New Modify content,merged meta-sdk,modem

Change-Id: Idb6c80fcf349c0db72e7ca3fa5b1fd7944ec1290
diff --git a/src/kernel/modules/connectivity/2.0/conninfra_driver/Makefile b/src/kernel/modules/connectivity/2.0/conninfra_driver/Makefile
index 67ec6d9..1ca5c6b 100755
--- a/src/kernel/modules/connectivity/2.0/conninfra_driver/Makefile
+++ b/src/kernel/modules/connectivity/2.0/conninfra_driver/Makefile
@@ -74,9 +74,11 @@
 ccflags-y += -D CONFIG_CONNINFRA_THERMAL_SUPPORT=1
 endif
 
-ifeq ($(ENABLE_TCXO), yes)
-    ccflags-y += -D ENABLE_TCXO=1
-endif
+#Typethree@2023.2.01 modify for TCXO hw version start
+#ifeq ($(ENABLE_TCXO), yes)
+#    ccflags-y += -D ENABLE_TCXO=1
+#endif
+#Typethree@2023.2.01 modify for TCXO hw version end
 
 $(patsubst CONFIG_%, -DCFG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
 $(patsubst CONFIG_%, -DCFG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \
diff --git a/src/kernel/modules/connectivity/2.0/conninfra_driver/platform/consys_hw.c b/src/kernel/modules/connectivity/2.0/conninfra_driver/platform/consys_hw.c
index 1415faa..f3d038d 100755
--- a/src/kernel/modules/connectivity/2.0/conninfra_driver/platform/consys_hw.c
+++ b/src/kernel/modules/connectivity/2.0/conninfra_driver/platform/consys_hw.c
@@ -21,6 +21,10 @@
 #include <linux/of_device.h>
 #include <linux/of_reserved_mem.h>
 #include <linux/pinctrl/consumer.h>
+/*Typethree@2023.2.01 modify for TCXO hw version start*/
+#include <linux/gpio.h>
+/*Typethree@2023.2.01 modify for TCXO hw version start*/
+
 
 #include "osal.h"
 
@@ -510,6 +514,12 @@
 int mtk_conninfra_probe(struct platform_device *pdev)
 {
 	int ret = -1;
+    
+/*Typethree add for tcxo power problem 2023/02/03 start*/
+    int gpio_81 = 0;
+    int gpio_82 = 0;
+/*Typethree add for tcxo power problem 2023/02/03 start*/
+
 #if CFG_CONNINFRA_FW_LOG_SUPPORT
 	struct consys_emi_addr_info* emi_info = NULL;
 #endif
@@ -552,12 +562,21 @@
 		pr_err("pmic_mng init fail, %d\n", ret);
 		return -5;
 	}
+	
+    /*Typethree add for tcxo power problem 2023/02/03 start*/
+	gpio_81 = gpio_get_value(81+268);
+	gpio_82 = gpio_get_value(82+268);
 
-#ifdef ENABLE_TCXO
-	conn_hw_env.tcxo_support = true;
-#else
-	consys_hw_tcxo_parser(pdev);
-#endif
+	if (gpio_81 != 0 && gpio_82 == 0)
+	{
+		conn_hw_env.tcxo_support = true;
+	}
+	else
+	{
+		consys_hw_tcxo_parser(pdev);
+	}
+    /*Typethree add for tcxo power problem 2023/02/03 end*/
+
 
 #if CFG_CONNINFRA_FW_LOG_SUPPORT
 	/* Setup connsys log emi base */
diff --git a/src/kernel/modules/connectivity/2.0/gps_driver/data_link/hal/gps_dl_power_ctrl.c b/src/kernel/modules/connectivity/2.0/gps_driver/data_link/hal/gps_dl_power_ctrl.c
index 1da21c4..878c01b 100644
--- a/src/kernel/modules/connectivity/2.0/gps_driver/data_link/hal/gps_dl_power_ctrl.c
+++ b/src/kernel/modules/connectivity/2.0/gps_driver/data_link/hal/gps_dl_power_ctrl.c
@@ -33,7 +33,9 @@
 #if GPS_DL_ON_CTP
 #include "gps_dl_ctp.h"
 #endif
-
+/*Typethree add for tcxo power problem 2023/01/12 start*/
+#include <asm/io.h>
+/*Typethree add for tcxo power problem 2023/01/12 end*/
 /* TODO: move them into a single structure */
 bool g_gps_common_on;
 bool g_gps_dsp_on_array[GPS_DATA_LINK_NUM];
@@ -337,6 +339,18 @@
 		gps_dl_hw_gps_dsp_ctrl(GPS_L5_DSP_CLEAR_PWR_STAT);
 }
 
+/*Typethree add for tcxo power problem 2023/01/12 start*/
+void gps_dl_hal_conn_power_ctrl_temp(unsigned int op)
+{
+	/*Troubleshoot the first GNSS startup failure due to no power supply for TCXO conn_vcn1.8*/
+	unsigned int md2gps_status = 0;
+	char *addr = ioremap(0x1000662c, 0x4);
+	md2gps_status = *(unsigned int *)addr;
+	md2gps_status = (md2gps_status & 0xFFFFFFFE)| op;
+	*(unsigned int *)addr = md2gps_status;
+	iounmap(addr);
+}
+/*Typethree add for tcxo power problem 2023/01/12 end*/
 int gps_dl_hal_conn_power_ctrl(enum gps_dl_link_id_enum link_id, int op)
 {
 	bool dma_en_flag = gps_dl_hal_get_dma_irq_en_flag();
@@ -349,6 +363,9 @@
 
 	if (1 == op) {
 		if (g_conn_user == 0) {
+/*Typethree add for tcxo power problem 2023/01/12 start*/
+			gps_dl_hal_conn_power_ctrl_temp(op);
+/*Typethree add for tcxo power problem 2023/01/12 end*/
 			gps_dl_log_info_show();
 			if (!gps_dl_hal_conn_infra_driver_on())
 				return -1;
@@ -383,6 +400,9 @@
 			gps_dl_wake_lock_hold(false);
 #endif
 			gps_dl_hal_conn_infra_driver_off();
+/*Typethree add for tcxo power problem 2023/01/12 start*/
+			gps_dl_hal_conn_power_ctrl_temp(op);
+/*Typethree add for tcxo power problem 2023/01/12 end*/
 		}
 	}