treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / devicetree / bindings / regulator / gpio-regulator.yaml
blob9d3b28417fb65323f6bbef8f15dc05a1b0f33f66
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#
7 title: GPIO controlled regulators
9 maintainers:
10   - Liam Girdwood <lgirdwood@gmail.com>
11   - Mark Brown <broonie@kernel.org>
13 description:
14   Any property defined as part of the core regulator binding, defined in
15   regulator.txt, can also be used.
17 allOf:
18   - $ref: "regulator.yaml#"
20 properties:
21   compatible:
22     const: regulator-gpio
24   regulator-name: true
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
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...
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     allOf:
50       - $ref: /schemas/types.yaml#/definitions/uint32-array
51       - maxItems: 8
52         items:
53           enum: [ 0, 1 ]
54           default: 0
56   states:
57     description: Selection of available voltages/currents provided by this
58       regulator and matching GPIO configurations to achieve them. If there are
59       no states in the "states" array, use a fixed regulator instead.
60     allOf:
61       - $ref: /schemas/types.yaml#/definitions/uint32-matrix
62       - maxItems: 8
63         items:
64           items:
65             - description: Voltage in microvolts
66             - description: GPIO group state value
68   startup-delay-us:
69     description: startup time in microseconds
71   enable-active-high:
72     description: Polarity of "enable-gpio" GPIO is active HIGH. Default is
73       active LOW.
74     type: boolean
76   gpio-open-drain:
77     description:
78       GPIO is open drain type. If this property is missing then default
79       assumption is false.
80     type: boolean
82   regulator-type:
83     description: Specifies what is being regulated.
84     allOf:
85       - $ref: /schemas/types.yaml#/definitions/string
86       - enum:
87           - voltage
88           - current
89         default: voltage
91 required:
92   - compatible
93   - regulator-name
94   - gpios
95   - states
97 examples:
98   - |
99     gpio-regulator {
100       compatible = "regulator-gpio";
102       regulator-name = "mmci-gpio-supply";
103       regulator-min-microvolt = <1800000>;
104       regulator-max-microvolt = <2600000>;
105       regulator-boot-on;
107       enable-gpios = <&gpio0 23 0x4>;
108       gpios = <&gpio0 24 0x4
109         &gpio0 25 0x4>;
110       states = <1800000 0x3>,
111         <2200000 0x2>,
112         <2600000 0x1>,
113         <2900000 0x0>;
115       startup-delay-us = <100000>;
116       enable-active-high;
117     };