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