a.vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/k65v1_64_bsp/inc/cust_rtc.h
--- a/vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/k65v1_64_bsp/inc/cust_rtc.h
+++ b/vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/k65v1_64_bsp/inc/cust_rtc.h
@@ -45,6 +45,6 @@
#define RTC_DEFAULT_YEA 2010
#define RTC_DEFAULT_MTH 1
#define RTC_DEFAULT_DOM 1
-#define RTC_2SEC_REBOOT_ENABLE 1
+#define RTC_2SEC_REBOOT_ENABLE 0
#define RTC_2SEC_MODE 2
#endif /* __CUST_RTC_H__ */
b.vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/default.mak
--- a/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/default.mak
+++ b/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/default.mak
@@ -104,8 +104,8 @@ CFG_STACK_USAGE_CHECK :=1
CFG_WORLD_PHONE_SUPPORT :=1
-ONEKEY_REBOOT_NORMAL_MODE_PL :=1
-KPD_PMIC_LPRST_TD :=1
+#ONEKEY_REBOOT_NORMAL_MODE_PL :=1
+KPD_PMIC_LPRST_TD :=0
CFG_USB_AUTO_DETECT :=0
CFG_USB_AUTO_DETECT_TIMEOUT_MS :=1000*3
c.vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/platform.c
--- a/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/platform.c
+++ b/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/platform.c
@@ -1776,7 +1776,7 @@ void platform_error_handler(void)
pal_log_info("PL delay for Long Press Reboot\n");
for ( i=3; i > 0;i-- ) {
if (mtk_detect_key(PL_PMIC_PWR_KEY)) {
- platform_wdt_kick();
+ //platform_wdt_kick();
mdelay(5000); //delay 5s/per kick,
} else {
break; //Power Key Release,
d.vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/pmic.c
--- a/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/pmic.c
+++ b/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/pmic.c
@@ -230,31 +230,16 @@ U32 upmu_is_chr_det(void)
#endif
return val;
}
+#define KPD_PMIC_LPRST_TD 0
void PMIC_enable_long_press_reboot(void)
{
-#if !CFG_FPGA_PLATFORM
-#if !CFG_EVB_PLATFORM
-#if KPD_PMIC_LPRST_TD!=0
- #if ONEKEY_REBOOT_NORMAL_MODE_PL
- pmic_config_interface(PMIC_RG_PWRKEY_RST_EN_ADDR, 0x01, PMIC_RG_PWRKEY_RST_EN_MASK, PMIC_RG_PWRKEY_RST_EN_SHIFT);
- pmic_config_interface(PMIC_RG_HOMEKEY_RST_EN_ADDR, 0x00, PMIC_RG_HOMEKEY_RST_EN_MASK, PMIC_RG_HOMEKEY_RST_EN_SHIFT);
- pmic_config_interface(PMIC_RG_PWRKEY_RST_TD_ADDR, (U32)KPD_PMIC_LPRST_TD,
- PMIC_RG_PWRKEY_RST_TD_MASK, PMIC_RG_PWRKEY_RST_TD_SHIFT);
- #else
- pmic_config_interface(PMIC_RG_PWRKEY_RST_EN_ADDR, 0x01, PMIC_RG_PWRKEY_RST_EN_MASK, PMIC_RG_PWRKEY_RST_EN_SHIFT);
- pmic_config_interface(PMIC_RG_HOMEKEY_RST_EN_ADDR, 0x01, PMIC_RG_HOMEKEY_RST_EN_MASK, PMIC_RG_HOMEKEY_RST_EN_SHIFT);
- pmic_config_interface(PMIC_RG_PWRKEY_RST_TD_ADDR, (U32)KPD_PMIC_LPRST_TD, PMIC_RG_PWRKEY_RST_TD_MASK, PMIC_RG_PWRKEY_RST_TD_SHIFT
- #endif
-#else
- pmic_config_interface(PMIC_RG_PWRKEY_RST_EN_ADDR, 0x00, PMIC_RG_PWRKEY_RST_EN_MASK, PMIC_RG_PWRKEY_RST_EN_SHIFT);
- pmic_config_interface(PMIC_RG_HOMEKEY_RST_EN_ADDR, 0x00, PMIC_RG_HOMEKEY_RST_EN_MASK, PMIC_RG_HOMEKEY_RST_EN_SHIFT);
-#endif
-#endif
-#else
- pmic_config_interface(PMIC_RG_PWRKEY_RST_EN_ADDR, 0x00, PMIC_RG_PWRKEY_RST_EN_MASK, PMIC_RG_PWRKEY_RST_EN_SHIFT);
- pmic_config_interface(PMIC_RG_HOMEKEY_RST_EN_ADDR, 0x00, PMIC_RG_HOMEKEY_RST_EN_MASK, PMIC_RG_HOMEKEY_RST_EN_SHIFT);
-#endif
+ //disable long press reboot mbling 2024.09.06
+ pmic_config_interface(PMIC_RG_PWRKEY_RST_EN_ADDR, 0x00, PMIC_RG_PWRKEY_RST_EN_MASK, PMIC_RG_PWRKEY_RST_EN_SHIFT);
+ pmic_config_interface(PMIC_RG_HOMEKEY_RST_EN_ADDR, 0x00, PMIC_RG_HOMEKEY_RST_EN_MASK, PMIC_RG_HOMEKEY_RST_EN_SHIFT);
+ //pmic_config_interface(PMIC_RG_PWRKEY_RST_TD_ADDR, 0x00, PMIC_RG_PWRKEY_RST_TD_MASK, PMIC_RG_PWRKEY_RST_TD_SHIFT);
}
U32 PMIC_VUSB_EN(void)
e.vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/mt6370.c(有mt6370就需要修改)
--- a/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/mt6370.c
+++ b/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/mt6370.c
@@ -188,6 +188,9 @@ static int mtk_ext_chgdet_pre_init(void)
/* MT6372 end */
Charger_Detect_Init();
+ mt6370_set_bit(0x2A,0x80);
/* Toggle chgdet flow */
ret = mt6370_enable_chgdet_flow(false);
a:走kernel-4.19/drivers/input/keyboardmtk-pmic-keys.c方式的就修改如下:
--- a/kernel-4.19/arch/arm64/boot/dts/mediatek/mt6357.dtsi
+++ b/kernel-4.19/arch/arm64/boot/dts/mediatek/mt6357.dtsi
@@ -30,7 +30,7 @@
mt6357keys: mt6357keys {
compatible = "mediatek,mt6357-keys";
- mediatek,long-press-mode = <1>;
+ mediatek,long-press-mode = <0>;
power-off-time-sec = <0>;
power {
b:走alps/kernel-4.9/drivers/input/keyboard/mediatek/mt6765/hal_kpd.c这种方式的修改如下:
--- a/alps/kernel-4.9/drivers/input/keyboard/mediatek/mt6765/hal_kpd.c
+++ b/alps/kernel-4.9/drivers/input/keyboard/mediatek/mt6765/hal_kpd.c
@@ -22,7 +22,8 @@
#include
#ifdef CONFIG_MTK_PMIC_NEW_ARCH
-static int kpd_enable_lprst = 1;
+//static int kpd_enable_lprst = 1;
+static int kpd_enable_lprst = 0;
#endif
static u16 kpd_keymap_state[KPD_NUM_MEMS] = {
0xffff, 0xffff, 0xffff, 0xffff, 0x00ff
@@ -58,6 +59,13 @@ void kpd_get_keymap_state(u16 state[])
void long_press_reboot_function_setting(void)
{
+ //disable long press reboot why 2022.04.19
+ pmic_set_register_value(PMIC_RG_PWRKEY_RST_EN, 0x00);
+ pmic_set_register_value(PMIC_RG_HOMEKEY_RST_EN, 0x00);
+ //pmic_set_register_value(PMIC_RG_PWRKEY_RST_TD,0x00);
+ printk("whuiyuan -- disable long press reboot!\n");
+ return ;
+
#ifdef CONFIG_MTK_PMIC_NEW_ARCH /*for pmic not ready*/
c:有mt6370就修改如下:
--- a/kernel-4.19/drivers/misc/mediatek/pmic/mt6370/mt6370_pmu_charger.c
+++ b/kernel-4.19/drivers/misc/mediatek/pmic/mt6370/mt6370_pmu_charger.c
@@ -4764,6 +4764,22 @@ static int mt6370_pmu_charger_probe(struct platform_device *pdev)
mt6370_pmu_chg_mivr_dwork_handler);
/* Do initial setting */
+
+ dev_err(chg_data->dev, "%s: start MT6370_PMU_REG_CHGPUMP\n", __func__);
+ ret = mt6370_pmu_reg_set_bit(chg_data->chip,MT6370_PMU_REG_CHGPUMP, 0xE0);
+ if (ret < 0) {
+ dev_err(chg_data->dev, "%s: sw init failed\n", __func__);
+ goto err_chg_init_setting;
+ }
+ ret = mt6370_pmu_reg_read(chg_data->chip,MT6370_PMU_REG_CHGPUMP);
+ if (ret < 0)
+ dev_err(chg_data->dev, "%s: read reg0x2A failed\n",__func__);
+ else
+ dev_err(chg_data->dev, "%s: reg0x2A = 0x%02X\n",__func__, ret);
+ dev_err(chg_data->dev, "%s: end MT6370_PMU_REG_CHGPUMP\n", __func__);
+
ret = mt6370_chg_init_setting(chg_data);
if (ret < 0) {
dev_err(chg_data->dev, "%s: sw init failed\n", __func__);