162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/dlg,da9063.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Dialog DA9063/DA9063L Power Management Integrated Circuit (PMIC)
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Steve Twiss <stwiss.opensource@diasemi.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  For device-tree bindings of other sub-modules refer to the binding documents
1462306a36Sopenharmony_ci  under the respective sub-system directories.
1562306a36Sopenharmony_ci  Using regulator-{uv,ov}-{warn,error,protection}-microvolt requires special
1662306a36Sopenharmony_ci  handling: First, when GP_FB2 is used, it must be ensured that there is no
1762306a36Sopenharmony_ci  moment where all voltage monitors are disabled. Next, as da9063 only supports
1862306a36Sopenharmony_ci  UV *and* OV monitoring, both must be set to the same severity and value
1962306a36Sopenharmony_ci  (0: disable, 1: enable).
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciproperties:
2262306a36Sopenharmony_ci  compatible:
2362306a36Sopenharmony_ci    enum:
2462306a36Sopenharmony_ci      - dlg,da9063
2562306a36Sopenharmony_ci      - dlg,da9063l
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  reg:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  interrupts:
3162306a36Sopenharmony_ci    maxItems: 1
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  interrupt-controller: true
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  "#interrupt-cells":
3662306a36Sopenharmony_ci    const: 2
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  dlg,use-sw-pm:
3962306a36Sopenharmony_ci    type: boolean
4062306a36Sopenharmony_ci    description:
4162306a36Sopenharmony_ci      Disable the watchdog during suspend.
4262306a36Sopenharmony_ci      Only use this option if you can't use the watchdog automatic suspend
4362306a36Sopenharmony_ci      function during a suspend (see register CONTROL_B).
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  watchdog:
4662306a36Sopenharmony_ci    type: object
4762306a36Sopenharmony_ci    $ref: /schemas/watchdog/watchdog.yaml#
4862306a36Sopenharmony_ci    unevaluatedProperties: false
4962306a36Sopenharmony_ci    properties:
5062306a36Sopenharmony_ci      compatible:
5162306a36Sopenharmony_ci        const: dlg,da9063-watchdog
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  rtc:
5462306a36Sopenharmony_ci    type: object
5562306a36Sopenharmony_ci    $ref: /schemas/rtc/rtc.yaml#
5662306a36Sopenharmony_ci    unevaluatedProperties: false
5762306a36Sopenharmony_ci    properties:
5862306a36Sopenharmony_ci      compatible:
5962306a36Sopenharmony_ci        const: dlg,da9063-rtc
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  onkey:
6262306a36Sopenharmony_ci    type: object
6362306a36Sopenharmony_ci    $ref: /schemas/input/input.yaml#
6462306a36Sopenharmony_ci    unevaluatedProperties: false
6562306a36Sopenharmony_ci    properties:
6662306a36Sopenharmony_ci      compatible:
6762306a36Sopenharmony_ci        const: dlg,da9063-onkey
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci      dlg,disable-key-power:
7062306a36Sopenharmony_ci        type: boolean
7162306a36Sopenharmony_ci        description: |
7262306a36Sopenharmony_ci          Disable power-down using a long key-press.
7362306a36Sopenharmony_ci          If this entry does not exist then by default the key-press triggered
7462306a36Sopenharmony_ci          power down is enabled and the OnKey will support both KEY_POWER and
7562306a36Sopenharmony_ci          KEY_SLEEP.
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci  regulators:
7862306a36Sopenharmony_ci    type: object
7962306a36Sopenharmony_ci    additionalProperties: false
8062306a36Sopenharmony_ci    patternProperties:
8162306a36Sopenharmony_ci      "^(ldo([1-9]|1[01])|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged)$":
8262306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml
8362306a36Sopenharmony_ci        unevaluatedProperties: false
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_cirequired:
8662306a36Sopenharmony_ci  - compatible
8762306a36Sopenharmony_ci  - reg
8862306a36Sopenharmony_ci  - interrupts
8962306a36Sopenharmony_ci  - interrupt-controller
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciadditionalProperties: false
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciexamples:
9462306a36Sopenharmony_ci  - |
9562306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
9662306a36Sopenharmony_ci    i2c {
9762306a36Sopenharmony_ci      #address-cells = <1>;
9862306a36Sopenharmony_ci      #size-cells = <0>;
9962306a36Sopenharmony_ci      pmic@58 {
10062306a36Sopenharmony_ci        compatible = "dlg,da9063";
10162306a36Sopenharmony_ci        reg = <0x58>;
10262306a36Sopenharmony_ci        #interrupt-cells = <2>;
10362306a36Sopenharmony_ci        interrupt-parent = <&gpio6>;
10462306a36Sopenharmony_ci        interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
10562306a36Sopenharmony_ci        interrupt-controller;
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci        rtc {
10862306a36Sopenharmony_ci          compatible = "dlg,da9063-rtc";
10962306a36Sopenharmony_ci        };
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci        watchdog {
11262306a36Sopenharmony_ci          compatible = "dlg,da9063-watchdog";
11362306a36Sopenharmony_ci        };
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci        onkey {
11662306a36Sopenharmony_ci          compatible = "dlg,da9063-onkey";
11762306a36Sopenharmony_ci          dlg,disable-key-power;
11862306a36Sopenharmony_ci        };
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci        regulators {
12162306a36Sopenharmony_ci          bcore1 {
12262306a36Sopenharmony_ci            regulator-name = "BCORE1";
12362306a36Sopenharmony_ci            regulator-min-microvolt = <300000>;
12462306a36Sopenharmony_ci            regulator-max-microvolt = <1570000>;
12562306a36Sopenharmony_ci            regulator-min-microamp = <500000>;
12662306a36Sopenharmony_ci            regulator-max-microamp = <2000000>;
12762306a36Sopenharmony_ci            regulator-boot-on;
12862306a36Sopenharmony_ci          };
12962306a36Sopenharmony_ci          ldo6 {
13062306a36Sopenharmony_ci            /* UNUSED */
13162306a36Sopenharmony_ci            regulator-name = "LDO_6";
13262306a36Sopenharmony_ci            regulator-uv-protection-microvolt = <0>;
13362306a36Sopenharmony_ci            regulator-ov-protection-microvolt = <0>;
13462306a36Sopenharmony_ci          };
13562306a36Sopenharmony_ci          ldo11 {
13662306a36Sopenharmony_ci            regulator-name = "LDO_11";
13762306a36Sopenharmony_ci            regulator-min-microvolt = <900000>;
13862306a36Sopenharmony_ci            regulator-max-microvolt = <900000>;
13962306a36Sopenharmony_ci            regulator-uv-protection-microvolt = <1>;
14062306a36Sopenharmony_ci            regulator-ov-protection-microvolt = <1>;
14162306a36Sopenharmony_ci            regulator-always-on;
14262306a36Sopenharmony_ci          };
14362306a36Sopenharmony_ci        };
14462306a36Sopenharmony_ci      };
14562306a36Sopenharmony_ci    };
14662306a36Sopenharmony_ci...
147