深入理解 Linux USB 电源管理
1. 引言
在嵌入式系统中,电源管理是一项至关重要的需求。USB 规范为 USB 设备和主机定义了相应的电源管理方法,而 Linux 内核则实现了必要的电源管理框架,使得像 Linux USB 系统这样的外设子系统能够有效地管理电源。本文将详细介绍 Linux USB 电源管理的相关知识,包括基础概念、Linux USB 电源管理框架以及如何进行实际设置。
2. 电源管理基础
Linux 电源管理主要有两种模式:系统睡眠模式和运行时电源管理模式。
-系统睡眠模式:整个系统通过与各种总线、设备或类驱动进行交互,进入低功耗模式。
-运行时电源管理模式:在系统运行时,单个驱动程序也可以进入节能模式。
电源管理过程分为不同阶段,每个阶段都有单独的回调函数,在进入下一阶段之前执行。这些阶段涉及总线、设备和类驱动的回调(dev->bus->pm、dev->type->pm和dev->class->pm)。在挂起操作期间,回调函数按类、设备、总线的顺序调用;恢复操作时,顺序则相反。
下面介绍几个重要的数据结构和函数:
-struct dev_pm_ops:该数据结构用于注册电源管理回调,定义在include/linux/pm.h中。以下是其定义: