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

title: Maxim MAX77843 MicroUSB and Companion Power Management IC

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

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

  The Maxim MAX77843 is a MicroUSB and Companion Power Management IC which
  includes voltage current regulators, charger, fuel-gauge, haptic motor driver
  and MicroUSB management IC.

properties:
  compatible:
    const: maxim,max77843

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

  extcon:
    $ref: /schemas/extcon/maxim,max77843.yaml

  motor-driver:
    type: object
    additionalProperties: false
    properties:
      compatible:
        const: maxim,max77843-haptic

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

      pwms:
        maxItems: 1

    required:
      - compatible
      - haptic-supply
      - pwms

  regulators:
    $ref: /schemas/regulator/maxim,max77843.yaml

required:
  - compatible
  - interrupts
  - reg

additionalProperties: false

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

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

        pmic@66 {
            compatible = "maxim,max77843";
            interrupt-parent = <&gpa1>;
            interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
            reg = <0x66>;

            extcon {
                compatible = "maxim,max77843-muic";

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

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

                        port@0 {
                            /*
                             * TODO: The DTS this is based on does not have
                             * port@0 which is a required property. The ports
                             * look incomplete and need fixing.
                             * Add a disabled port just to satisfy dtschema.
                             */
                            reg = <0>;
                            status = "disabled";
                        };

                        port@3 {
                            reg = <3>;
                            endpoint {
                                remote-endpoint = <&mhl_to_musb_con>;
                            };
                        };
                    };
                };

                ports {
                    port {
                        endpoint {
                            remote-endpoint = <&usb_to_muic>;
                        };
                    };
                };
            };

            regulators {
                compatible = "maxim,max77843-regulator";

                SAFEOUT1 {
                    regulator-name = "SAFEOUT1";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <4950000>;
                };

                SAFEOUT2 {
                    regulator-name = "SAFEOUT2";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <4950000>;
                };

                CHARGER {
                    regulator-name = "CHARGER";
                    regulator-min-microamp = <100000>;
                    regulator-max-microamp = <3150000>;
                };
            };

            motor-driver {
                compatible = "maxim,max77843-haptic";
                haptic-supply = <&ldo38_reg>;
                pwms = <&pwm 0 33670 0>;
            };
        };
    };
