# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/maxim,max77693.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim MAX77693 MicroUSB and Companion Power Management IC

maintainers:
  - Chanwoo Choi <cw00.choi@samsung.com>
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |
  This is a part of device tree bindings for Maxim MAX77693 MicroUSB
  Integrated Circuit (MUIC).

  The Maxim MAX77693 is a MicroUSB and Companion Power Management IC which
  includes voltage current regulators, charger, LED/flash, haptic motor driver
  and MicroUSB management IC.

properties:
  compatible:
    const: maxim,max77693

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

  charger:
    $ref: /schemas/power/supply/maxim,max77693.yaml

  led:
    $ref: /schemas/leds/maxim,max77693.yaml

  max77693-muic:
    type: object
    additionalProperties: false

    properties:
      compatible:
        const: maxim,max77693-muic

    required:
      - compatible

  motor-driver:
    type: object
    additionalProperties: false

    properties:
      compatible:
        const: maxim,max77693-haptic

      haptic-supply:
        description: Power supply to the haptic motor

      pwms:
        maxItems: 1

    required:
      - compatible
      - haptic-supply
      - pwms

  regulators:
    $ref: ../regulator/maxim,max77693.yaml
    description:
      List of child nodes that specify the regulators.

required:
  - compatible
  - interrupts
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/leds/common.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

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

            regulators {
                ESAFEOUT1 {
                    regulator-name = "ESAFEOUT1";
                };

                ESAFEOUT2 {
                    regulator-name = "ESAFEOUT2";
                };

                CHARGER {
                    regulator-name = "CHARGER";
                    regulator-min-microamp = <60000>;
                    regulator-max-microamp = <2580000>;
                };
            };

            motor-driver {
                compatible = "maxim,max77693-haptic";
                haptic-supply = <&ldo26_reg>;
                pwms = <&pwm 0 38022 0>;
            };

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

                maxim,constant-microvolt = <4350000>;
                maxim,min-system-microvolt = <3600000>;
                maxim,thermal-regulation-celsius = <100>;
                maxim,battery-overcurrent-microamp = <3500000>;
                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>;

                flash-led {
                    label = "max77693-flash";
                    function = LED_FUNCTION_FLASH;
                    color = <LED_COLOR_ID_WHITE>;
                    led-sources = <0>, <1>;
                    led-max-microamp = <500000>;
                    flash-max-microamp = <1250000>;
                    flash-max-timeout-us = <1000000>;
                };
            };
        };
    };
