[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/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 */