<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>

<book id="regulator-api">
 <bookinfo>
  <title>Voltage and current regulator API</title>

  <authorgroup>
   <author>
    <firstname>Liam</firstname>
    <surname>Girdwood</surname>
    <affiliation>
     <address>
      <email>lrg@slimlogic.co.uk</email>
     </address>
    </affiliation>
   </author>
   <author>
    <firstname>Mark</firstname>
    <surname>Brown</surname>
    <affiliation>
     <orgname>Wolfson Microelectronics</orgname>
     <address>
      <email>broonie@opensource.wolfsonmicro.com</email>
     </address>
    </affiliation>
   </author>
  </authorgroup>

  <copyright>
   <year>2007-2008</year>
   <holder>Wolfson Microelectronics</holder>
  </copyright>
  <copyright>
   <year>2008</year>
   <holder>Liam Girdwood</holder>
  </copyright>

  <legalnotice>
   <para>
     This documentation is free software; you can redistribute
     it and/or modify it under the terms of the GNU General Public
     License version 2 as published by the Free Software Foundation.
   </para>

   <para>
     This program is distributed in the hope that it will be
     useful, but WITHOUT ANY WARRANTY; without even the implied
     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     See the GNU General Public License for more details.
   </para>

   <para>
     You should have received a copy of the GNU General Public
     License along with this program; if not, write to the Free
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
     MA 02111-1307 USA
   </para>

   <para>
     For more details see the file COPYING in the source
     distribution of Linux.
   </para>
  </legalnotice>
 </bookinfo>

