summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/mfd/dlg,da9063.yaml
blob: c5a7e10d7d80e8d77b6ed602623b748ecca9bdf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# 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.
  Using regulator-{uv,ov}-{warn,error,protection}-microvolt requires special
  handling: First, when GP_FB2 is used, it must be ensured that there is no
  moment where all voltage monitors are disabled. Next, as da9063 only supports
  UV *and* OV monitoring, both must be set to the same severity and value
  (0: disable, 1: enable).

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
    additionalProperties: false
    patternProperties:
      "^(ldo([1-9]|1[01])|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged)$":
        $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 {
          bcore1 {
            regulator-name = "BCORE1";
            regulator-min-microvolt = <300000>;
            regulator-max-microvolt = <1570000>;
            regulator-min-microamp = <500000>;
            regulator-max-microamp = <2000000>;
            regulator-boot-on;
          };
          ldo6 {
            /* UNUSED */
            regulator-name = "LDO_6";
            regulator-uv-protection-microvolt = <0>;
            regulator-ov-protection-microvolt = <0>;
          };
          ldo11 {
            regulator-name = "LDO_11";
            regulator-min-microvolt = <900000>;
            regulator-max-microvolt = <900000>;
            regulator-uv-protection-microvolt = <1>;
            regulator-ov-protection-microvolt = <1>;
            regulator-always-on;
          };
        };
      };
    };
...