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- interrupts: Interrupt specifiers for two interrupt sources. 24 - First interrupt specifier is for main interrupt. 25 - Second interrupt specifier is for power-on/-off interrupt. 26- max8998,pmic-buck1-dvs-gpios: GPIO specifiers for two host gpios used 27 for buck 1 dvs. The format of the gpio specifier depends on the gpio 28 controller. 29- max8998,pmic-buck2-dvs-gpio: GPIO specifier for host gpio used 30 for buck 2 dvs. The format of the gpio specifier depends on the gpio 31 controller. 32- max8998,pmic-buck1-default-dvs-idx: Default voltage setting selected from 33 the possible 4 options selectable by the dvs gpios. The value of this 34 property should be 0, 1, 2 or 3. If not specified or out of range, 35 a default value of 0 is taken. 36- max8998,pmic-buck2-default-dvs-idx: Default voltage setting selected from 37 the possible 2 options selectable by the dvs gpios. The value of this 38 property should be 0 or 1. If not specified or out of range, a default 39 value of 0 is taken. 40- max8998,pmic-buck-voltage-lock: If present, disallows changing of 41 preprogrammed buck dvfs voltages. 42 43Additional properties required if max8998,pmic-buck1-dvs-gpios is defined: 44- max8998,pmic-buck1-dvs-voltage: An array of 4 voltage values in microvolts 45 for buck1 regulator that can be selected using dvs gpio. 46 47Additional properties required if max8998,pmic-buck2-dvs-gpio is defined: 48- max8998,pmic-buck2-dvs-voltage: An array of 2 voltage values in microvolts 49 for buck2 regulator that can be selected using dvs gpio. 50 51Regulators: All the regulators of MAX8998 to be instantiated shall be 52listed in a child node named 'regulators'. Each regulator is represented 53by a child node of the 'regulators' node. 54 55 regulator-name { 56 /* standard regulator bindings here */ 57 }; 58 59Following regulators of the MAX8998 PMIC block are supported. Note that 60the 'n' in regulator name, as in LDOn or BUCKn, represents the LDO or BUCK 61number as described in MAX8998 datasheet. 62 63 - LDOn 64 - valid values for n are 2 to 17 65 - Example: LDO2, LDO10, LDO17 66 - BUCKn 67 - valid values for n are 1 to 4. 68 - Example: BUCK1, BUCK2, BUCK3, BUCK4 69 70 - ENVICHG: Battery Charging Current Monitor Output. This is a fixed 71 voltage type regulator 72 73 - ESAFEOUT1: (ldo19) 74 - ESAFEOUT2: (ld020) 75 76 - CHARGER: main battery charger current control 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 charger_reg: CHARGER { 120 regulator-name = "CHARGER"; 121 regulator-min-microamp = <90000>; 122 regulator-max-microamp = <800000>; 123 }; 124 }; 125 }; 126