Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
由于电池电源的输出会经过一个二极管,遇到个别机器使用会出现偶尔关机现象,这个功能是在pmu rk818中控制的。
对应的寄存器描述:
也就是说可控制电压的范围是在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