Maxim MAX77693 multi-function device

MAX77693 is a Multifunction device with the following submodules:
- PMIC,
- CHARGER,
- LED,
- MUIC,
- HAPTIC

It is interfaced to host controller using i2c.
This document describes the bindings for the mfd device.

Required properties:
- compatible : Must be "maxim,max77693".
- reg : Specifies the i2c slave address of PMIC block.
- interrupts : This i2c device has an IRQ line connected to the main SoC.
- interrupt-parent :  The parent interrupt controller.

Optional properties:
- regulators : The regulators of max77693 have to be instantiated under subnode
  named "regulators" using the following format.

	regulators {
		regulator-compatible = ESAFEOUT1/ESAFEOUT2/CHARGER
		standard regulator constraints[*].
	};

	[*] refer Documentation/devicetree/bindings/regulator/regulator.txt

- haptic : The MAX77693 haptic device utilises a PWM controlled motor to provide
  users with tactile feedback. PWM period and duty-cycle are varied in
  order to provide the appropriate level of feedback.

 Required properties:
	- compatible : Must be "maxim,max77693-haptic"
	- haptic-supply : power supply for the haptic motor
	[*] refer Documentation/devicetree/bindings/regulator/regulator.txt
	- pwms : phandle to the physical PWM(Pulse Width Modulation) device.
	 PWM properties should be named "pwms". And number of cell is different
	 for each pwm device.
	 To get more information, please refer to documentation.
	[*] refer Documentation/devicetree/bindings/pwm/pwm.txt

- charger : Node configuring the charger driver.
  If present, required properties:
  - compatible : Must be "maxim,max77693-charger".

  Optional properties (if not set, defaults will be used):
  - maxim,constant-microvolt : Battery constant voltage in uV. The charger
    will operate in fast charge constant current mode till battery voltage
    reaches this level. Then the charger will switch to fast charge constant
    voltage mode. Also vsys (system voltage) will be set to this value when
    DC power is supplied but charger is not enabled.
    Valid values: 3650000 - 4400000, step by 25000 (rounded down)
    Default: 4200000

  - maxim,min-system-microvolt : Minimal system voltage in uV.
    Valid values: 3000000 - 3700000, step by 100000 (rounded down)
    Default: 3600000

  - maxim,thermal-regulation-celsius : Temperature in Celsius for entering
    high temperature charging mode. If die temperature exceeds this value
    the charging current will be reduced by 105 mA/Celsius.
    Valid values: 70, 85, 100, 115
    Default: 100

  - maxim,battery-overcurrent-microamp : Overcurrent protection threshold
    in uA (current from battery to system).
    Valid values: 2000000 - 3500000, step by 250000 (rounded down)
    Default: 3500000

  - maxim,charge-input-threshold-microvolt : Threshold voltage in uV for
    triggering input voltage regulation loop. If input voltage decreases
    below this value, the input current will be reduced to reach the
    threshold voltage.
    Valid values: 4300000, 4700000, 4800000, 4900000
    Default: 4300000

- led : the LED submodule device node

There are two LED outputs available - FLED1 and FLED2. Each of them can
control a separate LED or they can be connected together to double
the maximum current for a single connected LED. One LED is represented
by one child node.

Required properties:
- compatible : Must be "maxim,max77693-led".

Optional properties:
- maxim,boost-mode :
	In boost mode the device can produce up to 1.2A of total current
	on both outputs. The maximum current on each output is reduced
	to 625mA then. If not enabled explicitly, boost setting defaults to
	LEDS_BOOST_FIXED in case both current sources are used.
	Possible values:
		LEDS_BOOST_OFF (0) - no boost,
		LEDS_BOOST_ADAPTIVE (1) - adaptive mode,
		LEDS_BOOST_FIXED (2) - fixed mode.
- maxim,boost-mvout : Output voltage of the boost module in millivolts.
	Valid values: 3300 - 5500, step by 25 (rounded down)
	Default: 3300
- maxim,mvsys-min : Low input voltage level in millivolts. Flash is not fired
	if chip estimates that system voltage could drop below this level due
	to flash power consumption.
	Valid values: 2400 - 3400, step by 33 (rounded down)
	Default: 2400

Required properties for the LED child node:
- led-sources : see Documentation/devicetree/bindings/leds/common.txt;
		device current output identifiers: 0 - FLED1, 1 - FLED2
- led-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
	Valid values for a LED connected to one FLED output:
		15625 - 250000, step by 15625 (rounded down)
	Valid values for a LED connected to both FLED outputs:
		15625 - 500000, step by 15625 (rounded down)
- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
	Valid values for a single LED connected to one FLED output
	(boost mode must be turned off):
		15625 - 1000000, step by 15625 (rounded down)
	Valid values for a single LED connected to both FLED outputs:
		15625 - 1250000, step by 15625 (rounded down)
	Valid values for two LEDs case:
		15625 - 625000, step by 15625 (rounded down)
- flash-max-timeout-us : see Documentation/devicetree/bindings/leds/common.txt
	Valid values: 62500 - 1000000, step by 62500 (rounded down)

Optional properties for the LED child node:
- label : see Documentation/devicetree/bindings/leds/common.txt

Optional nodes:
- max77693-muic :
	Node used only by extcon consumers.
	Required properties:
		- compatible : "maxim,max77693-muic"

Example:
#include <dt-bindings/leds/common.h>

	max77693@66 {
		compatible = "maxim,max77693";
		reg = <0x66>;
		interrupt-parent = <&gpx1>;
		interrupts = <5 2>;

		regulators {
			esafeout@1 {
				regulator-compatible = "ESAFEOUT1";
				regulator-name = "ESAFEOUT1";
				regulator-boot-on;
			};
			esafeout@2 {
				regulator-compatible = "ESAFEOUT2";
				regulator-name = "ESAFEOUT2";
				};
			charger@0 {
				regulator-compatible = "CHARGER";
				regulator-name = "CHARGER";
				regulator-min-microamp = <60000>;
				regulator-max-microamp = <2580000>;
					regulator-boot-on;
			};
		};

		haptic {
			compatible = "maxim,max77693-haptic";
			haptic-supply = <&haptic_supply>;
			pwms = <&pwm 0 40000 0>;
			pwm-names = "haptic";
		};

		charger {
			compatible = "maxim,max77693-charger";

			maxim,constant-microvolt = <4200000>;
			maxim,min-system-microvolt = <3600000>;
			maxim,thermal-regulation-celsius = <75>;
			maxim,battery-overcurrent-microamp = <3000000>;
			maxim,charge-input-threshold-microvolt = <4300000>;

		led {
			compatible = "maxim,max77693-led";
			maxim,boost-mode = <LEDS_BOOST_FIXED>;
			maxim,boost-mvout = <5000>;
			maxim,mvsys-min = <2400>;

			camera_flash: flash-led {
				label = "max77693-flash";
				led-sources = <0>, <1>;
				led-max-microamp = <500000>;
				flash-max-microamp = <1250000>;
				flash-max-timeout-us = <1000000>;
			};
		};
	};
