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.
Real World Use Cases
The following real world examples show how the regulator framework can be used to save power.
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 :-