1Maxim MAX77693 multi-function device
2
3MAX77693 is a Multifunction device with the following submodules:
4- PMIC,
5- CHARGER,
6- LED,
7- MUIC,
8- HAPTIC
9
10It is interfaced to host controller using i2c.
11This document describes the bindings for the mfd device.
12
13Required properties:
14- compatible : Must be "maxim,max77693".
15- reg : Specifies the i2c slave address of PMIC block.
16- interrupts : This i2c device has an IRQ line connected to the main SoC.
17- interrupt-parent :  The parent interrupt controller.
18
19Optional properties:
20- regulators : The regulators of max77693 have to be instantiated under subnod
21  named "regulators" using the following format.
22
23	regulators {
24		regualtor-compatible = ESAFEOUT1/ESAFEOUT2/CHARGER
25		standard regulator constratints[*].
26	};
27
28	[*] refer Documentation/devicetree/bindings/regulator/regulator.txt
29
30- haptic : The MAX77693 haptic device utilises a PWM controlled motor to provide
31  users with tactile feedback. PWM period and duty-cycle are varied in
32  order to provide the approprite level of feedback.
33
34 Required properties:
35	- compatible : Must be "maxim,max77693-hpatic"
36	- haptic-supply : power supply for the haptic motor
37	[*] refer Documentation/devicetree/bindings/regulator/regulator.txt
38	- pwms : phandle to the physical PWM(Pulse Width Modulation) device.
39	 PWM properties should be named "pwms". And number of cell is different
40	 for each pwm device.
41	 To get more informations, please refer to documentaion.
42	[*] refer Documentation/devicetree/bindings/pwm/pwm.txt
43
44- charger : Node configuring the charger driver.
45  If present, required properties:
46  - compatible : Must be "maxim,max77693-charger".
47
48  Optional properties (if not set, defaults will be used):
49  - maxim,constant-microvolt : Battery constant voltage in uV. The charger
50    will operate in fast charge constant current mode till battery voltage
51    reaches this level. Then the charger will switch to fast charge constant
52    voltage mode. Also vsys (system voltage) will be set to this value when
53    DC power is supplied but charger is not enabled.
54    Valid values: 3650000 - 4400000, step by 25000 (rounded down)
55    Default: 4200000
56
57  - maxim,min-system-microvolt : Minimal system voltage in uV.
58    Valid values: 3000000 - 3700000, step by 100000 (rounded down)
59    Default: 3600000
60
61  - maxim,thermal-regulation-celsius : Temperature in Celsius for entering
62    high temperature charging mode. If die temperature exceeds this value
63    the charging current will be reduced by 105 mA/Celsius.
64    Valid values: 70, 85, 100, 115
65    Default: 100
66
67  - maxim,battery-overcurrent-microamp : Overcurrent protection threshold
68    in uA (current from battery to system).
69    Valid values: 2000000 - 3500000, step by 250000 (rounded down)
70    Default: 3500000
71
72  - maxim,charge-input-threshold-microvolt : Threshold voltage in uV for
73    triggering input voltage regulation loop. If input voltage decreases
74    below this value, the input current will be reduced to reach the
75    threshold voltage.
76    Valid values: 4300000, 4700000, 4800000, 4900000
77    Default: 4300000
78
79- led : the LED submodule device node
80
81There are two LED outputs available - FLED1 and FLED2. Each of them can
82control a separate LED or they can be connected together to double
83the maximum current for a single connected LED. One LED is represented
84by one child node.
85
86Required properties:
87- compatible : Must be "maxim,max77693-led".
88
89Optional properties:
90- maxim,boost-mode :
91	In boost mode the device can produce up to 1.2A of total current
92	on both outputs. The maximum current on each output is reduced
93	to 625mA then. If not enabled explicitly, boost setting defaults to
94	LEDS_BOOST_FIXED in case both current sources are used.
95	Possible values:
96		LEDS_BOOST_OFF (0) - no boost,
97		LEDS_BOOST_ADAPTIVE (1) - adaptive mode,
98		LEDS_BOOST_FIXED (2) - fixed mode.
99- maxim,boost-mvout : Output voltage of the boost module in millivolts.
100	Valid values: 3300 - 5500, step by 25 (rounded down)
101	Default: 3300
102- maxim,mvsys-min : Low input voltage level in millivolts. Flash is not fired
103	if chip estimates that system voltage could drop below this level due
104	to flash power consumption.
105	Valid values: 2400 - 3400, step by 33 (rounded down)
106	Default: 2400
107
108Required properties for the LED child node:
109- led-sources : see Documentation/devicetree/bindings/leds/common.txt;
110		device current output identifiers: 0 - FLED1, 1 - FLED2
111- led-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
112	Valid values for a LED connected to one FLED output:
113		15625 - 250000, step by 15625 (rounded down)
114	Valid values for a LED connected to both FLED outputs:
115		15625 - 500000, step by 15625 (rounded down)
116- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
117	Valid values for a single LED connected to one FLED output
118	(boost mode must be turned off):
119		15625 - 1000000, step by 15625 (rounded down)
120	Valid values for a single LED connected to both FLED outputs:
121		15625 - 1250000, step by 15625 (rounded down)
122	Valid values for two LEDs case:
123		15625 - 625000, step by 15625 (rounded down)
124- flash-max-timeout-us : see Documentation/devicetree/bindings/leds/common.txt
125	Valid values: 62500 - 1000000, step by 62500 (rounded down)
126
127Optional properties for the LED child node:
128- label : see Documentation/devicetree/bindings/leds/common.txt
129
130Example:
131#include <dt-bindings/leds/common.h>
132
133	max77693@66 {
134		compatible = "maxim,max77693";
135		reg = <0x66>;
136		interrupt-parent = <&gpx1>;
137		interrupts = <5 2>;
138
139		regulators {
140			esafeout@1 {
141				regulator-compatible = "ESAFEOUT1";
142				regulator-name = "ESAFEOUT1";
143				regulator-boot-on;
144			};
145			esafeout@2 {
146				regulator-compatible = "ESAFEOUT2";
147				regulator-name = "ESAFEOUT2";
148				};
149			charger@0 {
150				regulator-compatible = "CHARGER";
151				regulator-name = "CHARGER";
152				regulator-min-microamp = <60000>;
153				regulator-max-microamp = <2580000>;
154					regulator-boot-on;
155			};
156		};
157
158		haptic {
159			compatible = "maxim,max77693-haptic";
160			haptic-supply = <&haptic_supply>;
161			pwms = <&pwm 0 40000 0>;
162			pwm-names = "haptic";
163		};
164
165		charger {
166			compatible = "maxim,max77693-charger";
167
168			maxim,constant-microvolt = <4200000>;
169			maxim,min-system-microvolt = <3600000>;
170			maxim,thermal-regulation-celsius = <75>;
171			maxim,battery-overcurrent-microamp = <3000000>;
172			maxim,charge-input-threshold-microvolt = <4300000>;
173
174		led {
175			compatible = "maxim,max77693-led";
176			maxim,boost-mode = <LEDS_BOOST_FIXED>;
177			maxim,boost-mvout = <5000>;
178			maxim,mvsys-min = <2400>;
179
180			camera_flash: flash-led {
181				label = "max77693-flash";
182				led-sources = <0>, <1>;
183				led-max-microamp = <500000>;
184				flash-max-microamp = <1250000>;
185				flash-max-timeout-us = <1000000>;
186			};
187		};
188	};
189