[Feature][T8TSK-153][GNSS]GPIO-81 and GPIO-82 were used to distinguish TMS or TCXO hw version

Change-Id: Ifa24cd33ed8e6547f4d9f8f2e3750dcc50ee3e63
diff --git a/src/bsp/lk/app/blxboot/rules.mk b/src/bsp/lk/app/blxboot/rules.mk
index b832b2c..2dfae7e 100644
--- a/src/bsp/lk/app/blxboot/rules.mk
+++ b/src/bsp/lk/app/blxboot/rules.mk
@@ -28,9 +28,11 @@
 GLOBAL_COMPILEFLAGS += -DAB_OTA_UPDATER
 endif
 
-ifeq ($(strip $(ENABLE_TCXO)),yes)
-GLOBAL_COMPILEFLAGS += -DENABLE_TCXO
-endif
+#Typethree@2023.2.01 modify for TCXO hw version start
+#ifeq ($(strip $(ENABLE_TCXO)),yes)
+#GLOBAL_COMPILEFLAGS += -DENABLE_TCXO
+#endif
+#Typethree@2023.2.01 modify for TCXO hw version end
 
 # loading kernel format config,
 # 0: fit image header 1: android image header
diff --git a/src/bsp/lk/makefile b/src/bsp/lk/makefile
index be3f634..6cd54cc 100644
--- a/src/bsp/lk/makefile
+++ b/src/bsp/lk/makefile
@@ -24,7 +24,10 @@
 export SECURE_BOOT_TYPE
 export AB_OTA_UPDATER
 export AVB_ENABLE_ANTIROLLBACK
-export ENABLE_TCXO
+
+#Typethree@2023.2.01 modify for TCXO hw version start
+#export ENABLE_TCXO
+#Typethree@2023.2.01 modify for TCXO hw version end
 
 # vaneer makefile that calls into the engine with lk as the build root
 # if we're the top level invocation, call ourselves with additional args
diff --git a/src/bsp/lk/platform/mt2735/drivers/clkbuf/clkbuf_ctl.c b/src/bsp/lk/platform/mt2735/drivers/clkbuf/clkbuf_ctl.c
index 7058a94..ac70548 100644
--- a/src/bsp/lk/platform/mt2735/drivers/clkbuf/clkbuf_ctl.c
+++ b/src/bsp/lk/platform/mt2735/drivers/clkbuf/clkbuf_ctl.c
@@ -40,6 +40,9 @@
 
 #include <platform/clkbuf_ctl.h>
 #include <platform/srclken_rc.h>
+/*Typethree2023/1/29 modify for TCXO hw version start*/
+#include <platform/mt_gpio.h>
+/*Typethree2023/1/29 modify for TCXO hw version end*/
 
 #define clk_buf_warn(fmt, args...)		dprintf(ALWAYS, fmt, ##args)
 #define clk_buf_dbg(fmt, args...)		//dprintf(SPEW, fmt, ##args)
@@ -311,13 +314,19 @@
 
 	pmic_config_interface(PMIC_XO_EXTBUF1_MODE_ADDR, PMIC_CW00_INIT_VAL,
 				PMIC_REG_MASK, PMIC_REG_SHIFT);
-#ifdef ENABLE_TCXO //tcxo
-	pmic_config_interface(PMIC_XO_EXTBUF3_EN_M_ADDR, PMIC_CW00_H_INIT_VAL_TCXO,
-				PMIC_REG_MASK, PMIC_REG_SHIFT);
-#else //normal case
-	pmic_config_interface(PMIC_XO_EXTBUF3_EN_M_ADDR, PMIC_CW00_H_INIT_VAL,
-				PMIC_REG_MASK, PMIC_REG_SHIFT);
-#endif
+/*Typethree2023/1/29 modify for TCXO hw version start*/
+//tcxo
+    if (mt_get_gpio_in(GPIO81) != 0 && mt_get_gpio_in(GPIO82) == 0)  //TCXO open
+    {
+        pmic_config_interface(PMIC_XO_EXTBUF3_EN_M_ADDR, PMIC_CW00_H_INIT_VAL_TCXO,
+                    PMIC_REG_MASK, PMIC_REG_SHIFT);
+    }
+    else 
+    {
+        pmic_config_interface(PMIC_XO_EXTBUF3_EN_M_ADDR, PMIC_CW00_H_INIT_VAL,
+                    PMIC_REG_MASK, PMIC_REG_SHIFT);
+    }
+/*Typethree2023/1/29 modify for TCXO hw version end*/
 	pmic_config_interface(PMIC_XO_EXTBUF7_MODE_ADDR, PMIC_CW09_H_INIT_VAL,
 				PMIC_REG_MASK, PMIC_REG_SHIFT);
 
