你的位置:
首页
>
IT圈
>
MTK8127_FB710项目调试长按power键重启改动
2024年5月13日发(作者:邢馨逸)
MTK8127_FB710项目调试长按power键重启改动
客户有需求需要长按power键进行重启
调试过程:
1.现在版本机器上实现的长按power键进入强制关机,继续长按无法重启
2.由于硬件上存在强制关机电路,无法在保证强制关机的基础上加入重启功能,也
就是强制关机和强制重启只能保留一个。
现有驱动软件配置的就是长按power键11s会进入重启,但是由于强制关机电
路的存在,所以实现的是长按会强制关机。
3. 去掉U1402芯片后,使用现有的软件版本长按power键 11S之后可以实现重
启功能(保证长按11S,中间不断),长按时间可以调整修改:8s、11s、14s、5s。
如果需要实现长按power重启,需要在硬件上作出改造,现有的软件版本可以直接实现,
附件是改造说明。
有些项目的电池是内置电池,也就是无法拔下电池的话,
当出现系统异常的时候,
可以选择长摁powerkey或者长摁powerkey+homekey来实现reset或者shutdown phone
功能
[SOLUTION]
1. kernel中长摁powerkey实现reset
alpsmediatekcustom$(project)kernelkpdkpdmtk_kpd.h
#define ONEKEY_REBOOT_NORMAL_MODE
//#define TWOKEY_REBOOT_NORMAL_MODE
#defineKPD_PMIC_LPRST_TD 1 /*timeput period 0: 8sec 1:11sec 2:14sec 3:5sec*/
这里可以根据需要选择timeout的值
2. kernel中长摁powerkey+homekey实现reset
alpsmediatekcustom$(project)kernelkpdkpdmtk_kpd.h
//#defineONEKEY_REBOOT_NORMAL_MODE
#defineTWOKEY_REBOOT_NORMAL_MODE
#define KPD_PMIC_LPRST_TD 1 /*timeputperiod 0: 7sec 1: 11sec 2:14sec 3:5ec*/
请注意,homekey一定要事先定义好(FCHR_ENB对应的硬体key)
3. preloader中长摁powerkey实现reset
alpsmediatekplatformmt6582preloadersrcdriversinckeypad.h
#defineKPD_PMIC_LPRST_TD 1 /*timeput period 0: 8sec 1:11sec 2:14sec 3:5sec*/
#define ONEKYE_REBOOT_NORMAL_MODE_PL
//#define TWOKYE_REBOOT_NORMAL_MODE_PL
4. preloader中长摁powerkey+homekey实现reset
alpsmediatekplatformmt6582preloadersrcdriversinckeypad.h
#defineKPD_PMIC_LPRST_TD 1 /*timeput period 0: 8sec 1:11sec 2:14sec 3:5sec*/
//#define ONEKYE_REBOOT_NORMAL_MODE_PL
#define TWOKYE_REBOOT_NORMAL_MODE_PL
长摁powerkey或者powerkey+homekey实现shutdown功能,
实在以上实现的基础上,修改如下code
alpsmediatekplatformmt6582preloadersrcdriverskeypad.c
mtk_detect_key()
if(key== 8)
#if 0 //修改为#if 1
pmic_read_interface(0x04A, &just_rst,0x01, 14);
if(just_rst)
{
pmic_config_interface(0x04A, 0x01, 0x01, 4);
print("Just recover from a resetn");
return false;
}
#endif
2024年5月13日发(作者:邢馨逸)
MTK8127_FB710项目调试长按power键重启改动
客户有需求需要长按power键进行重启
调试过程:
1.现在版本机器上实现的长按power键进入强制关机,继续长按无法重启
2.由于硬件上存在强制关机电路,无法在保证强制关机的基础上加入重启功能,也
就是强制关机和强制重启只能保留一个。
现有驱动软件配置的就是长按power键11s会进入重启,但是由于强制关机电
路的存在,所以实现的是长按会强制关机。
3. 去掉U1402芯片后,使用现有的软件版本长按power键 11S之后可以实现重
启功能(保证长按11S,中间不断),长按时间可以调整修改:8s、11s、14s、5s。
如果需要实现长按power重启,需要在硬件上作出改造,现有的软件版本可以直接实现,
附件是改造说明。
有些项目的电池是内置电池,也就是无法拔下电池的话,
当出现系统异常的时候,
可以选择长摁powerkey或者长摁powerkey+homekey来实现reset或者shutdown phone
功能
[SOLUTION]
1. kernel中长摁powerkey实现reset
alpsmediatekcustom$(project)kernelkpdkpdmtk_kpd.h
#define ONEKEY_REBOOT_NORMAL_MODE
//#define TWOKEY_REBOOT_NORMAL_MODE
#defineKPD_PMIC_LPRST_TD 1 /*timeput period 0: 8sec 1:11sec 2:14sec 3:5sec*/
这里可以根据需要选择timeout的值
2. kernel中长摁powerkey+homekey实现reset
alpsmediatekcustom$(project)kernelkpdkpdmtk_kpd.h
//#defineONEKEY_REBOOT_NORMAL_MODE
#defineTWOKEY_REBOOT_NORMAL_MODE
#define KPD_PMIC_LPRST_TD 1 /*timeputperiod 0: 7sec 1: 11sec 2:14sec 3:5ec*/
请注意,homekey一定要事先定义好(FCHR_ENB对应的硬体key)
3. preloader中长摁powerkey实现reset
alpsmediatekplatformmt6582preloadersrcdriversinckeypad.h
#defineKPD_PMIC_LPRST_TD 1 /*timeput period 0: 8sec 1:11sec 2:14sec 3:5sec*/
#define ONEKYE_REBOOT_NORMAL_MODE_PL
//#define TWOKYE_REBOOT_NORMAL_MODE_PL
4. preloader中长摁powerkey+homekey实现reset
alpsmediatekplatformmt6582preloadersrcdriversinckeypad.h
#defineKPD_PMIC_LPRST_TD 1 /*timeput period 0: 8sec 1:11sec 2:14sec 3:5sec*/
//#define ONEKYE_REBOOT_NORMAL_MODE_PL
#define TWOKYE_REBOOT_NORMAL_MODE_PL
长摁powerkey或者powerkey+homekey实现shutdown功能,
实在以上实现的基础上,修改如下code
alpsmediatekplatformmt6582preloadersrcdriverskeypad.c
mtk_detect_key()
if(key== 8)
#if 0 //修改为#if 1
pmic_read_interface(0x04A, &just_rst,0x01, 14);
if(just_rst)
{
pmic_config_interface(0x04A, 0x01, 0x01, 4);
print("Just recover from a resetn");
return false;
}
#endif