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