@@ -411,29 +420,33 @@
 				PMIC_TMA_KEY_H_MASK, PMIC_TMA_KEY_H_SHIFT);
 
 	/* disable clock buffer by DCT setting */
-
-#ifdef ENABLE_TCXO  //tcxo
-	pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
-				      PMIC_XO_EXTBUF2_MODE_MASK,
-				      PMIC_XO_EXTBUF2_MODE_MASK,
-				      PMIC_XO_EXTBUF2_MODE_SHIFT);
-	pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
-				      PMIC_XO_EXTBUF2_EN_M_MASK,
-				      PMIC_XO_EXTBUF2_EN_M_MASK,
-				      PMIC_XO_EXTBUF2_EN_M_SHIFT);
-#else //normal case
-	if (CLK_BUF2_STATUS_PMIC == CLOCK_BUFFER_DISABLE) {
-		pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
-				      PMIC_XO_EXTBUF2_MODE_MASK,
-				      PMIC_XO_EXTBUF2_MODE_MASK,
-				      PMIC_XO_EXTBUF2_MODE_SHIFT);
-		pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
-				      PMIC_XO_EXTBUF2_EN_M_MASK,
-				      PMIC_XO_EXTBUF2_EN_M_MASK,
-				      PMIC_XO_EXTBUF2_EN_M_SHIFT);
-	}
-#endif
-
+/*Typethree2023/1/29 modify for TCXO hw version start*/
+//tcxo
+    if (mt_get_gpio_in(GPIO81) !=0 && mt_get_gpio_in(GPIO82) == 0)
+    {
+        pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
+                        PMIC_XO_EXTBUF2_MODE_MASK,
+                        PMIC_XO_EXTBUF2_MODE_MASK,
+                        PMIC_XO_EXTBUF2_MODE_SHIFT);
+        pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
+                        PMIC_XO_EXTBUF2_EN_M_MASK,
+                        PMIC_XO_EXTBUF2_EN_M_MASK,
+                        PMIC_XO_EXTBUF2_EN_M_SHIFT);
+    }
+    else
+    {
+        if (CLK_BUF2_STATUS_PMIC == CLOCK_BUFFER_DISABLE) {
+            pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
+                        PMIC_XO_EXTBUF2_MODE_MASK,
+                        PMIC_XO_EXTBUF2_MODE_MASK,
+                        PMIC_XO_EXTBUF2_MODE_SHIFT);
+            pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
+                        PMIC_XO_EXTBUF2_EN_M_MASK,
+                        PMIC_XO_EXTBUF2_EN_M_MASK,
+                        PMIC_XO_EXTBUF2_EN_M_SHIFT);
+        }
+    }
+/*Typethree2023/1/29 modify for TCXO hw version end*/
 	if (CLK_BUF3_STATUS_PMIC == CLOCK_BUFFER_DISABLE) {
 		pmic_config_interface(PMIC_DCXO_CW00_CLR_ADDR,
 				      PMIC_XO_EXTBUF3_MODE_MASK,
diff --git a/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c b/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
old mode 100644
new mode 100755
index bf8d8bd..4cba677
--- a/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
+++ b/src/bsp/lk/platform/mt2735/drivers/gpio/mt_gpio.c
@@ -898,6 +898,22 @@
 	mt_set_gpio_ies(GPIO152, GPIO_IES_ENABLE);
 //chencheng2022/2/22 modify for DR/DI gpio end
 
+//Typethree2023/1/29 modify for TCXO hw version start
+	mt_set_gpio_mode(GPIO81, 0);
+	mt_set_gpio_dir(GPIO81, GPIO_DIR_IN);
+	mt_set_gpio_pull_enable(GPIO81, GPIO_PULL_DISABLE);
+	mt_set_gpio_smt(GPIO81, GPIO_SMT_ENABLE);
+	mt_set_gpio_ies(GPIO81, GPIO_IES_ENABLE);
+
+	mt_set_gpio_mode(GPIO82, 0);
+	mt_set_gpio_dir(GPIO82, GPIO_DIR_IN);
+	mt_set_gpio_pull_enable(GPIO82, GPIO_PULL_DISABLE);
+	mt_set_gpio_smt(GPIO82, GPIO_SMT_ENABLE);
+	mt_set_gpio_ies(GPIO82, GPIO_IES_ENABLE);
+//Typethree2023/1/29 modify for TCXO hw version end
+}
+
+
     //you.chen2022/4/8 modify for wifi gpio start
 	mt_set_gpio_out(GPIO202, GPIO_OUT_ONE);
     //you.chen2022/4/8 modify for wifi gpio end
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 33798e2..0bf6e80 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
@@ -850,7 +850,9 @@
 		pins_bus {
 			pinmux = <PINMUX_GPIO81__FUNC_SDA5>,
 				 <PINMUX_GPIO82__FUNC_SCL5>;
-                        bias-pull-up;
+//Typethree@2023.2.01 modify for cancel internal pull-up start
+                        bias-disable;
+//Typethree@2023.2.01 modify for cancel internal pull-up end
 			mediatek,res-sel = <3>;
                 };
         };
