Linux USB 电源管理全解析
1. 电源管理基础
电源管理是嵌入式系统的关键需求之一。USB 规范为 USB 设备和主机定义了电源管理方法。USB 设备可通过全局或接口级别的挂起模式来节省电量,挂起通常在总线无活动时发生,有时也取决于设备类的实现。对于挂起的主机,部分 USB 设备可使用远程唤醒功能恢复,但并非所有设备都支持该功能,其能力会随配置描述符传递给主机。
Linux 内核实现了必要的电源管理框架,使 Linux USB 等外设子系统能有效管理电源。Linux 电源管理有两种模式:
- 系统睡眠模式 :整个系统通过与各种总线、设备或类驱动交互进入低功耗模式。
- 运行时电源管理模式 :系统运行时,单个驱动也可进入节能模式。
电源管理分不同阶段,每个阶段有单独的回调函数,涉及总线、设备和类驱动回调( dev->bus->pm 、 dev->type->pm 和 dev->class->pm )。挂起操作时,回调按类、设备、总线的顺序调用;恢复时,顺序相反。
关键数据结构 struct dev_pm_ops 用于注册电源管理回调,定义在 include/linux/pm.h 中:
struct dev_pm_ops {
int (*prepare)(struct device *dev);
Linux USB电源管理详解
超级会员免费看
订阅专栏 解锁全文
8148

被折叠的 条评论
为什么被折叠?



