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