Android驅動筆記(13)——PMIC reset介紹


 遇到系統卡死的情形,我們經常長按power鍵10多s觸發reset,強制機器重啟。Pmic可以通過設置寄存器來配置不同的reset等級實現不同的效果。

13.1、reset等級(RESET_TYPE)

  1. warm reset:這種等級的reset將保留DDR memory以及一部分的PMIC寄存器。
  2. hard reset:將清空DDR memory,以及保留和warm reset一樣的部分PMIC寄存器。
  3. dvdd hard reset:將清空DDR memory,以及保留更多的PMIC寄存器,類似拔電池並保留VCOIN的狀態。
  4. xvdd hard reset:將清空DDR memory和PMIC寄存器。

 如果想達到拔電池的reset效果,可以通過配置DVDD hard reset來實現。如果要達到拔掉紐扣電池的效果,配置XVDD hard reset。
 如果要想觸發reset后可以抓dump,需要warm reset。有時候本身release代碼,長按電源鍵,默認是warm reset,我們需要改成vdd hard reset。

13.2、reset設置

 如果需要配置觸發reset的等級和時間,通常需要修改兩處:

/*pm_sbl_boot_oem.c*/
err_flag |= pm_app_pon_reset_cfg(PM_APP_PON_RESET_SOURCE_KPDPWR, ...)
/**.dtsi*/
qcom, pon_1 {
    ......
    qcom.s1-timer = <6720> //modify here
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM