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 };