1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/richtek,rt5120.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Richtek RT5120 PMIC
8
9maintainers:
10  - ChiYuan Huang <cy_huang@richtek.com>
11
12description: |
13  The RT5120 provides four high-efficiency buck converters and one LDO voltage
14  regulator. The device is targeted at providingthe processor voltage, memory,
15  I/O, and peripheral rails in home entertainment devices. The I2C interface is
16  used for dynamic voltage scaling of the processor voltage, power rails on/off
17  sequence control, operation mode selection.
18
19properties:
20  compatible:
21    enum:
22      - richtek,rt5120
23
24  reg:
25    maxItems: 1
26
27  interrupts:
28    maxItems: 1
29
30  interrupt-controller: true
31
32  "#interrupt-cells":
33    const: 1
34
35  wakeup-source: true
36
37  richtek,enable-undervolt-hiccup:
38    type: boolean
39    description: |
40      If used, under voltage protection trigger hiccup behavior, else latchup as
41      default
42
43  richtek,enable-overvolt-hiccup:
44    type: boolean
45    description:
46      Like as 'enable-uv-hiccup', it configures over voltage protection to
47      hiccup, else latchup as default
48
49  vin1-supply:
50    description: phandle for buck1 input power source
51
52  vin2-supply:
53    description: phandle for buck2 input power source
54
55  vin3-supply:
56    description: phandle for buck3 input power source
57
58  vin4-supply:
59    description: phandle for buck4 input power source
60
61  vinldo-supply:
62    description: phandle for ldo input power source
63
64  regulators:
65    type: object
66
67    patternProperties:
68      "^buck[1-4]$":
69        type: object
70        $ref: /schemas/regulator/regulator.yaml#
71        unevaluatedProperties: false
72
73        properties:
74          regulator-allowed-modes:
75            description: |
76              Used to specify the allowed buck converter operating mode
77              mode mapping:
78                0: auto mode
79                1: force pwm mode
80            items:
81              enum: [0, 1]
82
83      "^(ldo|exten)$":
84        type: object
85        $ref: /schemas/regulator/regulator.yaml#
86        unevaluatedProperties: false
87
88    additionalProperties: false
89
90  powerkey:
91    type: object
92    description:
93      PON key that connected to RT5120 PMIC.
94
95    properties:
96      compatible:
97        enum:
98          - richtek,rt5120-pwrkey
99
100    required:
101      - compatible
102
103    additionalProperties: false
104
105required:
106  - compatible
107  - reg
108  - interrupts
109  - '#interrupt-cells'
110  - interrupt-controller
111  - regulators
112  - powerkey
113
114additionalProperties: false
115
116examples:
117  - |
118    #include <dt-bindings/interrupt-controller/irq.h>
119
120    i2c {
121      #address-cells = <1>;
122      #size-cells = <0>;
123
124      pmic@62 {
125        compatible = "richtek,rt5120";
126        reg = <0x62>;
127        interrupts-extended = <&gpio_intc 32 IRQ_TYPE_LEVEL_LOW>;
128        interrupt-controller;
129        #interrupt-cells = <1>;
130        wakeup-source;
131
132        regulators {
133          buck1 {
134            regulator-name = "rt5120-buck1";
135            regulator-min-microvolt = <600000>;
136            regulator-max-microvolt = <1393750>;
137            regulator-allowed-modes = <0 1>;
138            regulator-boot-on;
139          };
140          buck2 {
141            regulator-name = "rt5120-buck2";
142            regulator-min-microvolt = <1100000>;
143            regulator-max-microvolt = <1100000>;
144            regulator-allowed-modes = <0 1>;
145            regulator-always-on;
146          };
147          buck3 {
148            regulator-name = "rt5120-buck3";
149            regulator-min-microvolt = <1800000>;
150            regulator-max-microvolt = <1800000>;
151            regulator-allowed-modes = <0 1>;
152            regulator-always-on;
153          };
154          buck4 {
155            regulator-name = "rt5120-buck4";
156            regulator-min-microvolt = <3300000>;
157            regulator-max-microvolt = <3300000>;
158            regulator-allowed-modes = <0 1>;
159            regulator-always-on;
160          };
161          ldo {
162            regulator-name = "rt5120-ldo";
163            regulator-min-microvolt = <1800000>;
164            regulator-max-microvolt = <1800000>;
165            regulator-always-on;
166          };
167          exten {
168            regulator-name = "rt5120-exten";
169            regulator-min-microvolt = <3000000>;
170            regulator-max-microvolt = <3000000>;
171            regulator-always-on;
172          };
173        };
174        powerkey {
175          compatible = "richtek,rt5120-pwrkey";
176        };
177      };
178    };
179