【mt8735】如何实现插上电池自动开机
2019-04-13 13:10发布
生成海报
需求:有些特殊的行业应用,需要上电自动开机。我司就接到一客户的订单,需要一台不需要按PowerKey键上电自动开机的工业平板。 实现步骤:
实现插上电池自动开机需要从两个方面入手,第一,在硬件上将PowerKey键直接接地;第二,在软件上掉长按关机或者重启的功能;这里主要讲述如何在软件中去掉长按关机或重启的功能。
【1】在文件kernel-3.10/drivers/misc/mediatek/mach/$(platform)/$(project)//keypad/mtk_kpd.h中删除如下定义:
//#define ONEKEY_REBOOT_NORMAL_MODE
【2】在文件kernel-3.10/drivers/misc/mediatek/power/$(platform)/pmic.c的pmic_mt_probe函数中增加如下函数- #if defined(CONFIG_ARCH_MT6753)
- PMICLOG("[PMIC_INIT_SETTING_V1] delay to MT6311 init
");
- #else
- PMIC_INIT_SETTING_V1();
- pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT); // 增加的函数
- PMICLOG("[PMIC_INIT_SETTING_V1] Done
");
- #endif
- PMIC_CUSTOM_SETTING_V1();
- pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT); // 增加的函数
- PMICLOG("[PMIC_CUSTOM_SETTING_V1] Done
");
【3】对于 pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT); // 增加的函数 中RG_PWRKEY_RST, val, MASK, SHIFT的值,可下表常用平台对应的实际参数:PLATFORMPMICRG_PWRKEY_RSTvalMASKSHIFT6582/72/92/2601MT63230x011A0x00x166580MT63500x011A0x20x356753/35/35M/8735MT63280x02A00x00x196752MT63250x028A0x00x196755MT63510x02B60x00x19示例:
mt8735平台 pmic_config_interface(0x02A0,0x0,0x1,9);
【4】修改之后对系统重新编译,将新系统更新到相应的mt8735设备(如我司的工业平板),更新完之后,拔掉USB,重新插上电池,即可实现自动开机。
【5】不足及解决方法:
不足--> PowerKey键直接接地之后,PowerKey键将失去作用,关机只能拔掉电池,息屏系统休眠将不能唤醒,不能更新下载系统。
解决方法--> 能够解决上述问题的方法之一是,将自弹式按键更换为自锁式按键。关机状态下,自锁式按键按下时PowerKey键直接接地,接上电池即可开机;自锁式按键弹起时,可使用USB更新系统;开机状态下,关机可将自锁式按键按下,系统将出现关机对话框,即可点击关机按钮关机;息屏系统休眠可按下自锁式按键,再按弹起即可唤醒。
【6】效果展示展示视频
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