Clock Framework
Manages clocks, i.e. shut it down to save power
Kernel APIs - clk_get, clk_enable,clk_disable,clk_put, clk_get_rate
Drivers use clock API to respond to power management notifications
Suspend/Resume infrastructure
High-level - suspend.c
Low-level - sleep.S
platform hooks in kernel
Requires suspend() & resume() hooks in drivers
CPU Idle
Kernel needs to be tickless
Needs CPU driver with idle states managed by governors
Frequency & voltage scaling
CPUFreq - responsible for defining operating points
Drivers for low-level HW control, governors
Regulator framework
Power Management Qos
Methods to save power:
- Turn on only what's used
- DVFS when possible
- Manage power with states
- PLL Bypass/Power down
- Deep sleep mode
- RTC-only mode