目录
SoC中通常有很多IP,按逻辑可以把几个相关功能的IP划为一个电源域。一个电源域内的IP,通常按相同的方式由同一个硬件模块PMIC供电,电压一样并且电源管理例如休眠唤醒一致。
为什么有设备电源管理还需要power domain划分?
对每个设备电源管理太细化了,会造成额外的开销。通常几个设备可以一块进行管理更加的方便,例如一个子系统,要么全工作要么全关闭,不会子系统内的某个设备单独工作。这时候为了简化管理工作就需要划分出来一个domain。SOC上众多电源域组成了一个电源域树,他们之间存在着相互的约束关系,子电源域打开前,需要父电源域打开,父电源域下所有子电源域关闭,父电源域才能关闭。
Domain这个词一般在权限管理中经常遇到,用于隔离,Domain内共进退。
虽然电源域的好处多多,却不是越多越好,因为划分电源域是需要成本的(需要在PMU中使用模拟电路完成,包括金钱成本和空间成本)。因此,大多数系统会根据功能,设置有限的几个电源域,例如:CPU core(1、2、3…);GPU;NAND;DDR;USB;Display;Codec等等。
这种设计引出一个问题:存在多个模块共用一个电源域的情况。因而要求在对模块power on/off的时候,考虑power共用的情况:只要一个模块工作,就要power on;直到所有模块停止工作,才能power off。
1. 框架介绍
Kernel的PM domain framework(位于drivers/base/power/domain.c中),提供了管理和使用系统power domain的统一方法:
-
对底层power domain硬件的操作
-
对power domain hw的开启操作,包括开钟、上电、解复位、解除电源隔离等
-