xref: /linux/Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1e84946ddSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only
2e84946ddSKrzysztof Kozlowski%YAML 1.2
3e84946ddSKrzysztof Kozlowski---
4e84946ddSKrzysztof Kozlowski$id: http://devicetree.org/schemas/mfd/samsung,s2mps11.yaml#
5e84946ddSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6e84946ddSKrzysztof Kozlowski
7e84946ddSKrzysztof Kozlowskititle: Samsung S2MPS11/13/14/15 and S2MPU02 Power Management IC
8e84946ddSKrzysztof Kozlowski
9e84946ddSKrzysztof Kozlowskimaintainers:
108a1e6bb3SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzk@kernel.org>
11e84946ddSKrzysztof Kozlowski
12e84946ddSKrzysztof Kozlowskidescription: |
13e84946ddSKrzysztof Kozlowski  This is a part of device tree bindings for S2M and S5M family of Power
14e84946ddSKrzysztof Kozlowski  Management IC (PMIC).
15e84946ddSKrzysztof Kozlowski
16e84946ddSKrzysztof Kozlowski  The Samsung S2MPS11/13/14/15 and S2MPU02 is a family of Power Management IC
17e84946ddSKrzysztof Kozlowski  which include voltage and current regulators, RTC, clock outputs and other
18e84946ddSKrzysztof Kozlowski  sub-blocks.
19e84946ddSKrzysztof Kozlowski
20e84946ddSKrzysztof Kozlowskiproperties:
21e84946ddSKrzysztof Kozlowski  compatible:
22e84946ddSKrzysztof Kozlowski    enum:
23e84946ddSKrzysztof Kozlowski      - samsung,s2mps11-pmic
24e84946ddSKrzysztof Kozlowski      - samsung,s2mps13-pmic
25e84946ddSKrzysztof Kozlowski      - samsung,s2mps14-pmic
26e84946ddSKrzysztof Kozlowski      - samsung,s2mps15-pmic
27e84946ddSKrzysztof Kozlowski      - samsung,s2mpu02-pmic
28e84946ddSKrzysztof Kozlowski
29e84946ddSKrzysztof Kozlowski  clocks:
301482489bSKrzysztof Kozlowski    $ref: /schemas/clock/samsung,s2mps11.yaml
31e84946ddSKrzysztof Kozlowski    description:
32e84946ddSKrzysztof Kozlowski      Child node describing clock provider.
33e84946ddSKrzysztof Kozlowski
34e84946ddSKrzysztof Kozlowski  interrupts:
35e84946ddSKrzysztof Kozlowski    maxItems: 1
36e84946ddSKrzysztof Kozlowski
37e84946ddSKrzysztof Kozlowski  reg:
38e84946ddSKrzysztof Kozlowski    maxItems: 1
39e84946ddSKrzysztof Kozlowski
40e84946ddSKrzysztof Kozlowski  regulators:
41e84946ddSKrzysztof Kozlowski    type: object
42e84946ddSKrzysztof Kozlowski    description:
43e84946ddSKrzysztof Kozlowski      List of child nodes that specify the regulators.
44e84946ddSKrzysztof Kozlowski
45e84946ddSKrzysztof Kozlowski  samsung,s2mps11-acokb-ground:
46e84946ddSKrzysztof Kozlowski    description: |
47e84946ddSKrzysztof Kozlowski      Indicates that ACOKB pin of S2MPS11 PMIC is connected to the ground so
48e84946ddSKrzysztof Kozlowski      the PMIC must manually set PWRHOLD bit in CTRL1 register to turn off the
49e84946ddSKrzysztof Kozlowski      power. Usually the ACOKB is pulled up to VBATT so when PWRHOLD pin goes
50e84946ddSKrzysztof Kozlowski      low, the rising ACOKB will trigger power off.
51e84946ddSKrzysztof Kozlowski    type: boolean
52e84946ddSKrzysztof Kozlowski
53e84946ddSKrzysztof Kozlowski  samsung,s2mps11-wrstbi-ground:
54e84946ddSKrzysztof Kozlowski    description: |
55e84946ddSKrzysztof Kozlowski      Indicates that WRSTBI pin of PMIC is pulled down. When the system is
56*a7fcc232SYu-Chun Lin      suspended it will always go down thus triggering unwanted buck warm
57e84946ddSKrzysztof Kozlowski      reset (setting buck voltages to default values).
58e84946ddSKrzysztof Kozlowski    type: boolean
59e84946ddSKrzysztof Kozlowski
60e84946ddSKrzysztof Kozlowski  wakeup-source: true
61e84946ddSKrzysztof Kozlowski
62e84946ddSKrzysztof Kozlowskirequired:
63e84946ddSKrzysztof Kozlowski  - compatible
64e84946ddSKrzysztof Kozlowski  - reg
65e84946ddSKrzysztof Kozlowski  - regulators
66e84946ddSKrzysztof Kozlowski
67e84946ddSKrzysztof KozlowskiadditionalProperties: false
68e84946ddSKrzysztof Kozlowski
69e84946ddSKrzysztof KozlowskiallOf:
70e84946ddSKrzysztof Kozlowski  - if:
71e84946ddSKrzysztof Kozlowski      properties:
72e84946ddSKrzysztof Kozlowski        compatible:
73e84946ddSKrzysztof Kozlowski          contains:
74e84946ddSKrzysztof Kozlowski            const: samsung,s2mps11-pmic
75e84946ddSKrzysztof Kozlowski    then:
76e84946ddSKrzysztof Kozlowski      properties:
77e84946ddSKrzysztof Kozlowski        regulators:
781482489bSKrzysztof Kozlowski          $ref: /schemas/regulator/samsung,s2mps11.yaml
79e84946ddSKrzysztof Kozlowski        samsung,s2mps11-wrstbi-ground: false
80e84946ddSKrzysztof Kozlowski
81e84946ddSKrzysztof Kozlowski  - if:
82e84946ddSKrzysztof Kozlowski      properties:
83e84946ddSKrzysztof Kozlowski        compatible:
84e84946ddSKrzysztof Kozlowski          contains:
85e84946ddSKrzysztof Kozlowski            const: samsung,s2mps13-pmic
86e84946ddSKrzysztof Kozlowski    then:
87e84946ddSKrzysztof Kozlowski      properties:
88e84946ddSKrzysztof Kozlowski        regulators:
891482489bSKrzysztof Kozlowski          $ref: /schemas/regulator/samsung,s2mps13.yaml
90e84946ddSKrzysztof Kozlowski        samsung,s2mps11-acokb-ground: false
91e84946ddSKrzysztof Kozlowski
92e84946ddSKrzysztof Kozlowski  - if:
93e84946ddSKrzysztof Kozlowski      properties:
94e84946ddSKrzysztof Kozlowski        compatible:
95e84946ddSKrzysztof Kozlowski          contains:
96e84946ddSKrzysztof Kozlowski            const: samsung,s2mps14-pmic
97e84946ddSKrzysztof Kozlowski    then:
98e84946ddSKrzysztof Kozlowski      properties:
99e84946ddSKrzysztof Kozlowski        regulators:
1001482489bSKrzysztof Kozlowski          $ref: /schemas/regulator/samsung,s2mps14.yaml
101e84946ddSKrzysztof Kozlowski        samsung,s2mps11-acokb-ground: false
102e84946ddSKrzysztof Kozlowski        samsung,s2mps11-wrstbi-ground: false
103e84946ddSKrzysztof Kozlowski
104e84946ddSKrzysztof Kozlowski  - if:
105e84946ddSKrzysztof Kozlowski      properties:
106e84946ddSKrzysztof Kozlowski        compatible:
107e84946ddSKrzysztof Kozlowski          contains:
108e84946ddSKrzysztof Kozlowski            const: samsung,s2mps15-pmic
109e84946ddSKrzysztof Kozlowski    then:
110e84946ddSKrzysztof Kozlowski      properties:
111e84946ddSKrzysztof Kozlowski        regulators:
1121482489bSKrzysztof Kozlowski          $ref: /schemas/regulator/samsung,s2mps15.yaml
113e84946ddSKrzysztof Kozlowski        samsung,s2mps11-acokb-ground: false
114e84946ddSKrzysztof Kozlowski        samsung,s2mps11-wrstbi-ground: false
115e84946ddSKrzysztof Kozlowski
116e84946ddSKrzysztof Kozlowski  - if:
117e84946ddSKrzysztof Kozlowski      properties:
118e84946ddSKrzysztof Kozlowski        compatible:
119e84946ddSKrzysztof Kozlowski          contains:
120e84946ddSKrzysztof Kozlowski            const: samsung,s2mpu02-pmic
121e84946ddSKrzysztof Kozlowski    then:
122e84946ddSKrzysztof Kozlowski      properties:
123e84946ddSKrzysztof Kozlowski        regulators:
1241482489bSKrzysztof Kozlowski          $ref: /schemas/regulator/samsung,s2mpu02.yaml
125e84946ddSKrzysztof Kozlowski        samsung,s2mps11-acokb-ground: false
126e84946ddSKrzysztof Kozlowski        samsung,s2mps11-wrstbi-ground: false
127e84946ddSKrzysztof Kozlowski
128e84946ddSKrzysztof Kozlowskiexamples:
129e84946ddSKrzysztof Kozlowski  - |
130e84946ddSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
131e84946ddSKrzysztof Kozlowski
132e84946ddSKrzysztof Kozlowski    i2c {
133e84946ddSKrzysztof Kozlowski        #address-cells = <1>;
134e84946ddSKrzysztof Kozlowski        #size-cells = <0>;
135e84946ddSKrzysztof Kozlowski
136e84946ddSKrzysztof Kozlowski        pmic@66 {
137e84946ddSKrzysztof Kozlowski            compatible = "samsung,s2mps11-pmic";
138e84946ddSKrzysztof Kozlowski            reg = <0x66>;
139e84946ddSKrzysztof Kozlowski
140e84946ddSKrzysztof Kozlowski            interrupt-parent = <&gpx0>;
141e84946ddSKrzysztof Kozlowski            interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
142e84946ddSKrzysztof Kozlowski            pinctrl-names = "default";
143e84946ddSKrzysztof Kozlowski            pinctrl-0 = <&s2mps11_irq>;
144e84946ddSKrzysztof Kozlowski            samsung,s2mps11-acokb-ground;
145e84946ddSKrzysztof Kozlowski            wakeup-source;
146e84946ddSKrzysztof Kozlowski
147e84946ddSKrzysztof Kozlowski            clocks {
148e84946ddSKrzysztof Kozlowski                compatible = "samsung,s2mps11-clk";
149e84946ddSKrzysztof Kozlowski                #clock-cells = <1>;
150e84946ddSKrzysztof Kozlowski                clock-output-names = "s2mps11_ap", "s2mps11_cp", "s2mps11_bt";
151e84946ddSKrzysztof Kozlowski            };
152e84946ddSKrzysztof Kozlowski
153e84946ddSKrzysztof Kozlowski            regulators {
154e84946ddSKrzysztof Kozlowski                LDO1 {
155e84946ddSKrzysztof Kozlowski                    regulator-name = "vdd_ldo1";
156e84946ddSKrzysztof Kozlowski                    regulator-min-microvolt = <1000000>;
157e84946ddSKrzysztof Kozlowski                    regulator-max-microvolt = <1000000>;
158e84946ddSKrzysztof Kozlowski                    regulator-always-on;
159e84946ddSKrzysztof Kozlowski                };
160e84946ddSKrzysztof Kozlowski
161e84946ddSKrzysztof Kozlowski                LDO4 {
162e84946ddSKrzysztof Kozlowski                    regulator-name = "vdd_adc";
163e84946ddSKrzysztof Kozlowski                    regulator-min-microvolt = <1800000>;
164e84946ddSKrzysztof Kozlowski                    regulator-max-microvolt = <1800000>;
165e84946ddSKrzysztof Kozlowski
166e84946ddSKrzysztof Kozlowski                    regulator-state-mem {
167e84946ddSKrzysztof Kozlowski                        regulator-off-in-suspend;
168e84946ddSKrzysztof Kozlowski                    };
169e84946ddSKrzysztof Kozlowski                };
170e84946ddSKrzysztof Kozlowski
171e84946ddSKrzysztof Kozlowski                // ....
172e84946ddSKrzysztof Kozlowski
173e84946ddSKrzysztof Kozlowski                BUCK1 {
174e84946ddSKrzysztof Kozlowski                    regulator-name = "vdd_mif";
175e84946ddSKrzysztof Kozlowski                    regulator-min-microvolt = <800000>;
176e84946ddSKrzysztof Kozlowski                    regulator-max-microvolt = <1300000>;
177e84946ddSKrzysztof Kozlowski                    regulator-always-on;
178e84946ddSKrzysztof Kozlowski                    regulator-boot-on;
179e84946ddSKrzysztof Kozlowski
180e84946ddSKrzysztof Kozlowski                    regulator-state-mem {
181e84946ddSKrzysztof Kozlowski                        regulator-off-in-suspend;
182e84946ddSKrzysztof Kozlowski                    };
183e84946ddSKrzysztof Kozlowski                };
184e84946ddSKrzysztof Kozlowski
185e84946ddSKrzysztof Kozlowski                BUCK2 {
186e84946ddSKrzysztof Kozlowski                    regulator-name = "vdd_arm";
187e84946ddSKrzysztof Kozlowski                    regulator-min-microvolt = <800000>;
188e84946ddSKrzysztof Kozlowski                    regulator-max-microvolt = <1500000>;
189e84946ddSKrzysztof Kozlowski                    regulator-always-on;
190e84946ddSKrzysztof Kozlowski                    regulator-boot-on;
191e84946ddSKrzysztof Kozlowski                    regulator-coupled-with = <&buck3_reg>;
192e84946ddSKrzysztof Kozlowski                    regulator-coupled-max-spread = <300000>;
193e84946ddSKrzysztof Kozlowski
194e84946ddSKrzysztof Kozlowski                    regulator-state-mem {
195e84946ddSKrzysztof Kozlowski                        regulator-off-in-suspend;
196e84946ddSKrzysztof Kozlowski                    };
197e84946ddSKrzysztof Kozlowski                };
198e84946ddSKrzysztof Kozlowski
199e84946ddSKrzysztof Kozlowski                BUCK3 {
200e84946ddSKrzysztof Kozlowski                    regulator-name = "vdd_int";
201e84946ddSKrzysztof Kozlowski                    regulator-min-microvolt = <800000>;
202e84946ddSKrzysztof Kozlowski                    regulator-max-microvolt = <1400000>;
203e84946ddSKrzysztof Kozlowski                    regulator-always-on;
204e84946ddSKrzysztof Kozlowski                    regulator-boot-on;
205e84946ddSKrzysztof Kozlowski                    regulator-coupled-with = <&buck2_reg>;
206e84946ddSKrzysztof Kozlowski                    regulator-coupled-max-spread = <300000>;
207e84946ddSKrzysztof Kozlowski
208e84946ddSKrzysztof Kozlowski                    regulator-state-mem {
209e84946ddSKrzysztof Kozlowski                        regulator-off-in-suspend;
210e84946ddSKrzysztof Kozlowski                    };
211e84946ddSKrzysztof Kozlowski                };
212e84946ddSKrzysztof Kozlowski
213e84946ddSKrzysztof Kozlowski                // ...
214e84946ddSKrzysztof Kozlowski            };
215e84946ddSKrzysztof Kozlowski        };
216e84946ddSKrzysztof Kozlowski    };
217e84946ddSKrzysztof Kozlowski
218e84946ddSKrzysztof Kozlowski  - |
219e84946ddSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
220e84946ddSKrzysztof Kozlowski
221e84946ddSKrzysztof Kozlowski    i2c {
222e84946ddSKrzysztof Kozlowski        #address-cells = <1>;
223e84946ddSKrzysztof Kozlowski        #size-cells = <0>;
224e84946ddSKrzysztof Kozlowski
225e84946ddSKrzysztof Kozlowski        pmic@66 {
226e84946ddSKrzysztof Kozlowski            compatible = "samsung,s2mps14-pmic";
227e84946ddSKrzysztof Kozlowski            reg = <0x66>;
228e84946ddSKrzysztof Kozlowski
229e84946ddSKrzysztof Kozlowski            interrupt-parent = <&gpx0>;
230e84946ddSKrzysztof Kozlowski            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
231e84946ddSKrzysztof Kozlowski            wakeup-source;
232e84946ddSKrzysztof Kozlowski
233e84946ddSKrzysztof Kozlowski            clocks {
234e84946ddSKrzysztof Kozlowski                compatible = "samsung,s2mps14-clk";
235e84946ddSKrzysztof Kozlowski                #clock-cells = <1>;
236e84946ddSKrzysztof Kozlowski                clock-output-names = "s2mps14_ap", "unused", "s2mps14_bt";
237e84946ddSKrzysztof Kozlowski            };
238e84946ddSKrzysztof Kozlowski
239e84946ddSKrzysztof Kozlowski            regulators {
240e84946ddSKrzysztof Kozlowski                LDO1 {
241e84946ddSKrzysztof Kozlowski                    regulator-name = "VLDO1_1.0V";
242e84946ddSKrzysztof Kozlowski                    regulator-min-microvolt = <1000000>;
243e84946ddSKrzysztof Kozlowski                    regulator-max-microvolt = <1000000>;
244e84946ddSKrzysztof Kozlowski                    regulator-always-on;
245e84946ddSKrzysztof Kozlowski
246e84946ddSKrzysztof Kozlowski                    regulator-state-mem {
247e84946ddSKrzysztof Kozlowski                        regulator-on-in-suspend;
248e84946ddSKrzysztof Kozlowski                    };
249e84946ddSKrzysztof Kozlowski                };
250e84946ddSKrzysztof Kozlowski
251e84946ddSKrzysztof Kozlowski                // ...
252e84946ddSKrzysztof Kozlowski
253e84946ddSKrzysztof Kozlowski                BUCK1 {
254e84946ddSKrzysztof Kozlowski                    regulator-name = "VBUCK1_1.0V";
255e84946ddSKrzysztof Kozlowski                    regulator-min-microvolt = <800000>;
256e84946ddSKrzysztof Kozlowski                    regulator-max-microvolt = <1000000>;
257e84946ddSKrzysztof Kozlowski                    regulator-always-on;
258e84946ddSKrzysztof Kozlowski
259e84946ddSKrzysztof Kozlowski                    regulator-state-mem {
260e84946ddSKrzysztof Kozlowski                        regulator-off-in-suspend;
261e84946ddSKrzysztof Kozlowski                    };
262e84946ddSKrzysztof Kozlowski                };
263e84946ddSKrzysztof Kozlowski
264e84946ddSKrzysztof Kozlowski                // ...
265e84946ddSKrzysztof Kozlowski            };
266e84946ddSKrzysztof Kozlowski        };
267e84946ddSKrzysztof Kozlowski    };
268