xref: /linux/Documentation/devicetree/bindings/regulator/samsung,s2mpg10-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,s2mpg10-regulator.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung S2MPG10 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 S2MG10 Power Management IC
14  (PMIC).
15
16  The S2MPG10 PMIC provides 10 buck and 31 LDO regulators.
17
18  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
19  additional information and example.
20
21properties:
22  # 1 LDO with possible (but limited) external control
23  ldo20m:
24    type: object
25    $ref: regulator.yaml#
26    unevaluatedProperties: false
27    description:
28      Properties for a single LDO regulator.
29
30    allOf:
31      - $ref: "#/$defs/s2mpg10-ext-control"
32
33    properties:
34      regulator-ramp-delay: false
35
36      samsung,ext-control:
37        minimum: 11
38
39patternProperties:
40  # 10 bucks
41  "^buck([1-9]|10)m$":
42    type: object
43    $ref: regulator.yaml#
44    unevaluatedProperties: false
45    description:
46      Properties for a single buck regulator.
47
48    allOf:
49      - $ref: "#/$defs/s2mpg10-ext-control"
50
51    properties:
52      regulator-ramp-delay:
53        enum: [6250, 12500, 25000]
54        default: 6250
55
56      samsung,ext-control:
57        maximum: 10
58
59  # 12 standard LDOs
60  "^ldo(2[1-9]?|3[0-1])m$":
61    type: object
62    $ref: regulator.yaml#
63    unevaluatedProperties: false
64    description:
65      Properties for single LDO regulator.
66
67    properties:
68      regulator-ramp-delay: false
69
70  # 12 LDOs with possible external control
71  "^ldo([3-689]|1[046-9])m$":
72    type: object
73    $ref: regulator.yaml#
74    unevaluatedProperties: false
75    description:
76      Properties for a single LDO regulator.
77
78    allOf:
79      - $ref: "#/$defs/s2mpg10-ext-control"
80
81    properties:
82      regulator-ramp-delay: false
83
84      samsung,ext-control:
85        maximum: 10
86
87  # 6 LDOs with ramp support, 5 out of those with possible external control
88  "^ldo(1[1235]?|7)m$":
89    type: object
90    $ref: regulator.yaml#
91    unevaluatedProperties: false
92    description:
93      Properties for a single LDO regulator.
94
95    allOf:
96      - $ref: "#/$defs/s2mpg10-ext-control"
97
98    properties:
99      regulator-ramp-delay:
100        enum: [6250, 12500]
101        default: 6250
102
103      samsung,ext-control:
104        maximum: 10
105
106$defs:
107  s2mpg10-ext-control:
108    properties:
109      samsung,ext-control:
110        description: |
111          These rails can be controlled via one of several possible external
112          (hardware) signals. If so, this property configures the signal the PMIC
113          should monitor. For S2MPG10 rails where external control is possible other
114          than ldo20m, the following values generally corresponding to the
115          respective on-chip pin are valid:
116            - 0 # S2MPG10_EXTCTRL_PWREN - PWREN pin
117            - 1 # S2MPG10_EXTCTRL_PWREN_MIF - PWREN_MIF pin
118            - 2 # S2MPG10_EXTCTRL_AP_ACTIVE_N - ~AP_ACTIVE_N pin
119            - 3 # S2MPG10_EXTCTRL_CPUCL1_EN - CPUCL1_EN pin
120            - 4 # S2MPG10_EXTCTRL_CPUCL1_EN2 - CPUCL1_EN & PWREN pins
121            - 5 # S2MPG10_EXTCTRL_CPUCL2_EN - CPUCL2_EN pin
122            - 6 # S2MPG10_EXTCTRL_CPUCL2_EN2 - CPUCL2_E2 & PWREN pins
123            - 7 # S2MPG10_EXTCTRL_TPU_EN - TPU_EN pin
124            - 8 # S2MPG10_EXTCTRL_TPU_EN2 - TPU_EN & ~AP_ACTIVE_N pins
125            - 9 # S2MPG10_EXTCTRL_TCXO_ON - TCXO_ON pin
126            - 10 # S2MPG10_EXTCTRL_TCXO_ON2 - TCXO_ON & ~AP_ACTIVE_N pins
127
128          For S2MPG10 ldo20m, the following values are valid
129            - 11 # S2MPG10_EXTCTRL_LDO20M_EN2 - VLDO20M_EN & LDO20M_SFR
130            - 12 # S2MPG10_EXTCTRL_LDO20M_EN - VLDO20M_EN pin
131
132        $ref: /schemas/types.yaml#/definitions/uint32
133        minimum: 0
134        maximum: 12
135
136      enable-gpios:
137        description:
138          For rails where external control is done via a GPIO, this optional
139          property describes the GPIO line used.
140
141    dependentRequired:
142      enable-gpios: [ "samsung,ext-control" ]
143
144allOf:
145  # Bucks 8, 9, and LDO 1 can not be controlled externally - above definition
146  # allows it and we deny it here. This approach reduces repetition.
147  - if:
148      anyOf:
149        - required: [buck8m]
150        - required: [buck9m]
151        - required: [ldo1m]
152    then:
153      patternProperties:
154        "^(buck[8-9]|ldo1)m$":
155          properties:
156            samsung,ext-control: false
157
158additionalProperties: false
159