File Index
Files and directories
Sign in
FILE

maxim,max8998.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/mfd/maxim,max8998.yaml YAML
  1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/mfd/maxim,max8998.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Maxim MAX8998, National/TI LP3974 Power Management IC
  8
  9maintainers:
 10  - Krzysztof Kozlowski <krzk@kernel.org>
 11
 12description:
 13  The Maxim MAX8998 is a Power Management IC which includes voltage/current
 14  regulators, real time clock, battery charging controller and several other
 15  sub-blocks. It is interfaced using an I2C interface. Each sub-block is
 16  addressed by the host system using different i2c slave address.
 17
 18properties:
 19  compatible:
 20    enum:
 21      - maxim,max8998
 22      - national,lp3974
 23      - ti,lp3974
 24
 25  reg:
 26    maxItems: 1
 27
 28  interrupts:
 29    minItems: 1
 30    items:
 31      - description: Main interrupt
 32      - description: Power-on/-off interrupt
 33
 34  max8998,pmic-buck1-dvs-gpios:
 35    maxItems: 2
 36    description:
 37      Two host gpios used for buck1 DVS.
 38
 39  max8998,pmic-buck2-dvs-gpio:
 40    maxItems: 1
 41    description:
 42      Host gpio used for buck2 DVS.
 43
 44  max8998,pmic-buck1-default-dvs-idx:
 45    $ref: /schemas/types.yaml#/definitions/uint32
 46    enum: [0, 1, 2, 3]
 47    default: 0
 48    description:
 49      Default voltage setting selected from the possible 4 options selectable
 50      by the DVS gpios.
 51
 52  max8998,pmic-buck2-default-dvs-idx:
 53    $ref: /schemas/types.yaml#/definitions/uint32
 54    enum: [0, 1]
 55    default: 0
 56    description:
 57      Default voltage setting selected from the possible 2 options selectable
 58      by the DVS GPIOs.
 59
 60  max8998,pmic-buck-voltage-lock:
 61    type: boolean
 62    description:
 63      If present, disallows changing of preprogrammed buck DVS voltages.
 64
 65  max8998,pmic-buck1-dvs-voltage:
 66    $ref: /schemas/types.yaml#/definitions/uint32-array
 67    maxItems: 4
 68    description:
 69      Four voltage values in microvolts for buck1 regulator that can be
 70      selected using DVS GPIO.
 71
 72  max8998,pmic-buck2-dvs-voltage:
 73    $ref: /schemas/types.yaml#/definitions/uint32-array
 74    maxItems: 2
 75    description:
 76      Two voltage values in microvolts for buck2 regulator that can be
 77      selected using DVS GPIO.
 78
 79  regulators:
 80    type: object
 81    additionalProperties: false
 82
 83    properties:
 84      CHARGER:
 85        type: object
 86        $ref: /schemas/regulator/regulator.yaml#
 87        unevaluatedProperties: false
 88        description:
 89          CHARGER is main battery charger current control, wrongly represented
 90          as regulator.
 91
 92        properties:
 93          regulator-min-microamp:
 94            minimum: 90000
 95            maximum: 800000
 96
 97          regulator-max-microamp:
 98            minimum: 90000
 99            maximum: 800000
