Mobile and Embedded Linux Solutions

Home / Labs / Linux Voltage & Current Regulator Subsystem

The Linux kernel voltage and current regulator subsystem is designed to provide a standard kernel interface to device drivers and board level code in order to control system voltage and current regulators. The regulator subsystem has been part of the Linux kernel since version 2.6.26 and is actively maintained.

The regulator subsystem is designed to allow systems to dynamically control their regulator power output in order to save system power and prolong battery life. The subsystem can control both voltage regulators (where voltage output is controllable) and current sinks (where current limit is controllable) and can be used to reduce the systems dynamic and static power consumption.

The regulator subsystem is targeted at SoC based embedded and mobile devices (e.g. mobile phones, GPS receivers, MP3 players, Set top boxes, e-books, etc) but is also relevant to non SoC devices.

Documentation

The regulator API is split into Consumer, Regulator, Machine and Userspace interfaces.

  • Consumer: The consumer interface is designed to allow consumer device drivers to control and monitor their regulators. Read this if your are writing a device driver that needs to control or monitor regulator power.
  • Regulator: The regulator interface allows regulator drivers to register their services and capabilities. Read this if you are writing a regulator driver
  • Machine: The machine interface is for machine or board level power code. Read this if you are adding regulator support to a new machine.
  • UserSpace: The user space interface exports useful information for applications.

Real World Use Cases

The following real world examples show how the regulator framework can be used to save power.

  • CPUfreq & CPUidle
  • LCD Backlight
  • Audio
  • Flash Memories
  • WiFi and Bleutooth

Development

The regulator git repository contains all the new and stable source code and is hosted here on kernel.org. Regulator development is discussed on the Linux kernel mailing list.

Further Information

Further information on the Linux regulator framework is available in the following places :-

  • Linux kernel voltage and current regulator paper presented at CELF 2008 and FOSDEM 2009.
  • Wolfson Microelectronics Open Source. Wolfson make power management IC’s that use the regulator framework.
  • CELF Consumer Edition Linux Forum – Regulator paper was presented at the 2008 conference in Mountain View.