Friday, December 7, 2012

Linux PM Blocks


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