1. 程式人生 > >【mt8735】如何實現插上電池自動開機

【mt8735】如何實現插上電池自動開機

需求:有些特殊的行業應用,需要上電自動開機。我司就接到一客戶的訂單,需要一臺不需要按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函式中增加如下函式

  1. #if defined(CONFIG_ARCH_MT6753)
  2.         PMICLOG("[PMIC_INIT_SETTING_V1] delay to MT6311 init\n");
  3. #else
  4.         PMIC_INIT_SETTING_V1();
  5.         pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT);     // 增加的函式
  6.         PMICLOG("[PMIC_INIT_SETTING_V1] Done\n");
  7. #endif
  8.     PMIC_CUSTOM_SETTING_V1();
  9.     pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT);     // 增加的函式
  10.     PMICLOG("[PMIC_CUSTOM_SETTING_V1] Done\n");

【3】
對於 pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT);     // 增加的函式 中RG_PWRKEY_RST, val, MASK, SHIFT的值,可下表常用平臺對應的實際引數:
PLATFORMPMICRG_PWRKEY_RSTvalMASKSHIFT
6582/72/92/2601MT63230x011A0x00x16
6580MT63500x011A0x20x35
6753/35/35M/8735MT63280x02A00x00x19
6752MT63250x028A0x00x19
6755MT6351
0x02B60x00x19
示例:
mt8735平臺  pmic_config_interface(0x02A0,0x0,0x1,9);

【4】修改之後對系統重新編譯,將新系統更新到相應的mt8735裝置(如我司的工業平板),更新完之後,拔掉USB,重新插上電池,即可實現自動開機。

【5】不足及解決方法:
不足--> PowerKey鍵直接接地之後,PowerKey鍵將失去作用,關機只能拔掉電池,息屏系統休眠將不能喚醒,不能更新下載系統。
解決方法--> 能夠解決上述問題的方法之一是,將自彈式按鍵更換為自鎖式按鍵。關機狀態下,自鎖式按鍵按下時PowerKey鍵直接接地,接上電池即可開機;自鎖式按鍵彈起時,可使用USB更新系統;開機狀態下,關機可將自鎖式按鍵按下,系統將出現關機對話方塊,即可點選關機按鈕關機;息屏系統休眠可按下自鎖式按鍵,再按彈起即可喚醒。

【6】效果展示

展示視訊