<toc></toc>

  <chapter id="intro">
    <title>Introduction</title>
    <para>
	This framework is designed to provide a standard kernel
	interface to control voltage and current regulators.
    </para>
    <para>
	The intention is to allow systems to dynamically control
	regulator power output in order to save power and prolong
	battery life.  This applies to both voltage regulators (where
	voltage output is controllable) and current sinks (where current
	limit is controllable).
    </para>
    <para>
	Note that additional (and currently more complete) documentation
	is available in the Linux kernel source under
	<filename>Documentation/power/regulator</filename>.
    </para>

    <sect1 id="glossary">
       <title>Glossary</title>
       <para>
	The regulator API uses a number of terms which may not be
	familiar:
       </para>
       <glossary>

         <glossentry>
	   <glossterm>Regulator</glossterm>
	   <glossdef>
	     <para>
	Electronic device that supplies power to other devices.  Most
	regulators can enable and disable their output and some can also
	control their output voltage or current.
	     </para>
	   </glossdef>
         </glossentry>

	 <glossentry>
	   <glossterm>Consumer</glossterm>
	   <glossdef>
	     <para>
	Electronic device which consumes power provided by a regulator.
	These may either be static, requiring only a fixed supply, or
	dynamic, requiring active management of the regulator at
	runtime.
	     </para>
	   </glossdef>
	 </glossentry>

	 <glossentry>
	   <glossterm>Power Domain</glossterm>
	   <glossdef>
	     <para>
	The electronic circuit supplied by a given regulator, including
	the regulator and all consumer devices.  The configuration of
	the regulator is shared between all the components in the
	circuit.
	     </para>
	   </glossdef>
	 </glossentry>

	 <glossentry>
	   <glossterm>Power Management Integrated Circuit</glossterm>
	   <acronym>PMIC</acronym>
	   <glossdef>
	     <para>
	An IC which contains numerous regulators and often also other
	subsystems.  In an embedded system the primary PMIC is often
	equivalent to a combination of the PSU and southbridge in a
	desktop system.
	     </para>
	   </glossdef>
	 </glossentry>
	</glossary>
     </sect1>
  </chapter>

  <chapter id="consumer">
     <title>Consumer driver interface</title>
     <para>
       This offers a similar API to the kernel clock framework.
       Consumer drivers use <link
       linkend='API-regulator-get'>get</link> and <link
       linkend='API-regulator-put'>put</link> operations to acquire and
       release regulators.  Functions are
       provided to <link linkend='API-regulator-enable'>enable</link>
       and <link linkend='API-regulator-disable'>disable</link> the
       reguator and to get and set the runtime parameters of the
       regulator.
     </para>
     <para>
       When requesting regulators consumers use symbolic names for their
       supplies, such as "Vcc", which are mapped into actual regulator
       devices by the machine interface.
     </para>
     <para>
	A stub version of this API is provided when the regulator
	framework is not in use in order to minimise the need to use
	ifdefs.
     </para>

     <sect1 id="consumer-enable">
       <title>Enabling and disabling</title>
       <para>
         The regulator API provides reference counted enabling and
	 disabling of regulators. Consumer devices use the <function><link
	 linkend='API-regulator-enable'>regulator_enable</link></function>
	 and <function><link
	 linkend='API-regulator-disable'>regulator_disable</link>
	 </function> functions to enable and disable regulators.  Calls
	 to the two functions must be balanced.
       </para>
       <para>
         Note that since multiple consumers may be using a regulator and
	 machine constraints may not allow the regulator to be disabled
	 there is no guarantee that calling
	 <function>regulator_disable</function> will actually cause the
	 supply provided by the regulator to be disabled. Consumer
	 drivers should assume that the regulator may be enabled at all
	 times.
       </para>
     </sect1>

     <sect1 id="consumer-config">
       <title>Configuration</title>
       <para>
         Some consumer devices may need to be able to dynamically
	 configure their supplies.  For example, MMC drivers may need to
	 select the correct operating voltage for their cards.  This may
	 be done while the regulator is enabled or disabled.
       </para>
       <para>
	 The <function><link
	 linkend='API-regulator-set-voltage'>regulator_set_voltage</link>
	 </function> and <function><link
	 linkend='API-regulator-set-current-limit'
	 >regulator_set_current_limit</link>
	 </function> functions provide the primary interface for this.
	 Both take ranges of voltages and currents, supporting drivers
	 that do not require a specific value (eg, CPU frequency scaling
	 normally permits the CPU to use a wider range of supply
	 voltages at lower frequencies but does not require that the
	 supply voltage be lowered).  Where an exact value is required
	 both minimum and maximum values should be identical.
       </para>
     </sect1>

     <sect1 id="consumer-callback">
       <title>Callbacks</title>
       <para>
	  Callbacks may also be <link
	  linkend='API-regulator-register-notifier'>registered</link>
	  for events such as regulation failures.
       </para>
     </sect1>
   </chapter>

   <chapter id="driver">
     <title>Regulator driver interface</title>
     <para>
       Drivers for regulator chips <link
       linkend='API-regulator-register'>register</link> the regulators
       with the regulator core, providing operations structures to the
       core.  A <link
       linkend='API-regulator-notifier-call-chain'>notifier</link> interface
       allows error conditions to be reported to the core.
     </para>
     <para>
       Registration should be triggered by explicit setup done by the
       platform, supplying a <link
       linkend='API-struct-regulator-init-data'>struct
       regulator_init_data</link> for the regulator containing
       <link linkend='machine-constraint'>constraint</link> and
       <link linkend='machine-supply'>supply</link> information.
     </para>
   </chapter>

   <chapter id="machine">
     <title>Machine interface</title>
     <para>
       This interface provides a way to define how regulators are
       connected to consumers on a given system and what the valid
       operating parameters are for the system.
     </para>

     <sect1 id="machine-supply">
       <title>Supplies</title>
       <para>
         Regulator supplies are specified using <link
	 linkend='API-struct-regulator-consumer-supply'>struct
	 regulator_consumer_supply</link>.  This is done at
	 <link linkend='driver'>driver registration
	 time</link> as part of the machine constraints.
       </para>
     </sect1>

     <sect1 id="machine-constraint">
       <title>Constraints</title>
       <para>
	 As well as defining the connections the machine interface
	 also provides constraints defining the operations that
	 clients are allowed to perform and the parameters that may be
	 set.  This is required since generally regulator devices will
	 offer more flexibility than it is safe to use on a given
	 system, for example supporting higher supply voltages than the
	 consumers are rated for.
       </para>
       <para>
	 This is done at <link linkend='driver'>driver
	 registration time</link> by providing a <link
	 linkend='API-struct-regulation-constraints'>struct
	 regulation_constraints</link>.
       </para>
       <para>
         The constraints may also specify an initial configuration for the
         regulator in the constraints, which is particularly useful for
         use with static consumers.
       </para>
     </sect1>
  </chapter>

  <chapter id="api">
    <title>API reference</title>
    <para>
      Due to limitations of the kernel documentation framework and the
      existing layout of the source code the entire regulator API is
      documented here.
    </para>
!Iinclude/linux/regulator/consumer.h
!Iinclude/linux/regulator/machine.h
!Iinclude/linux/regulator/driver.h
!Edrivers/regulator/core.c
  </chapter>
</book>
