xref: /linux/Documentation/devicetree/bindings/mfd/dlg,da9063.yaml (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
1361104b0SConor Dooley# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2361104b0SConor Dooley%YAML 1.2
3361104b0SConor Dooley---
4361104b0SConor Dooley$id: http://devicetree.org/schemas/mfd/dlg,da9063.yaml#
5361104b0SConor Dooley$schema: http://devicetree.org/meta-schemas/core.yaml#
6361104b0SConor Dooley
7f1eb64bfSBiju Dastitle: Dialog DA906{3L,3,2,1} Power Management Integrated Circuit (PMIC)
8361104b0SConor Dooley
9361104b0SConor Dooleymaintainers:
10361104b0SConor Dooley  - Steve Twiss <stwiss.opensource@diasemi.com>
11361104b0SConor Dooley
12361104b0SConor Dooleydescription: |
13361104b0SConor Dooley  For device-tree bindings of other sub-modules refer to the binding documents
14361104b0SConor Dooley  under the respective sub-system directories.
150271b61bSBenjamin Bara  Using regulator-{uv,ov}-{warn,error,protection}-microvolt requires special
160271b61bSBenjamin Bara  handling: First, when GP_FB2 is used, it must be ensured that there is no
170271b61bSBenjamin Bara  moment where all voltage monitors are disabled. Next, as da9063 only supports
180271b61bSBenjamin Bara  UV *and* OV monitoring, both must be set to the same severity and value
190271b61bSBenjamin Bara  (0: disable, 1: enable).
20f1eb64bfSBiju Das  Product information for the DA906{3L,3,2,1} devices can be found here:
21f1eb64bfSBiju Das  - https://www.dialog-semiconductor.com/products/da9063l
22f1eb64bfSBiju Das  - https://www.dialog-semiconductor.com/products/da9063
23f1eb64bfSBiju Das  - https://www.dialog-semiconductor.com/products/da9062
24f1eb64bfSBiju Das  - https://www.dialog-semiconductor.com/products/da9061
25361104b0SConor Dooley
26361104b0SConor Dooleyproperties:
27361104b0SConor Dooley  compatible:
28361104b0SConor Dooley    enum:
29f1eb64bfSBiju Das      - dlg,da9061
30f1eb64bfSBiju Das      - dlg,da9062
31361104b0SConor Dooley      - dlg,da9063
32361104b0SConor Dooley      - dlg,da9063l
33361104b0SConor Dooley
34361104b0SConor Dooley  reg:
35361104b0SConor Dooley    maxItems: 1
36361104b0SConor Dooley
37361104b0SConor Dooley  interrupts:
38361104b0SConor Dooley    maxItems: 1
39361104b0SConor Dooley
40361104b0SConor Dooley  interrupt-controller: true
41361104b0SConor Dooley
42361104b0SConor Dooley  "#interrupt-cells":
43361104b0SConor Dooley    const: 2
44361104b0SConor Dooley
45f1eb64bfSBiju Das  gpio-controller: true
46f1eb64bfSBiju Das
47f1eb64bfSBiju Das  "#gpio-cells":
48f1eb64bfSBiju Das    const: 2
49f1eb64bfSBiju Das
50f1eb64bfSBiju Das  gpio:
51f1eb64bfSBiju Das    type: object
52f1eb64bfSBiju Das    additionalProperties: false
53f1eb64bfSBiju Das    properties:
54f1eb64bfSBiju Das      compatible:
55f1eb64bfSBiju Das        const: dlg,da9062-gpio
56f1eb64bfSBiju Das
57361104b0SConor Dooley  onkey:
58e2fcaf4cSBiju Das    $ref: /schemas/input/dlg,da9062-onkey.yaml
59361104b0SConor Dooley
60361104b0SConor Dooley  regulators:
61361104b0SConor Dooley    type: object
6242839dcaSRob Herring    additionalProperties: false
63361104b0SConor Dooley    patternProperties:
64f1eb64bfSBiju Das      "^(ldo([1-9]|1[01])|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck[1-4])$":
65361104b0SConor Dooley        $ref: /schemas/regulator/regulator.yaml
66361104b0SConor Dooley        unevaluatedProperties: false
67361104b0SConor Dooley
68ae3a0d70SBiju Das  rtc:
69ae3a0d70SBiju Das    type: object
70ae3a0d70SBiju Das    $ref: /schemas/rtc/rtc.yaml#
71ae3a0d70SBiju Das    unevaluatedProperties: false
72ae3a0d70SBiju Das    properties:
73ae3a0d70SBiju Das      compatible:
74f1eb64bfSBiju Das        enum:
75f1eb64bfSBiju Das          - dlg,da9062-rtc
76f1eb64bfSBiju Das          - dlg,da9063-rtc
77f1eb64bfSBiju Das
78f1eb64bfSBiju Das  thermal:
79f1eb64bfSBiju Das    $ref: /schemas/thermal/dlg,da9062-thermal.yaml
80ae3a0d70SBiju Das
8119c993f2SBiju Das  watchdog:
8219c993f2SBiju Das    $ref: /schemas/watchdog/dlg,da9062-watchdog.yaml
8319c993f2SBiju Das
84f1eb64bfSBiju DaspatternProperties:
85f1eb64bfSBiju Das  "^(.+-hog(-[0-9]+)?)$":
86f1eb64bfSBiju Das    type: object
87f1eb64bfSBiju Das
88f1eb64bfSBiju Das    required:
89f1eb64bfSBiju Das      - gpio-hog
90f1eb64bfSBiju Das
91361104b0SConor Dooleyrequired:
92361104b0SConor Dooley  - compatible
93361104b0SConor Dooley  - reg
94f1eb64bfSBiju Das
95f1eb64bfSBiju DasallOf:
96f1eb64bfSBiju Das  - if:
97f1eb64bfSBiju Das      properties:
98f1eb64bfSBiju Das        compatible:
99f1eb64bfSBiju Das          contains:
100f1eb64bfSBiju Das            enum:
101f1eb64bfSBiju Das              - dlg,da9063
102f1eb64bfSBiju Das              - dlg,da9063l
103f1eb64bfSBiju Das    then:
104f1eb64bfSBiju Das      properties:
105f1eb64bfSBiju Das        gpio-controller: false
106f1eb64bfSBiju Das        "#gpio-cells": false
107f1eb64bfSBiju Das        gpio: false
108f1eb64bfSBiju Das        regulators:
109f1eb64bfSBiju Das          patternProperties:
110f1eb64bfSBiju Das            "^buck[1-4]$": false
111f1eb64bfSBiju Das        thermal: false
112f1eb64bfSBiju Das      required:
113361104b0SConor Dooley        - interrupts
114361104b0SConor Dooley        - interrupt-controller
115d3dc362bSGeert Uytterhoeven        - '#interrupt-cells'
116361104b0SConor Dooley
117f1eb64bfSBiju Das  - if:
118f1eb64bfSBiju Das      properties:
119f1eb64bfSBiju Das        compatible:
120f1eb64bfSBiju Das          contains:
121f1eb64bfSBiju Das            enum:
122f1eb64bfSBiju Das              - dlg,da9062
123f1eb64bfSBiju Das    then:
124f1eb64bfSBiju Das      properties:
125f1eb64bfSBiju Das        regulators:
126f1eb64bfSBiju Das          patternProperties:
127f1eb64bfSBiju Das            "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged)$": false
128f1eb64bfSBiju Das      required:
129f1eb64bfSBiju Das        - gpio
130f1eb64bfSBiju Das        - onkey
131f1eb64bfSBiju Das        - rtc
132f1eb64bfSBiju Das        - thermal
133f1eb64bfSBiju Das        - watchdog
134f1eb64bfSBiju Das
135f1eb64bfSBiju Das  - if:
136f1eb64bfSBiju Das      properties:
137f1eb64bfSBiju Das        compatible:
138f1eb64bfSBiju Das          contains:
139f1eb64bfSBiju Das            enum:
140f1eb64bfSBiju Das              - dlg,da9061
141f1eb64bfSBiju Das    then:
142f1eb64bfSBiju Das      properties:
143f1eb64bfSBiju Das        gpio-controller: false
144f1eb64bfSBiju Das        "#gpio-cells": false
145f1eb64bfSBiju Das        gpio: false
146f1eb64bfSBiju Das        regulators:
147f1eb64bfSBiju Das          patternProperties:
148f1eb64bfSBiju Das            "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck4)$": false
149f1eb64bfSBiju Das        rtc: false
150f1eb64bfSBiju Das      required:
151f1eb64bfSBiju Das        - onkey
152f1eb64bfSBiju Das        - thermal
153f1eb64bfSBiju Das        - watchdog
154f1eb64bfSBiju Das
155361104b0SConor DooleyadditionalProperties: false
156361104b0SConor Dooley
157361104b0SConor Dooleyexamples:
158361104b0SConor Dooley  - |
159361104b0SConor Dooley    #include <dt-bindings/interrupt-controller/irq.h>
160361104b0SConor Dooley    i2c {
161361104b0SConor Dooley      #address-cells = <1>;
162361104b0SConor Dooley      #size-cells = <0>;
163361104b0SConor Dooley      pmic@58 {
164361104b0SConor Dooley        compatible = "dlg,da9063";
165361104b0SConor Dooley        reg = <0x58>;
166361104b0SConor Dooley        interrupt-parent = <&gpio6>;
167361104b0SConor Dooley        interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
168361104b0SConor Dooley        interrupt-controller;
169d3dc362bSGeert Uytterhoeven        #interrupt-cells = <2>;
170361104b0SConor Dooley
171361104b0SConor Dooley        rtc {
172361104b0SConor Dooley          compatible = "dlg,da9063-rtc";
173361104b0SConor Dooley        };
174361104b0SConor Dooley
175361104b0SConor Dooley        watchdog {
176361104b0SConor Dooley          compatible = "dlg,da9063-watchdog";
177361104b0SConor Dooley        };
178361104b0SConor Dooley
179361104b0SConor Dooley        onkey {
180361104b0SConor Dooley          compatible = "dlg,da9063-onkey";
181361104b0SConor Dooley          dlg,disable-key-power;
182361104b0SConor Dooley        };
183361104b0SConor Dooley
184361104b0SConor Dooley        regulators {
18542839dcaSRob Herring          bcore1 {
186361104b0SConor Dooley            regulator-name = "BCORE1";
187361104b0SConor Dooley            regulator-min-microvolt = <300000>;
188361104b0SConor Dooley            regulator-max-microvolt = <1570000>;
189361104b0SConor Dooley            regulator-min-microamp = <500000>;
190361104b0SConor Dooley            regulator-max-microamp = <2000000>;
191361104b0SConor Dooley            regulator-boot-on;
192361104b0SConor Dooley          };
1930271b61bSBenjamin Bara          ldo6 {
1940271b61bSBenjamin Bara            /* UNUSED */
1950271b61bSBenjamin Bara            regulator-name = "LDO_6";
1960271b61bSBenjamin Bara            regulator-uv-protection-microvolt = <0>;
1970271b61bSBenjamin Bara            regulator-ov-protection-microvolt = <0>;
1980271b61bSBenjamin Bara          };
19942839dcaSRob Herring          ldo11 {
200361104b0SConor Dooley            regulator-name = "LDO_11";
201361104b0SConor Dooley            regulator-min-microvolt = <900000>;
2020271b61bSBenjamin Bara            regulator-max-microvolt = <900000>;
2030271b61bSBenjamin Bara            regulator-uv-protection-microvolt = <1>;
2040271b61bSBenjamin Bara            regulator-ov-protection-microvolt = <1>;
2050271b61bSBenjamin Bara            regulator-always-on;
206361104b0SConor Dooley          };
207361104b0SConor Dooley        };
208361104b0SConor Dooley      };
209361104b0SConor Dooley    };
210f1eb64bfSBiju Das
211f1eb64bfSBiju Das  - |
212f1eb64bfSBiju Das    #include <dt-bindings/interrupt-controller/irq.h>
213f1eb64bfSBiju Das    #include <dt-bindings/regulator/dlg,da9063-regulator.h>
214f1eb64bfSBiju Das    i2c {
215f1eb64bfSBiju Das      #address-cells = <1>;
216f1eb64bfSBiju Das      #size-cells = <0>;
217f1eb64bfSBiju Das      pmic@58 {
218f1eb64bfSBiju Das        compatible = "dlg,da9062";
219f1eb64bfSBiju Das        reg = <0x58>;
220f1eb64bfSBiju Das        gpio-controller;
221f1eb64bfSBiju Das        #gpio-cells = <2>;
222f1eb64bfSBiju Das
223f1eb64bfSBiju Das        sd0-pwr-sel-hog {
224f1eb64bfSBiju Das          gpio-hog;
225f1eb64bfSBiju Das          gpios = <1 0>;
226f1eb64bfSBiju Das          input;
227f1eb64bfSBiju Das          line-name = "SD0_PWR_SEL";
228f1eb64bfSBiju Das        };
229f1eb64bfSBiju Das
230f1eb64bfSBiju Das        sd1-pwr-sel-hog {
231f1eb64bfSBiju Das          gpio-hog;
232f1eb64bfSBiju Das          gpios = <2 0>;
233f1eb64bfSBiju Das          input;
234f1eb64bfSBiju Das          line-name = "SD1_PWR_SEL";
235f1eb64bfSBiju Das        };
236f1eb64bfSBiju Das
237f1eb64bfSBiju Das        sw-et0-en-hog {
238f1eb64bfSBiju Das          gpio-hog;
239f1eb64bfSBiju Das          gpios = <3 0>;
240f1eb64bfSBiju Das          input;
241f1eb64bfSBiju Das          line-name = "SW_ET0_EN#";
242f1eb64bfSBiju Das        };
243f1eb64bfSBiju Das
244f1eb64bfSBiju Das        pmic-good-hog {
245f1eb64bfSBiju Das          gpio-hog;
246f1eb64bfSBiju Das          gpios = <4 0>;
247f1eb64bfSBiju Das          output-high;
248f1eb64bfSBiju Das          line-name = "PMIC_PGOOD";
249f1eb64bfSBiju Das        };
250f1eb64bfSBiju Das
251f1eb64bfSBiju Das        gpio {
252f1eb64bfSBiju Das          compatible = "dlg,da9062-gpio";
253f1eb64bfSBiju Das        };
254f1eb64bfSBiju Das
255f1eb64bfSBiju Das        onkey {
256f1eb64bfSBiju Das          compatible = "dlg,da9062-onkey";
257f1eb64bfSBiju Das        };
258f1eb64bfSBiju Das
259f1eb64bfSBiju Das        regulators {
260f1eb64bfSBiju Das          buck1 {
261f1eb64bfSBiju Das            regulator-name = "vdd_arm";
262f1eb64bfSBiju Das            regulator-min-microvolt = <925000>;
263f1eb64bfSBiju Das            regulator-max-microvolt = <1380000>;
264f1eb64bfSBiju Das            regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
265f1eb64bfSBiju Das            regulator-always-on;
266f1eb64bfSBiju Das          };
267f1eb64bfSBiju Das          buck2 {
268f1eb64bfSBiju Das            regulator-name = "vdd_soc";
269f1eb64bfSBiju Das            regulator-min-microvolt = <1150000>;
270f1eb64bfSBiju Das            regulator-max-microvolt = <1380000>;
271f1eb64bfSBiju Das            regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
272f1eb64bfSBiju Das            regulator-always-on;
273f1eb64bfSBiju Das          };
274f1eb64bfSBiju Das          buck3 {
275f1eb64bfSBiju Das            regulator-name = "vdd_ddr3";
276f1eb64bfSBiju Das            regulator-min-microvolt = <1500000>;
277f1eb64bfSBiju Das            regulator-max-microvolt = <1500000>;
278f1eb64bfSBiju Das            regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
279f1eb64bfSBiju Das            regulator-always-on;
280f1eb64bfSBiju Das          };
281f1eb64bfSBiju Das          buck4 {
282f1eb64bfSBiju Das            regulator-name = "vdd_eth";
283f1eb64bfSBiju Das            regulator-min-microvolt = <1200000>;
284f1eb64bfSBiju Das            regulator-max-microvolt = <1200000>;
285f1eb64bfSBiju Das            regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
286f1eb64bfSBiju Das            regulator-always-on;
287f1eb64bfSBiju Das          };
288f1eb64bfSBiju Das          ldo1 {
289f1eb64bfSBiju Das            regulator-name = "vdd_snvs";
290f1eb64bfSBiju Das            regulator-min-microvolt = <3000000>;
291f1eb64bfSBiju Das            regulator-max-microvolt = <3000000>;
292f1eb64bfSBiju Das            regulator-always-on;
293f1eb64bfSBiju Das          };
294f1eb64bfSBiju Das          ldo2 {
295f1eb64bfSBiju Das            regulator-name = "vdd_high";
296f1eb64bfSBiju Das            regulator-min-microvolt = <3000000>;
297f1eb64bfSBiju Das            regulator-max-microvolt = <3000000>;
298f1eb64bfSBiju Das            regulator-always-on;
299f1eb64bfSBiju Das          };
300f1eb64bfSBiju Das          ldo3 {
301f1eb64bfSBiju Das            regulator-name = "vdd_eth_io";
302f1eb64bfSBiju Das            regulator-min-microvolt = <2500000>;
303f1eb64bfSBiju Das            regulator-max-microvolt = <2500000>;
304f1eb64bfSBiju Das          };
305f1eb64bfSBiju Das          ldo4 {
306f1eb64bfSBiju Das            regulator-name = "vdd_emmc";
307f1eb64bfSBiju Das            regulator-min-microvolt = <1800000>;
308f1eb64bfSBiju Das            regulator-max-microvolt = <1800000>;
309f1eb64bfSBiju Das            regulator-always-on;
310f1eb64bfSBiju Das          };
311f1eb64bfSBiju Das        };
312f1eb64bfSBiju Das
313f1eb64bfSBiju Das        rtc {
314f1eb64bfSBiju Das          compatible = "dlg,da9062-rtc";
315f1eb64bfSBiju Das        };
316f1eb64bfSBiju Das
317f1eb64bfSBiju Das        thermal {
318f1eb64bfSBiju Das          compatible = "dlg,da9062-thermal";
319f1eb64bfSBiju Das        };
320f1eb64bfSBiju Das
321f1eb64bfSBiju Das        watchdog {
322f1eb64bfSBiju Das          compatible = "dlg,da9062-watchdog";
323f1eb64bfSBiju Das          dlg,use-sw-pm;
324f1eb64bfSBiju Das        };
325f1eb64bfSBiju Das      };
326f1eb64bfSBiju Das    };
327361104b0SConor Dooley...
328