ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux Regulator GenPD深度解析:电压调节器、电源门控、通用电源域、功耗底层开关

Linux Regulator  GenPD深度解析:电压调节器、电源门控、通用电源域、功耗底层开关 专栏系列位置:硬件电源底层框架 · 第九篇系列前置回顾前面8篇已经学习完上层功耗调度与休眠机制:CPU架构+三级缓存(硬件基础)CPUIdle C‑State(CPU内核空闲休眠)Thermal热管理(高温降频保护)CPUFreq / DVFS / OPP(CPU运行调频调压)Devfreq(GPU、DDR、ISP外设动态调频)PM‑QoS(延迟约束,限制省电行为)Runtime‑PM(单外设运行时断电休眠)System Suspend Wakelock(整机深度休眠唤醒)上面所有子系统最终都要落到硬件电源控制。谁真正控制芯片内部模块上电、下电、调压?答案就是本篇两大底层框架:Regulator:电压调节器,管理模块供电电压GenPD(Generic Power Domain)通用电源域,管理模块电源开关、电源门控这是功耗最底层,CPU‑C6断电、外设下电,本质都是操作GenPD电源域。前言前面CPUFreq、Runtime‑PM只是发出省电请求,本身不能直接关闭硬件电源。Soc内部每一块硬件(CPU、GPU、ISP、NPU)都属于一个独立电源域。电源域由PMIC或者片内电源控制器控制,Linux内核通过Regulator和GenPD框架,间接操控硬件电源。通俗理解:Regulator = 调电压的旋钮GenPD = 电源开关,实现电源门控(Power‑Gating)一、Regulator电压调节器1.1 什么是RegulatorRegulator是Linux内核管理供电电源的框架,对应硬件上的 LDO、Buck开关电源。作用:开启 / 关闭一路电源升高 / 降低输出电压(OPP调压)CPU、GPU、DDR切换OPP档位时,CPUFreq/Devfreq最终会调用Regulator接口修改电压。1.2 Regulator两种供电模式Buck(开关电源):转换效率高,适合大电流模块,CPU/GPULDO(线性稳压器):噪声低,适合小电流外设,传感器、Codec1.3 设备树DTS配置示例vdd_cp
返回列表