Merge tag 'Smack-for-5.11-io_uring-fix' of git://github.com/cschaufler/smack-next
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / regulator / gpio-regulator.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/regulator/gpio-regulator.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: GPIO controlled regulators
8
9 maintainers:
10   - Liam Girdwood <lgirdwood@gmail.com>
11   - Mark Brown <broonie@kernel.org>
12
13 description:
14   Any property defined as part of the core regulator binding, defined in
15   regulator.txt, can also be used.
16
17 allOf:
18   - $ref: "regulator.yaml#"
19
20 properties:
21   compatible:
22     const: regulator-gpio
23
24   regulator-name: true
25
26   enable-gpios:
27     description: GPIO to use to enable/disable the regulator.
28       Warning, the GPIO phandle flags are ignored and the GPIO polarity is
29       controlled solely by the presence of "enable-active-high" DT property.
30       This is due to compatibility with old DTs.
31     maxItems: 1
32
33   gpios:
34     description: Array of one or more GPIO pins used to select the regulator
35       voltage/current listed in "states".
36     minItems: 1
37     maxItems: 8  # Should be enough...
38
39   gpios-states:
40     description: |
41       On operating systems, that don't support reading back gpio values in
42       output mode (most notably linux), this array provides the state of GPIO
43       pins set when requesting them from the gpio controller. Systems, that are
44       capable of preserving state when requesting the lines, are free to ignore
45       this property.
46         0: LOW
47         1: HIGH
48       Default is LOW if nothing else is specified.
49     $ref: /schemas/types.yaml#/definitions/uint32-array
50     maxItems: 8
51     items:
52       enum: [0, 1]
53       default: 0
54
55   states:
56     description: Selection of available voltages/currents provided by this
57       regulator and matching GPIO configurations to achieve them. If there are
58       no states in the "states" array, use a fixed regulator instead.
59     $ref: /schemas/types.yaml#/definitions/uint32-matrix
60     maxItems: 8
61     items:
62       items:
63         - description: Voltage in microvolts
64         - description: GPIO group state value
65
66   startup-delay-us:
67     description: startup time in microseconds
68
69   enable-active-high:
70     description: Polarity of "enable-gpio" GPIO is active HIGH. Default is
71       active LOW.
72     type: boolean
73
74   gpio-open-drain:
75     description:
76       GPIO is open drain type. If this property is missing then default
77       assumption is false.
78     type: boolean
79
80   regulator-type:
81     description: Specifies what is being regulated.
82     $ref: /schemas/types.yaml#/definitions/string
83     enum:
84       - voltage
85       - current
86     default: voltage
87
88 required:
89   - compatible
90   - regulator-name
91   - gpios
92   - states
93
94 unevaluatedProperties: false
95
96 examples:
97   - |
98     gpio-regulator {
99       compatible = "regulator-gpio";
100
101       regulator-name = "mmci-gpio-supply";
102       regulator-min-microvolt = <1800000>;
103       regulator-max-microvolt = <2600000>;
104       regulator-boot-on;
105
106       enable-gpios = <&gpio0 23 0x4>;
107       gpios = <&gpio0 24 0x4
108         &gpio0 25 0x4>;
109       states = <1800000 0x3>,
110         <2200000 0x2>,
111         <2600000 0x1>,
112         <2900000 0x0>;
113
114       startup-delay-us = <100000>;
115       enable-active-high;
116     };
117 ...