xref: /linux/Documentation/devicetree/bindings/regulator/samsung,s2mpg11-regulator.yaml (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/regulator/samsung,s2mpg11-regulator.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung S2MPG11 Power Management IC regulators
8
9maintainers:
10  - André Draszik <andre.draszik@linaro.org>
11
12description: |
13  This is part of the device tree bindings for the S2MG11 Power Management IC
14  (PMIC).
15
16  The S2MPG11 PMIC provides 12 buck, 1 buck-boost, and 15 LDO regulators.
17
18  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
19  additional information and example.
20
21properties:
22  buckboost:
23    type: object
24    $ref: regulator.yaml#
25    unevaluatedProperties: false
26    description:
27      Properties for the buck-boost regulator.
28
29    properties:
30      regulator-ramp-delay: false
31
32patternProperties:
33  # 12 bucks
34  "^buck(([1-9]|10)s|[ad])$":
35    type: object
36    $ref: regulator.yaml#
37    unevaluatedProperties: false
38    description:
39      Properties for a single buck regulator.
40
41    allOf:
42      - $ref: "#/$defs/s2mpg11-ext-control"
43
44    properties:
45      regulator-ramp-delay:
46        enum: [6250, 12500, 25000]
47        default: 6250
48
49  # 11 standard LDOs
50  "^ldo([3-79]|1[01245])s$":
51    type: object
52    $ref: regulator.yaml#
53    unevaluatedProperties: false
54    description:
55      Properties for a single LDO regulator.
56
57    properties:
58      regulator-ramp-delay: false
59
60  # 2 LDOs with possible external control
61  "^ldo(8|13)s$":
62    type: object
63    $ref: regulator.yaml#
64    unevaluatedProperties: false
65    description:
66      Properties for single LDO regulator.
67
68    allOf:
69      - $ref: "#/$defs/s2mpg11-ext-control"
70
71    properties:
72      regulator-ramp-delay: false
73
74  # 2 LDOs with ramp support and possible external control
75  "^ldo[12]s$":
76    type: object
77    $ref: regulator.yaml#
78    unevaluatedProperties: false
79    description:
80      Properties for a single LDO regulator.
81
82    allOf:
83      - $ref: "#/$defs/s2mpg11-ext-control"
84
85    properties:
86      regulator-ramp-delay:
87        enum: [6250, 12500]
88        default: 6250
89
90$defs:
91  s2mpg11-ext-control:
92    properties:
93      samsung,ext-control:
94        description: |
95          These rails can be controlled via one of several possible external
96          (hardware) signals. If so, this property configures the signal the PMIC
97          should monitor. The following values generally corresponding to the
98          respective on-chip pin are valid:
99            - 0 # S2MPG11_EXTCTRL_PWREN - PWREN pin
100            - 1 # S2MPG11_EXTCTRL_PWREN_MIF - PWREN_MIF pin
101            - 2 # S2MPG11_EXTCTRL_AP_ACTIVE_N - ~AP_ACTIVE_N pin
102            - 3 # S2MPG11_EXTCTRL_G3D_EN - G3D_EN pin
103            - 4 # S2MPG11_EXTCTRL_G3D_EN2 - G3D_EN & ~AP_ACTIVE_N pins
104            - 5 # S2MPG11_EXTCTRL_AOC_VDD - AOC_VDD pin
105            - 6 # S2MPG11_EXTCTRL_AOC_RET - AOC_RET pin
106            - 7 # S2MPG11_EXTCTRL_UFS_EN - UFS_EN pin
107            - 8 # S2MPG11_EXTCTRL_LDO13S_EN - VLDO13S_EN pin
108
109        $ref: /schemas/types.yaml#/definitions/uint32
110        minimum: 0
111        maximum: 8
112
113      enable-gpios:
114        description:
115          For rails where external control is done via a GPIO, this optional
116          property describes the GPIO line used.
117
118    dependentRequired:
119      enable-gpios: [ "samsung,ext-control" ]
120
121allOf:
122  # Bucks 4, 6, 7 and 10 can not be controlled externally - above definition
123  # allows it and we deny it here. This approach reduces repetition.
124  - if:
125      anyOf:
126        - required: [buck4s]
127        - required: [buck6s]
128        - required: [buck7s]
129        - required: [buck10s]
130    then:
131      patternProperties:
132        "^buck([467]|10)s$":
133          properties:
134            samsung,ext-control: false
135
136additionalProperties: false
137