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