|
ProtoCore v0.0.1
Deterministic, zero-heap network stack for embedded targets
|
SoC power governor: frequency scaling, thermal throttle, brownout recovery, gating (PC_ENABLE_POWER_MGMT). More...
Go to the source code of this file.
SoC power governor: frequency scaling, thermal throttle, brownout recovery, gating (PC_ENABLE_POWER_MGMT).
services/system/radio_power owns the radio and services/system/sleep_sched decides how long to sleep. Neither owns the SoC itself, which is where the rest of the power budget goes: the CPU clock, the die temperature, and the peripherals nobody is using.
The governor answers one question - given the current load, die temperature, and how the board last reset, what should the CPU clock be right now:
The decision is pure and takes every input explicitly - load, temperature, the brownout flag, the time since boot, and the previous throttle state for the hysteresis - so the whole governor is host-testable with no hardware. The binding only reads the sensors and applies the result.
Definition in file power_mgmt.h.