# 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

  connector:
    $ref: /schemas/connector/usb-connector.yaml#
    unevaluatedProperties: false

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

  max77693-muic:
    type: object
    additionalProperties: false
    deprecated: true

    properties:
      compatible:
        const: maxim,max77693-muic

    required:
      - compatible

  muic:
    type: object
    additionalProperties: false

    properties:
      compatible:
        const: maxim,max77693-muic

      connector:
        $ref: /schemas/connector/usb-connector.yaml#
        unevaluatedProperties: false

    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>;
                };
            };

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

                connector {
                    compatible = "samsung,usb-connector-11pin",
                                 "usb-b-connector";
                    label = "micro-USB";
                    type = "micro";

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

                        port@0 {
                            reg = <0>;

                            muic_to_usb: endpoint {
                                remote-endpoint = <&usb_to_muic>;
                            };
                        };

                        port@3 {
                            reg = <3>;

                            muic_to_mhl: endpoint {
                                remote-endpoint = <&mhl_to_muic>;
                            };
                        };
                    };
                };
            };

            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>;
                };
            };
        };
    };
