一.在相关的驱动结构体中添加相关的声明,如下:
二.在驱动函数的probe中进行定义和初始化:
在这里使用create_singlethread_workqueue进行创建,而不是使用create_workqueue,主要是前者是单CPU的,后者是在每个CPU上都会创建工作队列。
调用INIT_DELAYED_WORK是进行工作队列的任务初始化,即延时工作队列chg_delay_work中添加hl7057_charger_work的具体工作。
使用queue_delayed_work,是进行延时5秒,开始运行chg_workqueue工作队列中的延时工作,即执行具体工作hl7057_charger_work。
三.在具体工作中;