GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / regulator / richtek,rtq2208.yaml
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
7 title: Richtek RTQ2208 SubPMIC Regulator
8
9 maintainers:
10   - Alina Yu <alina_yu@richtek.com>
11
12 description: |
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
32 properties:
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
78 required:
79   - compatible
80   - reg
81   - regulators
82
83 additionalProperties: false
84
85 examples:
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     };