100
101          regulator-min-microvolt: false
102          regulator-max-microvolt: false
103
104        required:
105          - regulator-name
106
107    patternProperties:
108      "^(LDO([2-9]|1[0-7])|BUCK[1-4])$":
109        type: object
110        $ref: /schemas/regulator/regulator.yaml#
111        unevaluatedProperties: false
112
113        required:
114          - regulator-name
115
116      "^(EN32KHz-AP|EN32KHz-CP|ENVICHG|ESAFEOUT[12])$":
117        type: object
118        $ref: /schemas/regulator/regulator.yaml#
119        unevaluatedProperties: false
120        description: |
121          EN32KHz-AP and EN32KHz-CP are 32768 Hz clocks, wrongly represented as
122          regulators.
123          ENVICHG is a Battery Charging Current Monitor Output.
124
125        properties:
126          regulator-min-microvolt: false
127          regulator-max-microvolt: false
128
129        required:
130          - regulator-name
131
132dependencies:
133  max8998,pmic-buck1-dvs-gpios: [ "max8998,pmic-buck1-dvs-voltage" ]
134  max8998,pmic-buck2-dvs-gpio: [ "max8998,pmic-buck2-dvs-voltage" ]
135
136required:
137  - compatible
138  - reg
139  - regulators
140
141additionalProperties: false
142
143examples:
144  - |
145    #include <dt-bindings/gpio/gpio.h>
146    #include <dt-bindings/interrupt-controller/irq.h>
147
148    i2c {
149        #address-cells = <1>;
150        #size-cells = <0>;
151
152        pmic@66 {
153            compatible = "national,lp3974";
154            reg = <0x66>;
155            interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,
156                                  <&gpx2 7 IRQ_TYPE_LEVEL_LOW>;
157            pinctrl-names = "default";
158            pinctrl-0 = <&lp3974_irq>;
159
160            max8998,pmic-buck1-default-dvs-idx = <0>;
161            max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
162                                           <&gpx0 6 GPIO_ACTIVE_HIGH>;
163            max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
164                                             <1100000>, <1000000>;
165            max8998,pmic-buck2-default-dvs-idx = <0>;
166            max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>;
167            max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
168
169            regulators {
170                LDO2 {
171                    regulator-name = "VALIVE_1.2V";
172                    regulator-min-microvolt = <1200000>;
173                    regulator-max-microvolt = <1200000>;
174                    regulator-always-on;
175                };
176
177                LDO3 {
178                    regulator-name = "VUSB+MIPI_1.1V";
179                    regulator-min-microvolt = <1100000>;
180                    regulator-max-microvolt = <1100000>;
181                    regulator-always-on;
182                };
183
184                LDO4 {
185                    regulator-name = "VADC_3.3V";
186                    regulator-min-microvolt = <3300000>;
187                    regulator-max-microvolt = <3300000>;
188                };
189
190                LDO5 {
191                    regulator-name = "VTF_2.8V";
192                    regulator-min-microvolt = <2800000>;
193                    regulator-max-microvolt = <2800000>;
194                };
195
196                LDO6 {
197                    regulator-name = "LDO6";
198                    regulator-min-microvolt = <2000000>;
199                    regulator-max-microvolt = <2000000>;
200                };
201
202                LDO7 {
203                    regulator-name = "VLCD+VMIPI_1.8V";
204                    regulator-min-microvolt = <1800000>;
205                    regulator-max-microvolt = <1800000>;
206                };
207
208                LDO8 {
209                    regulator-name = "VUSB+VDAC_3.3V";
210                    regulator-min-microvolt = <3300000>;
211                    regulator-max-microvolt = <3300000>;
212                    regulator-always-on;
213                };
214
215                LDO9 {
216                    regulator-name = "VCC_2.8V";
217                    regulator-min-microvolt = <2800000>;
218                    regulator-max-microvolt = <2800000>;
219                    regulator-always-on;
220                };
221
222                LDO10 {
223                    regulator-name = "VPLL_1.1V";
224                    regulator-min-microvolt = <1100000>;
225                    regulator-max-microvolt = <1100000>;
226                    regulator-boot-on;
227                    regulator-always-on;
228                };
229
230                LDO11 {
231                    regulator-name = "CAM_AF_3.3V";
232                    regulator-min-microvolt = <3300000>;
233                    regulator-max-microvolt = <3300000>;
234                };
235
236                LDO12 {
237                    regulator-name = "PS_2.8V";
238                    regulator-min-microvolt = <2800000>;
239                    regulator-max-microvolt = <2800000>;
240                };
241
242                LDO13 {
243                    regulator-name = "VHIC_1.2V";
244                    regulator-min-microvolt = <1200000>;
245                    regulator-max-microvolt = <1200000>;
246                };
247
248                LDO14 {
249                    regulator-name = "CAM_I_HOST_1.8V";
250                    regulator-min-microvolt = <1800000>;
251                    regulator-max-microvolt = <1800000>;
252                };
253
254                LDO15 {
255                    regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
256                    regulator-min-microvolt = <1200000>;
257                    regulator-max-microvolt = <1200000>;
258                };
259
260                LDO16 {
261                    regulator-name = "CAM_S_ANA_2.8V";
262                    regulator-min-microvolt = <2800000>;
263                    regulator-max-microvolt = <2800000>;
264                };
265
266                LDO17 {
267                    regulator-name = "VCC_3.0V_LCD";
268                    regulator-min-microvolt = <3000000>;
269                    regulator-max-microvolt = <3000000>;
270                };
271
272                BUCK1 {
273                    regulator-name = "VINT_1.1V";
274                    regulator-min-microvolt = <750000>;
275                    regulator-max-microvolt = <1500000>;
276                    regulator-boot-on;
277                    regulator-always-on;
278                };
279
280                BUCK2 {
281                    regulator-name = "VG3D_1.1V";
282                    regulator-min-microvolt = <750000>;
283                    regulator-max-microvolt = <1500000>;
284                    regulator-boot-on;
285                };
286
287                BUCK3 {
288                    regulator-name = "VCC_1.8V";
289                    regulator-min-microvolt = <1800000>;
290                    regulator-max-microvolt = <1800000>;
291                    regulator-always-on;
292                };
293
294                BUCK4 {
295                    regulator-name = "VMEM_1.2V";
296                    regulator-min-microvolt = <1200000>;
297                    regulator-max-microvolt = <1200000>;
298                    regulator-always-on;
299                };
300
301                EN32KHz-AP {
302                    regulator-name = "32KHz AP";
303                    regulator-always-on;
304                };
305
306                EN32KHz-CP {
307                    regulator-name = "32KHz CP";
308                };
309
310                ENVICHG {
311                    regulator-name = "VICHG";
312                };
313
314                ESAFEOUT1 {
315                    regulator-name = "SAFEOUT1";
316                };
317
318                ESAFEOUT2 {
319                    regulator-name = "SAFEOUT2";
320                    regulator-boot-on;
321                };
322            };
323        };
324    };
~/ Read-only file preview.