# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/dlg,da9063.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Dialog DA9063/DA9063L Power Management Integrated Circuit (PMIC)

maintainers:
  - Steve Twiss <stwiss.opensource@diasemi.com>

description: |
  For device-tree bindings of other sub-modules refer to the binding documents
  under the respective sub-system directories.

properties:
  compatible:
    enum:
      - dlg,da9063
      - dlg,da9063l

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  interrupt-controller: true

  "#interrupt-cells":
    const: 2

  dlg,use-sw-pm:
    type: boolean
    description:
      Disable the watchdog during suspend.
      Only use this option if you can't use the watchdog automatic suspend
      function during a suspend (see register CONTROL_B).

  watchdog:
    type: object
    $ref: /schemas/watchdog/watchdog.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        const: dlg,da9063-watchdog

  rtc:
    type: object
    $ref: /schemas/rtc/rtc.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        const: dlg,da9063-rtc

  onkey:
    type: object
    $ref: /schemas/input/input.yaml#
    unevaluatedProperties: false
    properties:
      compatible:
        const: dlg,da9063-onkey

      dlg,disable-key-power:
        type: boolean
        description: |
          Disable power-down using a long key-press.
          If this entry does not exist then by default the key-press triggered
          power down is enabled and the OnKey will support both KEY_POWER and
          KEY_SLEEP.

  regulators:
    type: object
    patternProperties:
      "^(ldo[1-11]|bcore[1-2]|bpro|bmem|bio|bperi)$":
        $ref: /schemas/regulator/regulator.yaml
        unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts
  - interrupt-controller

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      pmic@58 {
        compatible = "dlg,da9063";
        reg = <0x58>;
        #interrupt-cells = <2>;
        interrupt-parent = <&gpio6>;
        interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
        interrupt-controller;

        rtc {
          compatible = "dlg,da9063-rtc";
        };

        watchdog {
          compatible = "dlg,da9063-watchdog";
        };

        onkey {
          compatible = "dlg,da9063-onkey";
          dlg,disable-key-power;
        };

        regulators {
          regulator-bcore1 {
            regulator-name = "BCORE1";
            regulator-min-microvolt = <300000>;
            regulator-max-microvolt = <1570000>;
            regulator-min-microamp = <500000>;
            regulator-max-microamp = <2000000>;
            regulator-boot-on;
          };
          regulator-ldo11 {
            regulator-name = "LDO_11";
            regulator-min-microvolt = <900000>;
            regulator-max-microvolt = <3600000>;
            regulator-boot-on;
          };
        };
      };
    };
...
