休眠.
2.唤醒方式
当我们休眠时,如果想唤醒,则需要添加中断唤醒源,使得在休眠时,这些中断是设为开启的,当有中断来,则会退出唤醒,常见的中断源有按键,USB等.
3.以按键驱动为例(基于内核3.10.14...(struct device *dev);
休眠函数,休眠之前会被调用
static int gpio_keys_resume(struct device *dev);
唤醒函数,唤醒之前被调用
static...//在中断出口调用,告知结束唤醒
在中断前调用pm_stay_awake(),中断结束时再调用一次pm_relax()函数.
4.6 如果想延时唤醒,也可以使用另一种唤醒休眠,则只需要一个函数实现:
pm_wakeup_event...->irq = irq;
INIT_WORK(&bdata->work, gpio_keys_gpio_work_func);
//初始化bdata->work,使bdata->work与gpio_keys_gpio_work_func...:
休眠时:
enable_irq_wake (bdata->irq);
//将要睡眠的中断号屏蔽掉,实现休眠时保持中断唤醒
唤醒后:
disable_irq_wake(bdata