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
}
posted @ 2020-05-03 16:31  hansenn  阅读(2495)  评论(0编辑  收藏  举报