[RK3288][Android6.0] 调试笔记 --- 低电压引起的关机问题

时间:2022-12-28 23:26:08

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

由于电池电源的输出会经过一个二极管,遇到个别机器使用会出现偶尔关机现象,这个功能是在pmu rk818中控制的。


对应的寄存器描述:
[RK3288][Android6.0] 调试笔记 --- 低电压引起的关机问题
[RK3288][Android6.0] 调试笔记 --- 低电压引起的关机问题

也就是说可控制电压的范围是在2.8 ~ 3.5V,比如设置3V,那么当电压掉到3V时,可触发两种行为中的一种:

  • 直接关机
  • 发中断交由cpu决定如何处理

代码:
rk818.c

static int rk818_pre_init(struct rk818 *rk818)
{
/****************set vbat low **********/
val = rk818_reg_read(rk818,RK818_VB_MON_REG);
val &=(~(VBAT_LOW_VOL_MASK | VBAT_LOW_ACT_MASK));
val |= (RK818_VBAT_LOW_3V0 | EN_VABT_LOW_SHUT_DOWN);
ret = rk818_reg_write(rk818,RK818_VB_MON_REG,val);
if (ret <0) {
printk(KERN_ERR "Unable to write RK818_VB_MON_REG reg\n");
return ret;
}
}

系统默认是电压低于3V之后关机,如果觉得不能满足需求,可以修改。


参考:
rk818 datasheet