Back to home page

OSCL-LXR

 
 

    


0001 * Maxim MAX8998, National/TI LP3974 multi-function device
0002 
0003 The Maxim MAX8998 is a multi-function device which includes voltage/current
0004 regulators, real time clock, battery charging controller and several
0005 other sub-blocks. It is interfaced using an I2C interface. Each sub-block
0006 is addressed by the host system using different i2c slave address.
0007 
0008 PMIC sub-block
0009 --------------
0010 
0011 The PMIC sub-block contains a number of voltage and current regulators,
0012 with controllable parameters and dynamic voltage scaling capability.
0013 In addition, it includes a real time clock and battery charging controller
0014 as well. It is accessible at I2C address 0x66.
0015 
0016 Required properties:
0017 - compatible: Should be one of the following:
0018     - "maxim,max8998" for Maxim MAX8998
0019     - "national,lp3974" or "ti,lp3974" for National/TI LP3974.
0020 - reg: Specifies the i2c slave address of the pmic block. It should be 0x66.
0021 
0022 Optional properties:
0023 - interrupts: Interrupt specifiers for two interrupt sources.
0024   - First interrupt specifier is for main interrupt.
0025   - Second interrupt specifier is for power-on/-off interrupt.
0026 - max8998,pmic-buck1-dvs-gpios: GPIO specifiers for two host gpios used
0027   for buck 1 dvs. The format of the gpio specifier depends on the gpio
0028   controller.
0029 - max8998,pmic-buck2-dvs-gpio: GPIO specifier for host gpio used
0030   for buck 2 dvs. The format of the gpio specifier depends on the gpio
0031   controller.
0032 - max8998,pmic-buck1-default-dvs-idx: Default voltage setting selected from
0033   the possible 4 options selectable by the dvs gpios. The value of this
0034   property should be 0, 1, 2 or 3. If not specified or out of range,
0035   a default value of 0 is taken.
0036 - max8998,pmic-buck2-default-dvs-idx: Default voltage setting selected from
0037   the possible 2 options selectable by the dvs gpios. The value of this
0038   property should be 0 or 1. If not specified or out of range, a default
0039   value of 0 is taken.
0040 - max8998,pmic-buck-voltage-lock: If present, disallows changing of
0041   preprogrammed buck dvfs voltages.
0042 
0043 Additional properties required if max8998,pmic-buck1-dvs-gpios is defined:
0044 - max8998,pmic-buck1-dvs-voltage: An array of 4 voltage values in microvolts
0045   for buck1 regulator that can be selected using dvs gpio.
0046 
0047 Additional properties required if max8998,pmic-buck2-dvs-gpio is defined:
0048 - max8998,pmic-buck2-dvs-voltage: An array of 2 voltage values in microvolts
0049   for buck2 regulator that can be selected using dvs gpio.
0050 
0051 Regulators: All the regulators of MAX8998 to be instantiated shall be
0052 listed in a child node named 'regulators'. Each regulator is represented
0053 by a child node of the 'regulators' node.
0054 
0055         regulator-name {
0056                 /* standard regulator bindings here */
0057         };
0058 
0059 Following regulators of the MAX8998 PMIC block are supported. Note that
0060 the 'n' in regulator name, as in LDOn or BUCKn, represents the LDO or BUCK
0061 number as described in MAX8998 datasheet.
0062 
0063         - LDOn
0064                   - valid values for n are 2 to 17
0065                   - Example: LDO2, LDO10, LDO17
0066         - BUCKn
0067                   - valid values for n are 1 to 4.
0068                   - Example: BUCK1, BUCK2, BUCK3, BUCK4
0069 
0070         - ENVICHG: Battery Charging Current Monitor Output. This is a fixed
0071                    voltage type regulator
0072 
0073         - ESAFEOUT1: (ldo19)
0074         - ESAFEOUT2: (ld020)
0075 
0076         - CHARGER: main battery charger current control
0077 
0078 Standard regulator bindings are used inside regulator subnodes. Check
0079   Documentation/devicetree/bindings/regulator/regulator.txt
0080 for more details.
0081 
0082 Example:
0083 
0084         pmic@66 {
0085                 compatible = "maxim,max8998-pmic";
0086                 reg = <0x66>;
0087                 interrupt-parent = <&wakeup_eint>;
0088                 interrupts = <4 0>, <3 0>;
0089 
0090                 /* Buck 1 DVS settings */
0091                 max8998,pmic-buck1-default-dvs-idx = <0>;
0092                 max8998,pmic-buck1-dvs-gpios = <&gpx0 0 1 0 0>, /* SET1 */
0093                                                <&gpx0 1 1 0 0>; /* SET2 */
0094                 max8998,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
0095                                                  <1000000>, <950000>;
0096 
0097                 /* Buck 2 DVS settings */
0098                 max8998,pmic-buck2-default-dvs-idx = <0>;
0099                 max8998,pmic-buck2-dvs-gpio = <&gpx0 0 3 0 0>; /* SET3 */
0100                 max8998,pmic-buck2-dvs-voltage = <1350000>, <1300000>;
0101 
0102                 /* Regulators to instantiate */
0103                 regulators {
0104                         ldo2_reg: LDO2 {
0105                                 regulator-name = "VDD_ALIVE_1.1V";
0106                                 regulator-min-microvolt = <1100000>;
0107                                 regulator-max-microvolt = <1100000>;
0108                                 regulator-always-on;
0109                         };
0110 
0111                         buck1_reg: BUCK1 {
0112                                 regulator-name = "VDD_ARM_1.2V";
0113                                 regulator-min-microvolt = <950000>;
0114                                 regulator-max-microvolt = <1350000>;
0115                                 regulator-always-on;
0116                                 regulator-boot-on;
0117                         };
0118 
0119                         charger_reg: CHARGER {
0120                                 regulator-name = "CHARGER";
0121                                 regulator-min-microamp = <90000>;
0122                                 regulator-max-microamp = <800000>;
0123                         };
0124                 };
0125         };