按开机键延时开机

相逢一醉是前缘

前言

大多数的PMIC不支持硬件延时开机功能,例如目前我这边使用的PMIC,测量开机时序只有1MS,容易形成误触开机,需要做延时功能

核心逻辑

不同的平台实现的逻辑大体相似,在系统初始化阶段,做按键判断,在设定时间范围内读出的按键状态是否是按开机键,如果是则进行开机流程,否则进行关机处理,例如PMIC通过I2C连接,可以读对应寄存器进行此时的按键状态进行判断

示例代码

#define  EXTON1Y_PRESS  (0x02)
#define  BOOT_DELAY	 (5)		 //500ms
int boot_delay = (int)BOOT_DELAY;
if(reason == SYS_BR_CHARGE){
	while(boot_delay--){
		if(get_extern1() != EXTON1Y_PRESS){
			printf("goto powerdown");
			powerdown(1);
		}else{
			udelay(1000*100);
		}
	}
}
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值