diff --git a/src/kernel/linux/v4.19/drivers/soc/mediatek/Kconfig b/src/kernel/linux/v4.19/drivers/soc/mediatek/Kconfig
index 9db3153..7945f5c 100755
--- a/src/kernel/linux/v4.19/drivers/soc/mediatek/Kconfig
+++ b/src/kernel/linux/v4.19/drivers/soc/mediatek/Kconfig
@@ -83,16 +83,9 @@
 	  platform could enter deeper sleep mode when cpu preparing to
 	  power down if it have sufficient time between warmboot.
 
-config MTK_TCXO_SUPPORT
-	bool "MediaTek SCPSYS Support"
-	default n
-	help
-	  Say yes here to add support for the MediaTek TCXO in connsys
-	  power domain, and TCXO is for customer request and it is better
-	  than tsx, has better performance and quailty.
-	  Select Y if you use TCXO.
-	  If unsure select "N".
+#Typethree@2023.2.01 modify for TCXO hw version start
 
+#Typethree@2023.2.01 modify for TCXO hw version end
 
 config MTK_IPI
 	tristate "MediaTek IPI Support"
diff --git a/src/kernel/linux/v4.19/drivers/soc/mediatek/mtk-scpsys.c b/src/kernel/linux/v4.19/drivers/soc/mediatek/mtk-scpsys.c
index 6540816..2c822d1 100755
--- a/src/kernel/linux/v4.19/drivers/soc/mediatek/mtk-scpsys.c
+++ b/src/kernel/linux/v4.19/drivers/soc/mediatek/mtk-scpsys.c
@@ -25,6 +25,9 @@
 #include <dt-bindings/power/mt8173-power.h>
 #include <dt-bindings/power/mt6880-power.h>
 #include <dt-bindings/power/mt6890-power.h>
+/*Typethree add for tcxo power problem 2023/01/30 start*/
+#include <linux/gpio.h>
+/*Typethree add for tcxo power problem 2023/01/30 end*/
 #include "mtk-scpsys.h"
 
 #define MTCMOS_BRINGUP      0
@@ -652,26 +655,28 @@
 	struct scp_domain *scpd = container_of(genpd, struct scp_domain, genpd);
 	struct scp *scp = scpd->scp;
 	void __iomem *ctl_addr = scp->base + scpd->data->ctl_offs;
-/*Typethree add for tcxo power problem 2023/01/12 start*/
-#ifdef CONFIG_MTK_TCXO_SUPPORT
-    void __iomem *conn_status_addr = scp->base + CONN_STATUS;
-#endif
-/*Typethree add for tcxo power problem 2023/01/12 end*/
-	u32 val;
+    
+    u32 val;
 	int ret, tmp;
-/*Typethree add for tcxo power problem 2023/01/12 start*/
-#ifdef CONFIG_MTK_TCXO_SUPPORT
-	val = readl(conn_status_addr);
-	if (strcmp(genpd->name, "conn") == 0) {
-		if ((val & CONN_STATUS_BIT) == CONN_STATUS_BIT)
-			dev_err(scp->dev, "gps try to power on\n");
-		else {
-			dev_err(scp->dev, "Skip conn power on\n");
-			return 0;
-		}
-	}
-#endif
-/*Typethree add for tcxo power problem 2023/01/12 end*/
+	
+/*Typethree add for tcxo power problem 2023/01/30 start*/
+	int gpio_81 = gpio_get_value(81+268);
+	int gpio_82 = gpio_get_value(82+268);
+    void __iomem *conn_status_addr = scp->base + CONN_STATUS;
+
+    if (gpio_81 != 0 && gpio_82 == 0) //TCXO open
+    {
+        val = readl(conn_status_addr);
+        if (strcmp(genpd->name, "conn") == 0) {
+            if ((val & CONN_STATUS_BIT) == CONN_STATUS_BIT)
+                dev_err(scp->dev, "gps try to power on\n");
+            else {
+                dev_err(scp->dev, "Skip conn power on\n");
+                return 0;
+            }
+        }
+    }
+/*Typethree add for tcxo power problem 2023/01/30 end*/
 
 	ret = scpsys_regulator_enable(scpd);
 	if (ret < 0)
@@ -778,23 +783,27 @@
 	struct scp_domain *scpd = container_of(genpd, struct scp_domain, genpd);
 	struct scp *scp = scpd->scp;
 	void __iomem *ctl_addr = scp->base + scpd->data->ctl_offs;
-#ifdef CONFIG_MTK_TCXO_SUPPORT
-    void __iomem *conn_status_addr = scp->base + CONN_STATUS;
-#endif
+
 	u32 val;
 	int ret, tmp;
+/*Typethree add for tcxo power problem 2023/01/30 start*/
+	int gpio_81 = gpio_get_value(81+268);
+	int gpio_82 = gpio_get_value(82+268);
+    void __iomem *conn_status_addr = scp->base + CONN_STATUS;
 
-#ifdef CONFIG_MTK_TCXO_SUPPORT
-	val = readl(conn_status_addr);
-	if (strcmp(genpd->name, "conn") == 0) {
-		if ((val & CONN_STATUS_BIT) == CONN_STATUS_BIT)
-			dev_err(scp->dev, "gps try to power off\n");
-		else {
-			dev_err(scp->dev, "Skip conn power off\n");
-			return 0;
-		}
-	}
-#endif
+    if (gpio_81 != 0 && gpio_82 == 0)
+    {
+        val = readl(conn_status_addr);
+        if (strcmp(genpd->name, "conn") == 0) {
+            if ((val & CONN_STATUS_BIT) == CONN_STATUS_BIT)
+                dev_err(scp->dev, "gps try to power off\n");
+            else {
+                dev_err(scp->dev, "Skip conn power off\n");
+                return 0;
+            }
+        }
+    }
+/*Typethree add for tcxo power problem 2023/01/30 end*/
 
 	ret = scpsys_bus_protect_enable(scpd);
 	if (ret < 0)
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 */