本文共 575 字,大约阅读时间需要 1 分钟。
首先软件上Pmic CHGVAL中断触发,pm8058_chg_chgval_handler函数被调用,即表明pmic检测到usb_vbus,说明有usb或者dc的插入,接着进入充电流程;
之后调用msm_charger_notify_event(),
在该函数中调度工作队列msm_chg.queue_work;之后调用到工作队列处理函数process_events();再之后逐步调用到pmic8058中的pm8058_start_charging()。 pm8058_chg_chgval_handler() ——>msm_charger_notify_event() ——>process_events() ——>handle_event() ——>handle_charger_ready() ——>msm_enable_system_current() ——>msm_start_charging() ——>pm8058_start_charging() 在pm8058_start_charging()中会调度end of charge的一个工作队列,要是判断充满电则结束充电,否则继续调度该工作队列; static void eoc_worker(struct work_struct *work) { ----; } 以后慢慢完善;
转载地址:http://trdmi.baihongyu.com/