linux/Documentation/devicetree/bindings/mfd/max8998.txt
<<
>>
Prefs
   1* Maxim MAX8998, National/TI LP3974 multi-function device
   2
   3The Maxim MAX8998 is a multi-function device which includes voltage/current
   4regulators, real time clock, battery charging controller and several
   5other sub-blocks. It is interfaced using an I2C interface. Each sub-block
   6is addressed by the host system using different i2c slave address.
   7
   8PMIC sub-block
   9--------------
  10
  11The PMIC sub-block contains a number of voltage and current regulators,
  12with controllable parameters and dynamic voltage scaling capability.
  13In addition, it includes a real time clock and battery charging controller
  14as well. It is accessible at I2C address 0x66.
  15
  16Required properties:
  17- compatible: Should be one of the following:
  18    - "maxim,max8998" for Maxim MAX8998
  19    - "national,lp3974" or "ti,lp3974" for National/TI LP3974.
  20- reg: Specifies the i2c slave address of the pmic block. It should be 0x66.
  21
  22Optional properties:
  23- interrupt-parent: Specifies the phandle of the interrupt controller to which
  24  the interrupts from MAX8998 are routed to.
  25- interrupts: Interrupt specifiers for two interrupt sources.
  26  - First interrupt specifier is for main interrupt.
  27  - Second interrupt specifier is for power-on/-off interrupt.
  28- max8998,pmic-buck1-dvs-gpios: GPIO specifiers for two host gpios used
  29  for buck 1 dvs. The format of the gpio specifier depends on the gpio
  30  controller.
  31- max8998,pmic-buck2-dvs-gpio: GPIO specifier for host gpio used
  32  for buck 2 dvs. The format of the gpio specifier depends on the gpio
  33  controller.
  34- max8998,pmic-buck1-default-dvs-idx: Default voltage setting selected from
  35  the possible 4 options selectable by the dvs gpios. The value of this
  36  property should be 0, 1, 2 or 3. If not specified or out of range,
  37  a default value of 0 is taken.
  38- max8998,pmic-buck2-default-dvs-idx: Default voltage setting selected from
  39  the possible 2 options selectable by the dvs gpios. The value of this
  40  property should be 0 or 1. If not specified or out of range, a default
  41  value of 0 is taken.
  42- max8998,pmic-buck-voltage-lock: If present, disallows changing of
  43  preprogrammed buck dvfs voltages.
  44
  45Additional properties required if max8998,pmic-buck1-dvs-gpios is defined:
  46- max8998,pmic-buck1-dvs-voltage: An array of 4 voltage values in microvolts
  47  for buck1 regulator that can be selected using dvs gpio.
  48
  49Additional properties required if max8998,pmic-buck2-dvs-gpio is defined:
  50- max8998,pmic-buck2-dvs-voltage: An array of 2 voltage values in microvolts
  51  for buck2 regulator that can be selected using dvs gpio.
  52
  53Regulators: All the regulators of MAX8998 to be instantiated shall be
  54listed in a child node named 'regulators'. Each regulator is represented
  55by a child node of the 'regulators' node.
  56
  57        regulator-name {
  58                /* standard regulator bindings here */
  59        };
  60
  61Following regulators of the MAX8998 PMIC block are supported. Note that
  62the 'n' in regulator name, as in LDOn or BUCKn, represents the LDO or BUCK
  63number as described in MAX8998 datasheet.
  64
  65        - LDOn
  66                  - valid values for n are 2 to 17
  67                  - Example: LDO2, LDO10, LDO17
  68        - BUCKn
  69                  - valid values for n are 1 to 4.
  70                  - Example: BUCK1, BUCK2, BUCK3, BUCK4
  71
  72        - ENVICHG: Battery Charging Current Monitor Output. This is a fixed
  73                   voltage type regulator
  74
  75        - ESAFEOUT1: (ldo19)
  76        - ESAFEOUT2: (ld020)
  77
  78Standard regulator bindings are used inside regulator subnodes. Check
  79  Documentation/devicetree/bindings/regulator/regulator.txt
  80for more details.
  81
  82Example:
  83
  84        pmic@66 {
  85                compatible = "maxim,max8998-pmic";
  86                reg = <0x66>;
  87                interrupt-parent = <&wakeup_eint>;
  88                interrupts = <4 0>, <3 0>;
  89
  90                /* Buck 1 DVS settings */
  91                max8998,pmic-buck1-default-dvs-idx = <0>;
  92                max8998,pmic-buck1-dvs-gpios = <&gpx0 0 1 0 0>, /* SET1 */
  93                                               <&gpx0 1 1 0 0>; /* SET2 */
  94                max8998,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
  95                                                 <1000000>, <950000>;
  96
  97                /* Buck 2 DVS settings */
  98                max8998,pmic-buck2-default-dvs-idx = <0>;
  99                max8998,pmic-buck2-dvs-gpio = <&gpx0 0 3 0 0>; /* SET3 */
 100                max8998,pmic-buck2-dvs-voltage = <1350000>, <1300000>;
 101
 102                /* Regulators to instantiate */
 103                regulators {
 104                        ldo2_reg: LDO2 {
 105                                regulator-name = "VDD_ALIVE_1.1V";
 106                                regulator-min-microvolt = <1100000>;
 107                                regulator-max-microvolt = <1100000>;
 108                                regulator-always-on;
 109                        };
 110
 111                        buck1_reg: BUCK1 {
 112                                regulator-name = "VDD_ARM_1.2V";
 113                                regulator-min-microvolt = <950000>;
 114                                regulator-max-microvolt = <1350000>;
 115                                regulator-always-on;
 116                                regulator-boot-on;
 117                        };
 118                };
 119        };
 120