1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/regulator/richtek,rtq2208.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Richtek RTQ2208 SubPMIC Regulator
8
9maintainers:
10  - Alina Yu <alina_yu@richtek.com>
11
12description: |
13  RTQ2208 is a highly integrated power converter that offers functional safety dual
14  multi-configurable synchronous buck converters and two LDOs.
15
16  Bucks support "regulator-allowed-modes" and "regulator-mode". The former defines the permitted
17  switching operation in normal mode; the latter defines the operation in suspend to RAM mode.
18
19  No matter the RTQ2208 is configured to normal or suspend to RAM mode, there are two switching
20  operation modes for all buck rails, automatic power saving mode (Auto mode) and forced continuous
21  conduction mode (FCCM).
22
23  The definition of modes is in the datasheet which is available in below link
24  and their meaning is::
25    0 - Auto mode for power saving, which reducing the switching frequency at light load condition
26    to maintain high frequency.
27    1 - FCCM to meet the strict voltage regulation accuracy, which keeping constant switching frequency.
28
29  Datasheet will be available soon at
30  https://www.richtek.com/assets/Products
31
32properties:
33  compatible:
34    enum:
35      - richtek,rtq2208
36
37  reg:
38    maxItems: 1
39
40  interrupts:
41    maxItems: 1
42
43  richtek,mtp-sel-high:
44    type: boolean
45    description:
46      vout register selection based on this boolean value.
47      false - Using DVS0 register setting to adjust vout
48      true - Using DVS1 register setting to adjust vout
49
50  regulators:
51    type: object
52    additionalProperties: false
53
54    patternProperties:
55      "^buck-[a-h]$":
56        type: object
57        $ref: regulator.yaml#
58        unevaluatedProperties: false
59        description:
60          description for buck-[a-h] regulator.
61
62        properties:
63          regulator-allowed-modes:
64            description:
65              two buck modes in different switching accuracy.
66              0 - Auto mode
67              1 - FCCM
68            items:
69              enum: [0, 1]
70
71      "^ldo[1-2]$":
72        type: object
73        $ref: regulator.yaml#
74        unevaluatedProperties: false
75        description:
76          regulator description for ldo[1-2].
77
78required:
79  - compatible
80  - reg
81  - regulators
82
83additionalProperties: false
84
85examples:
86  - |
87    #include <dt-bindings/interrupt-controller/irq.h>
88    i2c {
89      #address-cells = <1>;
90      #size-cells = <0>;
91
92      pmic@10 {
93        compatible = "richtek,rtq2208";
94        reg = <0x10>;
95        interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;
96        richtek,mtp-sel-high;
97
98        regulators {
99          buck-a {
100            regulator-min-microvolt = <400000>;
101            regulator-max-microvolt = <2050000>;
102            regulator-allowed-modes = <0 1>;
103            regulator-always-on;
104            regulator-state-mem {
105              regulator-on-in-suspend;
106              regulator-mode = <1>;
107            };
108          };
109          buck-b {
110            regulator-min-microvolt = <400000>;
111            regulator-max-microvolt = <2050000>;
112            regulator-allowed-modes = <0 1>;
113            regulator-always-on;
114            regulator-state-mem {
115              regulator-on-in-suspend;
116              regulator-mode = <1>;
117            };
118          };
119          buck-c {
120            regulator-min-microvolt = <400000>;
121            regulator-max-microvolt = <2050000>;
122            regulator-allowed-modes = <0 1>;
123            regulator-always-on;
124            regulator-state-mem {
125              regulator-on-in-suspend;
126              regulator-mode = <1>;
127            };
128          };
129          buck-d {
130            regulator-min-microvolt = <400000>;
131            regulator-max-microvolt = <2050000>;
132            regulator-allowed-modes = <0 1>;
133            regulator-always-on;
134            regulator-state-mem {
135              regulator-on-in-suspend;
136              regulator-mode = <1>;
137            };
138          };
139          buck-e {
140            regulator-min-microvolt = <400000>;
141            regulator-max-microvolt = <2050000>;
142            regulator-allowed-modes = <0 1>;
143            regulator-always-on;
144            regulator-state-mem {
145              regulator-on-in-suspend;
146              regulator-mode = <1>;
147            };
148          };
149          buck-f {
150            regulator-min-microvolt = <400000>;
151            regulator-max-microvolt = <2050000>;
152            regulator-allowed-modes = <0 1>;
153            regulator-always-on;
154            regulator-state-mem {
155              regulator-on-in-suspend;
156              regulator-mode = <1>;
157            };
158          };
159          buck-g {
160            regulator-min-microvolt = <400000>;
161            regulator-max-microvolt = <2050000>;
162            regulator-allowed-modes = <0 1>;
163            regulator-always-on;
164            regulator-state-mem {
165              regulator-on-in-suspend;
166              regulator-mode = <1>;
167            };
168          };
169          buck-h {
170            regulator-min-microvolt = <400000>;
171            regulator-max-microvolt = <2050000>;
172            regulator-allowed-modes = <0 1>;
173            regulator-always-on;
174            regulator-state-mem {
175              regulator-on-in-suspend;
176              regulator-mode = <1>;
177            };
178          };
179          ldo1 {
180            regulator-min-microvolt = <1200000>;
181            regulator-max-microvolt = <1200000>;
182            regulator-always-on;
183            regulator-state-mem {
184              regulator-on-in-suspend;
185            };
186          };
187          ldo2 {
188            regulator-min-microvolt = <3300000>;
189            regulator-max-microvolt = <3300000>;
190            regulator-always-on;
191            regulator-state-mem {
192              regulator-on-in-suspend;
193            };
194          };
195        };
196      };
197    };
198