您的位置:首页 > 产品设计 > 产品经理

lk中通过操作pmic的寄存器来实现手机重启3次进入关机状态

2016-02-04 16:32 579 查看
说明:在下面的条件发生时,代表手机异常了,需要读取0x88e寄存器的值,默认是0.如果其值小于3,则进行加一(注意不能自加),然后写入到0x88e寄存器,然后进行重启,重启原因使用上次一致的。重启之后如果检测到还是异常又进入这个条件,则再对0x88e进行加一写入。一致循环到其值为3,然后把0写入,然后关机。如果这个过程中有一次不满足异常条件都会把这个寄存器写0.具体代码如下(重启寄存器的值不会丢):

if(id_value != 0x08)

{

val = pm8x41_reg_read(0x88e);

dprintf(CRITICAL, "zll----0--pls doreboot device here= %d, val=%d\n", id_value,val);

if(val < 3){

val += 1;

pm8x41_reg_write(0x88e,val);

val =pm8x41_reg_read(0x88e);

dprintf(CRITICAL,"zll----1--pls do reboot device here= %d, val=%d\n", id_value,val);

if(hard_reboot_mode != 0)

reboot_device_black(hard_reboot_mode);

}else{

pm8x41_reg_write(0x88e,0x00);

val =pm8x41_reg_read(0x88e);

dprintf(CRITICAL,"zll----2--pls do reboot device here= %d, val=%d\n", id_value,val);

shutdown_device();

}

}else{

pm8x41_reg_write(0x88e,0x00);

val = pm8x41_reg_read(0x88e);

dprintf(CRITICAL,"zll----3--pls do reboot device here= %d, val=%d\n", id_value,val);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: