162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/regulator/richtek,rtq2208.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Richtek RTQ2208 SubPMIC Regulator
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Alina Yu <alina_yu@richtek.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  RTQ2208 is a highly integrated power converter that offers functional safety dual
1462306a36Sopenharmony_ci  multi-configurable synchronous buck converters and two LDOs.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci  Bucks support "regulator-allowed-modes" and "regulator-mode". The former defines the permitted
1762306a36Sopenharmony_ci  switching operation in normal mode; the latter defines the operation in suspend to RAM mode.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  No matter the RTQ2208 is configured to normal or suspend to RAM mode, there are two switching
2062306a36Sopenharmony_ci  operation modes for all buck rails, automatic power saving mode (Auto mode) and forced continuous
2162306a36Sopenharmony_ci  conduction mode (FCCM).
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  The definition of modes is in the datasheet which is available in below link
2462306a36Sopenharmony_ci  and their meaning is::
2562306a36Sopenharmony_ci    0 - Auto mode for power saving, which reducing the switching frequency at light load condition
2662306a36Sopenharmony_ci    to maintain high frequency.
2762306a36Sopenharmony_ci    1 - FCCM to meet the strict voltage regulation accuracy, which keeping constant switching frequency.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  Datasheet will be available soon at
3062306a36Sopenharmony_ci  https://www.richtek.com/assets/Products
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciproperties:
3362306a36Sopenharmony_ci  compatible:
3462306a36Sopenharmony_ci    enum:
3562306a36Sopenharmony_ci      - richtek,rtq2208
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  reg:
3862306a36Sopenharmony_ci    maxItems: 1
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  interrupts:
4162306a36Sopenharmony_ci    maxItems: 1
4262306a36Sopenharmony_ci    
4362306a36Sopenharmony_ci  richtek,mtp-sel-high:
4462306a36Sopenharmony_ci    type: boolean
4562306a36Sopenharmony_ci    description:
4662306a36Sopenharmony_ci      vout register selection based on this boolean value.
4762306a36Sopenharmony_ci      false - Using DVS0 register setting to adjust vout
4862306a36Sopenharmony_ci      true - Using DVS1 register setting to adjust vout
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  regulators:
5162306a36Sopenharmony_ci    type: object
5262306a36Sopenharmony_ci    additionalProperties: false
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci    patternProperties:
5562306a36Sopenharmony_ci      "^buck-[a-h]$":
5662306a36Sopenharmony_ci        type: object
5762306a36Sopenharmony_ci        $ref: regulator.yaml#
5862306a36Sopenharmony_ci        unevaluatedProperties: false
5962306a36Sopenharmony_ci        description:
6062306a36Sopenharmony_ci          description for buck-[a-h] regulator.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci        properties:
6362306a36Sopenharmony_ci          regulator-allowed-modes:
6462306a36Sopenharmony_ci            description:
6562306a36Sopenharmony_ci              two buck modes in different switching accuracy.
6662306a36Sopenharmony_ci              0 - Auto mode
6762306a36Sopenharmony_ci              1 - FCCM
6862306a36Sopenharmony_ci            items:
6962306a36Sopenharmony_ci              enum: [0, 1]
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci      "^ldo[1-2]$":
7262306a36Sopenharmony_ci        type: object
7362306a36Sopenharmony_ci        $ref: regulator.yaml#
7462306a36Sopenharmony_ci        unevaluatedProperties: false
7562306a36Sopenharmony_ci        description:
7662306a36Sopenharmony_ci          regulator description for ldo[1-2].
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_cirequired:
7962306a36Sopenharmony_ci  - compatible
8062306a36Sopenharmony_ci  - reg
8162306a36Sopenharmony_ci  - regulators
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciadditionalProperties: false
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciexamples:
8662306a36Sopenharmony_ci  - |
8762306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
8862306a36Sopenharmony_ci    i2c {
8962306a36Sopenharmony_ci      #address-cells = <1>;
9062306a36Sopenharmony_ci      #size-cells = <0>;
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci      pmic@10 {
9362306a36Sopenharmony_ci        compatible = "richtek,rtq2208";
9462306a36Sopenharmony_ci        reg = <0x10>;
9562306a36Sopenharmony_ci        interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;
9662306a36Sopenharmony_ci        richtek,mtp-sel-high;
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci        regulators {
9962306a36Sopenharmony_ci          buck-a {
10062306a36Sopenharmony_ci            regulator-min-microvolt = <400000>;
10162306a36Sopenharmony_ci            regulator-max-microvolt = <2050000>;
10262306a36Sopenharmony_ci            regulator-allowed-modes = <0 1>;
10362306a36Sopenharmony_ci            regulator-always-on;
10462306a36Sopenharmony_ci            regulator-state-mem {
10562306a36Sopenharmony_ci              regulator-on-in-suspend;
10662306a36Sopenharmony_ci              regulator-mode = <1>;
10762306a36Sopenharmony_ci            };
10862306a36Sopenharmony_ci          };
10962306a36Sopenharmony_ci          buck-b {
11062306a36Sopenharmony_ci            regulator-min-microvolt = <400000>;
11162306a36Sopenharmony_ci            regulator-max-microvolt = <2050000>;
11262306a36Sopenharmony_ci            regulator-allowed-modes = <0 1>;
11362306a36Sopenharmony_ci            regulator-always-on;
11462306a36Sopenharmony_ci            regulator-state-mem {
11562306a36Sopenharmony_ci              regulator-on-in-suspend;
11662306a36Sopenharmony_ci              regulator-mode = <1>;
11762306a36Sopenharmony_ci            };
11862306a36Sopenharmony_ci          };
11962306a36Sopenharmony_ci          buck-c {
12062306a36Sopenharmony_ci            regulator-min-microvolt = <400000>;
12162306a36Sopenharmony_ci            regulator-max-microvolt = <2050000>;
12262306a36Sopenharmony_ci            regulator-allowed-modes = <0 1>;
12362306a36Sopenharmony_ci            regulator-always-on;
12462306a36Sopenharmony_ci            regulator-state-mem {
12562306a36Sopenharmony_ci              regulator-on-in-suspend;
12662306a36Sopenharmony_ci              regulator-mode = <1>;
12762306a36Sopenharmony_ci            };
12862306a36Sopenharmony_ci          };
12962306a36Sopenharmony_ci          buck-d {
13062306a36Sopenharmony_ci            regulator-min-microvolt = <400000>;
13162306a36Sopenharmony_ci            regulator-max-microvolt = <2050000>;
13262306a36Sopenharmony_ci            regulator-allowed-modes = <0 1>;
13362306a36Sopenharmony_ci            regulator-always-on;
13462306a36Sopenharmony_ci            regulator-state-mem {
13562306a36Sopenharmony_ci              regulator-on-in-suspend;
13662306a36Sopenharmony_ci              regulator-mode = <1>;
13762306a36Sopenharmony_ci            };
13862306a36Sopenharmony_ci          };
13962306a36Sopenharmony_ci          buck-e {
14062306a36Sopenharmony_ci            regulator-min-microvolt = <400000>;
14162306a36Sopenharmony_ci            regulator-max-microvolt = <2050000>;
14262306a36Sopenharmony_ci            regulator-allowed-modes = <0 1>;
14362306a36Sopenharmony_ci            regulator-always-on;
14462306a36Sopenharmony_ci            regulator-state-mem {
14562306a36Sopenharmony_ci              regulator-on-in-suspend;
14662306a36Sopenharmony_ci              regulator-mode = <1>;
14762306a36Sopenharmony_ci            };
14862306a36Sopenharmony_ci          };
14962306a36Sopenharmony_ci          buck-f {
15062306a36Sopenharmony_ci            regulator-min-microvolt = <400000>;
15162306a36Sopenharmony_ci            regulator-max-microvolt = <2050000>;
15262306a36Sopenharmony_ci            regulator-allowed-modes = <0 1>;
15362306a36Sopenharmony_ci            regulator-always-on;
15462306a36Sopenharmony_ci            regulator-state-mem {
15562306a36Sopenharmony_ci              regulator-on-in-suspend;
15662306a36Sopenharmony_ci              regulator-mode = <1>;
15762306a36Sopenharmony_ci            };
15862306a36Sopenharmony_ci          };
15962306a36Sopenharmony_ci          buck-g {
16062306a36Sopenharmony_ci            regulator-min-microvolt = <400000>;
16162306a36Sopenharmony_ci            regulator-max-microvolt = <2050000>;
16262306a36Sopenharmony_ci            regulator-allowed-modes = <0 1>;
16362306a36Sopenharmony_ci            regulator-always-on;
16462306a36Sopenharmony_ci            regulator-state-mem {
16562306a36Sopenharmony_ci              regulator-on-in-suspend;
16662306a36Sopenharmony_ci              regulator-mode = <1>;
16762306a36Sopenharmony_ci            };
16862306a36Sopenharmony_ci          };
16962306a36Sopenharmony_ci          buck-h {
17062306a36Sopenharmony_ci            regulator-min-microvolt = <400000>;
17162306a36Sopenharmony_ci            regulator-max-microvolt = <2050000>;
17262306a36Sopenharmony_ci            regulator-allowed-modes = <0 1>;
17362306a36Sopenharmony_ci            regulator-always-on;
17462306a36Sopenharmony_ci            regulator-state-mem {
17562306a36Sopenharmony_ci              regulator-on-in-suspend;
17662306a36Sopenharmony_ci              regulator-mode = <1>;
17762306a36Sopenharmony_ci            };
17862306a36Sopenharmony_ci          };
17962306a36Sopenharmony_ci          ldo1 {
18062306a36Sopenharmony_ci            regulator-min-microvolt = <1200000>;
18162306a36Sopenharmony_ci            regulator-max-microvolt = <1200000>;
18262306a36Sopenharmony_ci            regulator-always-on;
18362306a36Sopenharmony_ci            regulator-state-mem {
18462306a36Sopenharmony_ci              regulator-on-in-suspend;
18562306a36Sopenharmony_ci            };
18662306a36Sopenharmony_ci          };
18762306a36Sopenharmony_ci          ldo2 {
18862306a36Sopenharmony_ci            regulator-min-microvolt = <3300000>;
18962306a36Sopenharmony_ci            regulator-max-microvolt = <3300000>;
19062306a36Sopenharmony_ci            regulator-always-on;
19162306a36Sopenharmony_ci            regulator-state-mem {
19262306a36Sopenharmony_ci              regulator-on-in-suspend;
19362306a36Sopenharmony_ci            };
19462306a36Sopenharmony_ci          };
19562306a36Sopenharmony_ci        };
19662306a36Sopenharmony_ci      };
19762306a36Sopenharmony_ci    };
198