【mt8735】如何實現插上電池自動開機
阿新 • • 發佈:2019-02-06
需求:有些特殊的行業應用,需要上電自動開機。我司就接到一客戶的訂單,需要一臺不需要按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\n");
- #else
- PMIC_INIT_SETTING_V1();
- pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT); // 增加的函式
- PMICLOG("[PMIC_INIT_SETTING_V1] Done\n");
- #endif
- PMIC_CUSTOM_SETTING_V1();
- pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT); // 增加的函式
- PMICLOG("[PMIC_CUSTOM_SETTING_V1] Done\n");
【3】對於 pmic_config_interface(RG_PWRKEY_RST, val, MASK, SHIFT); // 增加的函式 中RG_PWRKEY_RST, val, MASK, SHIFT的值,可下表常用平臺對應的實際引數:
PLATFORM | PMIC | RG_PWRKEY_RST | val | MASK | SHIFT |
6582/72/92/2601 | MT6323 | 0x011A | 0x0 | 0x1 | 6 |
6580 | MT6350 | 0x011A | 0x2 | 0x3 | 5 |
6753/35/35M/8735 | MT6328 | 0x02A0 | 0x0 | 0x1 | 9 |
6752 | MT6325 | 0x028A | 0x0 | 0x1 | 9 |
6755 | MT6351 | 0x02B6 | 0x0 | 0x1 | 9 |
mt8735平臺 pmic_config_interface(0x02A0,0x0,0x1,9);
【4】修改之後對系統重新編譯,將新系統更新到相應的mt8735裝置(如我司的工業平板),更新完之後,拔掉USB,重新插上電池,即可實現自動開機。
【5】不足及解決方法:
不足--> PowerKey鍵直接接地之後,PowerKey鍵將失去作用,關機只能拔掉電池,息屏系統休眠將不能喚醒,不能更新下載系統。
解決方法--> 能夠解決上述問題的方法之一是,將自彈式按鍵更換為自鎖式按鍵。關機狀態下,自鎖式按鍵按下時PowerKey鍵直接接地,接上電池即可開機;自鎖式按鍵彈起時,可使用USB更新系統;開機狀態下,關機可將自鎖式按鍵按下,系統將出現關機對話方塊,即可點選關機按鈕關機;息屏系統休眠可按下自鎖式按鍵,再按彈起即可喚醒。
【6】效果展示