xref: /openbmc/linux/Documentation/devicetree/bindings/regulator/gpio-regulator.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1673e401eSRob Herring# SPDX-License-Identifier: GPL-2.0
2673e401eSRob Herring%YAML 1.2
3673e401eSRob Herring---
4673e401eSRob Herring$id: http://devicetree.org/schemas/regulator/gpio-regulator.yaml#
5673e401eSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
6673e401eSRob Herring
7673e401eSRob Herringtitle: GPIO controlled regulators
8673e401eSRob Herring
9673e401eSRob Herringmaintainers:
10673e401eSRob Herring  - Liam Girdwood <lgirdwood@gmail.com>
11673e401eSRob Herring  - Mark Brown <broonie@kernel.org>
12673e401eSRob Herring
13673e401eSRob Herringdescription:
14673e401eSRob Herring  Any property defined as part of the core regulator binding, defined in
15673e401eSRob Herring  regulator.txt, can also be used.
16673e401eSRob Herring
17673e401eSRob HerringallOf:
18*cff5c895SRob Herring  - $ref: regulator.yaml#
19673e401eSRob Herring
20673e401eSRob Herringproperties:
21673e401eSRob Herring  compatible:
22673e401eSRob Herring    const: regulator-gpio
23673e401eSRob Herring
24673e401eSRob Herring  regulator-name: true
25673e401eSRob Herring
26673e401eSRob Herring  enable-gpios:
27673e401eSRob Herring    description: GPIO to use to enable/disable the regulator.
28673e401eSRob Herring      Warning, the GPIO phandle flags are ignored and the GPIO polarity is
29673e401eSRob Herring      controlled solely by the presence of "enable-active-high" DT property.
30673e401eSRob Herring      This is due to compatibility with old DTs.
31673e401eSRob Herring    maxItems: 1
32673e401eSRob Herring
33673e401eSRob Herring  gpios:
34673e401eSRob Herring    description: Array of one or more GPIO pins used to select the regulator
35673e401eSRob Herring      voltage/current listed in "states".
36673e401eSRob Herring    minItems: 1
37673e401eSRob Herring    maxItems: 8  # Should be enough...
38673e401eSRob Herring
39673e401eSRob Herring  gpios-states:
40673e401eSRob Herring    description: |
41673e401eSRob Herring      On operating systems, that don't support reading back gpio values in
42673e401eSRob Herring      output mode (most notably linux), this array provides the state of GPIO
43673e401eSRob Herring      pins set when requesting them from the gpio controller. Systems, that are
44673e401eSRob Herring      capable of preserving state when requesting the lines, are free to ignore
45673e401eSRob Herring      this property.
46673e401eSRob Herring        0: LOW
47673e401eSRob Herring        1: HIGH
48673e401eSRob Herring      Default is LOW if nothing else is specified.
493d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
503d21a460SRob Herring    maxItems: 8
51673e401eSRob Herring    items:
52673e401eSRob Herring      enum: [0, 1]
53673e401eSRob Herring      default: 0
54673e401eSRob Herring
55673e401eSRob Herring  states:
56673e401eSRob Herring    description: Selection of available voltages/currents provided by this
57673e401eSRob Herring      regulator and matching GPIO configurations to achieve them. If there are
58673e401eSRob Herring      no states in the "states" array, use a fixed regulator instead.
593d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-matrix
603d21a460SRob Herring    maxItems: 8
61673e401eSRob Herring    items:
62673e401eSRob Herring      items:
63673e401eSRob Herring        - description: Voltage in microvolts
64673e401eSRob Herring        - description: GPIO group state value
65673e401eSRob Herring
66673e401eSRob Herring  startup-delay-us:
67673e401eSRob Herring    description: startup time in microseconds
68673e401eSRob Herring
69673e401eSRob Herring  enable-active-high:
70673e401eSRob Herring    description: Polarity of "enable-gpio" GPIO is active HIGH. Default is
71673e401eSRob Herring      active LOW.
72673e401eSRob Herring    type: boolean
73673e401eSRob Herring
74673e401eSRob Herring  gpio-open-drain:
75673e401eSRob Herring    description:
76673e401eSRob Herring      GPIO is open drain type. If this property is missing then default
77673e401eSRob Herring      assumption is false.
78673e401eSRob Herring    type: boolean
79673e401eSRob Herring
80673e401eSRob Herring  regulator-type:
81673e401eSRob Herring    description: Specifies what is being regulated.
823d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/string
833d21a460SRob Herring    enum:
84673e401eSRob Herring      - voltage
85673e401eSRob Herring      - current
86673e401eSRob Herring    default: voltage
87673e401eSRob Herring
88392cc0a4SJerome Neanne  vin-supply:
89392cc0a4SJerome Neanne    description: Input supply phandle.
90392cc0a4SJerome Neanne
91673e401eSRob Herringrequired:
92673e401eSRob Herring  - compatible
93673e401eSRob Herring  - regulator-name
94673e401eSRob Herring  - gpios
95673e401eSRob Herring  - states
96673e401eSRob Herring
976fdc6e23SRob HerringunevaluatedProperties: false
986fdc6e23SRob Herring
99673e401eSRob Herringexamples:
100673e401eSRob Herring  - |
101673e401eSRob Herring    gpio-regulator {
102673e401eSRob Herring      compatible = "regulator-gpio";
103673e401eSRob Herring
104673e401eSRob Herring      regulator-name = "mmci-gpio-supply";
105673e401eSRob Herring      regulator-min-microvolt = <1800000>;
106673e401eSRob Herring      regulator-max-microvolt = <2600000>;
107673e401eSRob Herring      regulator-boot-on;
108673e401eSRob Herring
109673e401eSRob Herring      enable-gpios = <&gpio0 23 0x4>;
110673e401eSRob Herring      gpios = <&gpio0 24 0x4
111673e401eSRob Herring        &gpio0 25 0x4>;
112673e401eSRob Herring      states = <1800000 0x3>,
113673e401eSRob Herring        <2200000 0x2>,
114673e401eSRob Herring        <2600000 0x1>,
115673e401eSRob Herring        <2900000 0x0>;
116673e401eSRob Herring
117673e401eSRob Herring      startup-delay-us = <100000>;
118673e401eSRob Herring      enable-active-high;
119673e401eSRob Herring    };
120673e401eSRob Herring...
121