xref: /linux/Documentation/devicetree/bindings/mfd/samsung,s2mpg10-pmic.yaml (revision f6c42489fedfa42ba79bd17c49cf81c69ff39f8a)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/samsung,s2mpg10-pmic.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung S2MPG10 Power Management IC
8
9maintainers:
10  - André Draszik <andre.draszik@linaro.org>
11
12description: |
13  This is part of the device tree bindings for the S2MPG10 Power Management IC
14  (PMIC).
15
16  The Samsung S2MPG10 is a Power Management IC for mobile applications with buck
17  converters, various LDOs, power meters, RTC, clock outputs, and additional
18  GPIO interfaces and is typically complemented by S2MPG10 PMIC in a main/sub
19  configuration as the main PMIC.
20
21properties:
22  compatible:
23    const: samsung,s2mpg10-pmic
24
25  clocks:
26    $ref: /schemas/clock/samsung,s2mps11.yaml
27    description:
28      Child node describing clock provider.
29
30  interrupts:
31    maxItems: 1
32
33  regulators:
34    type: object
35    $ref: /schemas/regulator/samsung,s2mpg10-regulator.yaml
36    description:
37      List of child nodes that specify the regulators.
38
39  system-power-controller: true
40
41  wakeup-source: true
42
43patternProperties:
44  "^vinb([1-9]|10)m-supply$":
45    description:
46      Phandle to the power supply for each buck rail of this PMIC. There is a
47      1:1 mapping of supply to rail, e.g. vinb1m-supply supplies buck1m.
48
49  "^vinl([1-9]|1[0-5])m-supply$":
50    description: |
51      Phandle to the power supply for one or multiple LDO rails of this PMIC.
52      The mapping of supply to rail(s) is as follows:
53        vinl1m - ldo13m
54        vinl2m - ldo15m
55        vinl3m - ldo1m, ldo5m, ldo7m
56        vinl4m - ldo3m, ldo8m
57        vinl5m - ldo16m
58        vinl6m - ldo17m
59        vinl7m - ldo6m, ldo11m, ldo24m, ldo28m
60        vinl8m - ldo12m
61        vinl9m - ldo2m, ldo4m
62        vinl10m - ldo9m, ldo14m, ldo18m, 19m, ldo20m, ldo25m
63        vinl11m - ldo23m, ldo31m
64        vinl12m - ldo29m
65        vinl13m - ldo30m
66        vinl14m - ldo21m
67        vinl15m - ldo10m, ldo22m, ldo26m, ldo27m
68
69required:
70  - compatible
71  - interrupts
72  - regulators
73
74additionalProperties: false
75
76examples:
77  - |
78    #include <dt-bindings/gpio/gpio.h>
79    #include <dt-bindings/interrupt-controller/irq.h>
80    #include <dt-bindings/regulator/samsung,s2mpg10-regulator.h>
81
82    pmic {
83        compatible = "samsung,s2mpg10-pmic";
84        interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
85        pinctrl-names = "default";
86        pinctrl-0 = <&pmic_int>;
87        system-power-controller;
88        wakeup-source;
89
90        vinl3m-supply = <&buck8m>;
91
92        clocks {
93            compatible = "samsung,s2mpg10-clk";
94            #clock-cells = <1>;
95            clock-output-names = "rtc32k_ap", "peri32k1", "peri32k2";
96        };
97
98        regulators {
99            buck8m {
100                regulator-name = "vdd_mif";
101                regulator-min-microvolt = <450000>;
102                regulator-max-microvolt = <1300000>;
103                regulator-ramp-delay = <6250>;
104            };
105
106            ldo1m {
107                regulator-name = "vdd_ldo1";
108                regulator-min-microvolt = <700000>;
109                regulator-max-microvolt = <1300000>;
110            };
111
112            ldo20m {
113                regulator-name = "vdd_dmics";
114                regulator-min-microvolt = <700000>;
115                regulator-max-microvolt = <1300000>;
116                regulator-always-on;
117                samsung,ext-control = <S2MPG10_EXTCTRL_LDO20M_EN2>;
118            };
119        };
120    };
121