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